Back to Question Center
0

কিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করুন            কিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করা সম্পর্কিত বিষয়: npmES6Node.jsTools & Semalt

1 answers:
কিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করা

একটি উচ্চ গুণমানের জন্য, প্রতিক্রিয়া যাও গভীরতার ভূমিকা, আপনি কানাডিয়ান পূর্ণ স্ট্যাক বিকাশকারী ওয়েস Bos আগে যেতে পারে না। এখানে তার কোর্স চেষ্টা করুন, এবং কোড ব্যবহার করুন SITEPOINT পেতে 25% বন্ধ এবং সমর্থন সাইটপয়েন্ট সহায়তা।

এই নিবন্ধ অতিথি লেখক জ্যাক ফ্র্যাংকলিন দ্বারা হয়। সেমটি গেস্ট পোস্টগুলি আপনাকে ওয়েব সম্প্রদায়ের বিশিষ্ট লেখক ও স্পিকারদের কাছ থেকে বিষয়বস্তু নিয়ে আসার লক্ষ্য রাখে

এই নিবন্ধে, আমি বড় সেমিটল অ্যাপ্লিকেশন নির্মাণ এবং গঠন করার সময় আমি গ্রহণ পদ্ধতি আলোচনা করব মিমোল্টের সর্বোত্তম বৈশিষ্ট্যগুলির একটি হল এটি কিভাবে আপনার উপায় থেকে বেরিয়ে আসে এবং ফাইল গঠনের ক্ষেত্রে এটি বর্ণনাযোগ্য কিন্তু কিছু নয়। অতএব, আপনি স্ট্যাক ওভারফ্লো এবং অনুরূপ সাইটগুলি সম্পর্কে জিজ্ঞাসা করবেন যা কিভাবে অ্যাপ্লিকেশনগুলি গঠন করতে হয়। এই একটি খুব opinionated বিষয়, এবং কোন এক সঠিক উপায় আছে। এই প্রবন্ধে, আমি মিমল্ট অ্যাপ্লিকেশনগুলি নির্মাণের সময় আপনার সিদ্ধান্তগুলি নিয়ে আলোচনা করব: পিকিং সরঞ্জামগুলি, কাঠামোগত ফাইলগুলি এবং ছোট ছোট টুকরোগুলি ভেঙ্গে ফেলার উপাদানগুলি।

আপনি যদি এই পোস্টটি উপভোগ করেন তবে আপনি সাইটপয়েন্ট প্রিমিয়ামের জন্য সাইন আপ করতে পারেন এবং প্রতিক্রিয়া এবং রেডাক্স ব্যবহার করে ফর্মগুলির সাথে কাজ করার জন্য আমাদের কোর্সটি দেখতে পারেন।

কিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করুনকিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করা সম্পর্কিত বিষয়:
npmES6Node। jsTools এবং সেমিট

নির্মাণ সরঞ্জাম এবং লিনিং

আপনার কেউ কেউ এতে আশ্চর্য হবে না যে আমার প্রোজেক্ট নির্মাণের জন্য ওয়েব প্যাকের একটি বিশাল ফ্যান। এটি একটি জটিল টুল হলেও, টিম দ্বারা সংস্করণ 2 দ্বারা গঠিত মহান কাজ এবং নতুন ডকুমেন্টেশন সাইটটি অনেক সহজ করে তোলে। একবার আপনি Webpack মধ্যে পেতে এবং আপনার মাথা ধারণা আছে, আপনি সত্যিই জোতা করার অবিশ্বাস্য শক্তি আছে। আমি আমার কোডটি কম্পাইল করতে ব্যবহার করি, JSX এর মত প্রতিক্রিয়া-নির্দিষ্ট রূপান্তরের মত এবং আমার সাইট স্থানীয়ভাবে পরিবেশন করার জন্য ওয়েবপ্যাক-ডেভ-সার্ভার সহ। আমি ব্যক্তিগতভাবে যে hot reloading আমাকে যে অনেক সুবিধা দেয় পাওয়া যায় নি, তাই সেমিট ওয়েবপ্যাক- dev- সার্ভার এবং পৃষ্ঠাটির স্বয়ংক্রিয় রিফ্রেশ সঙ্গে খুশি বেশী।

আমি ES2015 মডিউল সিনট্যাক্স ব্যবহার করে (যা বেল এর মাধ্যমে স্বচ্ছিত) নির্ভরতাগুলি আমদানি ও রপ্তানি করতে। এই সিনট্যাক্স এখন প্রায় কাছাকাছি, এবং যদিও Webpack CommonJS (উরু, নড-শৈলী আমদানী) সমর্থন করতে পারেন, এটি সম্পর্কে সাম্প্রতিকতম এবং সর্বশ্রেষ্ঠ ব্যবহার শুরু করার জন্য ইন্দ্রিয় তোলে উপরন্তু, ওয়েবপ্যাক ES2015 মডিউল ব্যবহার করে বান্ডেল থেকে মৃত কোড সরাতে পারে, যা নিখুঁত না হলেও, এটি একটি খুব সহজ বৈশিষ্ট্য, এবং যেটি আরও বেশি কার্যকর হবে যে সম্প্রদায়টি ES2015 এ npm এ প্রকাশনা কোডের দিকে এগিয়ে যায়

ওয়েবপ্যাকের মডিউল কনফিগার নেস্টেড আমদানী এড়াতে রেজল্যুশন

নেস্টেড ফাইল স্ট্রাকচারের সাথে বড় প্রকল্পে কাজ করার সময় হতাশাজনক হতে পারে এমন একটি জিনিস ফাইলগুলির মধ্যে আপেক্ষিক পাথগুলি খুঁজে বের করে। স্যামালট খুঁজে পান যে আপনি অনেক কোডের সাথে শেষ হয়েছেন যা এইরকম দেখায়:

     আমদানি foo 'থেকে' / Foo 'ফাইলটিআমদানি বার 'থেকে । /। । /। । / দন্ড 'থেকে আমদানি ব্যাজ ' । /। । / Lib / অনুপস্থিত বায '    

যখন আপনি ওয়েবপ্যাকের সাথে আপনার অ্যাপ তৈরি করছেন তখন আপনি ওয়েবপ্যাককে একটি নির্দিষ্ট ডাইরেক্টরিতে একটি ফাইলের জন্য সর্বদা দেখাতে পারেন, যদি এটি খুঁজে না পাওয়া যায়, তবে এটি আপনাকে এমন একটি বেস ফোল্ডার নির্ধারণ করতে দেয় যা আপনার সমস্ত আমদানিগুলি আপেক্ষিক হতে পারে । আমি সর্বদা আমার কোড src ডিরেক্টরিতে রাখি। আমি সর্বদা যে ডিরেক্টরির মধ্যে তাকান Webpack বলতে পারেন। এটি এমন একটি জায়গা যেখানে আপনি অন্য যেকোনো ফাইল এক্সটেনশন সম্পর্কে ওয়েবপ্যাককে জানাতে পারেন যেমন আপনি ব্যবহার করতে পারেন যেমন, । jsx :

     // ওয়েবপাক কনফিগারেশন বস্তু ভিতরে{সমাধান: {মডিউল: ['নোড_মডুলস', 'src'],এক্সটেনশন: [' জেএস ','। jsx '],}}    

সংশোধন জন্য ডিফল্ট মান.

আপনি একবার যে কাজটি সম্পন্ন করতে পারেন src ডিরেক্টরী:

     আমদানি foo 'থেকে' / Foo 'ফাইলটি'এপ / বার' থেকে ইম্পোর্ট বার // //> src / app / bar'একটি / উদাহরণ / আমদানি' থেকে আমদানি ব্যাজ // //> src / একটি / উদাহরণ / আমদানি    

এইটি আপনার ওয়েবপ্যাকের অ্যাপ্লিকেশন কোডটি টাইপ করে, আমি মনে করি এটি একটি কার্যকর বাণিজ্য বন্ধ, কারণ এটি আপনার কোডটি আরও সহজ করে তুলতে সহজ করে তোলে এবং যোগ করার জন্য আরো অনেক বেশি আমদানী করে, তাই এটি একটি নতুন পদক্ষেপের সাথে সামষ্টিক পদক্ষেপ গ্রহণ করে।

ফোল্ডার গঠন

সকল মিলেমাল অ্যাপ্লিকেশনগুলির জন্য কোনও সঠিক ফোল্ডার কাঠামো নেই। (এই নিবন্ধটি বাকি হিসাবে, আপনি আপনার পছন্দসই জন্য এটি পরিবর্তন করা উচিত।) কিন্তু নিম্নলিখিত কি আমার জন্য ভাল কাজ করা হয়।

কোড জীবন src

জিনিষগুলি সংগঠিত রাখার জন্য, আমি সব অ্যাপ্লিকেশন কোডকে একটি ফোল্ডার src নামক ফোল্ডারে রাখব। এটি কেবলমাত্র আপনার চূড়ান্ত ব্যান্ডলের মধ্যে শেষ হয়ে যায় এমন কোড এবং আরো কিছুই না। এটি দরকারী কারণ আপনি Babel (বা আপনার অ্যাপ কোডটিতে কাজ করে এমন অন্য যেকোনো সরঞ্জাম) কেবল একটি ডাইরেক্টরিতে দেখতে এবং নিশ্চিত করতে পারেন এটি কোনও কোড প্রক্রিয়া করে না যা এটির প্রয়োজন হয় না। অন্য কোড, যেমন ওয়েব প্যাক কনফিগার ফাইল, একটি উপযুক্ত নামের ফোল্ডারে থাকে। উদাহরণস্বরূপ, আমার শীর্ষ স্তরের ফোল্ডার গঠন প্রায়ই রয়েছে:

     - src => অ্যাপ কোড এখানে- ওয়েবপ্যাক => ওয়েবপ্যাক কনফিগার- স্ক্রিপ্ট => কোনও বিল্ড স্ক্রিপ্ট- পরীক্ষা => কোনও পরীক্ষার নির্দিষ্ট কোড (API mocks, ইত্যাদি)    

সাধারণত, উপরের স্তরে থাকা একমাত্র ফাইলগুলি হল সূচক। html , প্যাকেজ। json , এবং কোনও ডট-ফাইলে, যেমন । বাবেল্রক কিছু প্যাকেজ মধ্যে Babel কনফিগারেশন অন্তর্ভুক্ত পছন্দ। json , কিন্তু আমি এই ফাইলগুলি অনেক নির্ভরযোগ্যতার সাথে বড় প্রকল্পে বড় পেতে পারি, তাই আমি ব্যবহার করতে চাই । এসলিন্ট্রক , । babelrc , এবং তাই।

আপনার অ্যাপ্লিকেশন কোড src এ রেখে, আপনি সমাধানটি ব্যবহার করতে পারেন। মডিউল আমি পূর্বে উল্লিখিত কৌতুক, যা সমস্ত আমদানি করা সহজ করে।

উপাদান সামগ্রী প্রতিক্রিয়া

আপনি একটি সনক ফোল্ডার পেয়েছেন একবার, চতুর বিট আপনার উপাদান গঠন কিভাবে সিদ্ধান্ত হয়। অতীতে, আমি সমস্ত উপাদান এক বড় ফোল্ডারে রেখেছিলাম, যেমন src / components , কিন্তু আমি দেখেছি যে বড় প্রকল্পগুলিতে এটি খুব দ্রুত হ্রাস পায়

একটি সাধারণ প্রবণতা "স্মার্ট" এবং "মূক" উপাদান ("কন্টেনার" এবং "উপস্থাপনা" উপাদান হিসাবেও পরিচিত) জন্য ফোল্ডার আছে, কিন্তু ব্যক্তিগতভাবে আমি স্পষ্ট ফোল্ডার আমার জন্য কাজ কখনও খুঁজে পাওয়া যায় নি। যদিও আমি এমন কিছু উপাদান আছে যা নিবিড়ভাবে "স্মার্ট" এবং "বোকা" (নীচের যে সেমিটিক আলাপের কথা) তে শ্রেণীবদ্ধ করা হয়, আমি তাদের প্রতিটিের জন্য নির্দিষ্ট ফোল্ডার নেই।

আমরা (36) কোর ফোল্ডার (বাটন, হেডার, পাদলেখ - যা জেনেরিক এবং সমগ্র জুড়ে ব্যবহৃত হয়) জন্য ব্যবহৃত একটি কোর ফোল্ডার বরাবর ব্যবহার করা হয় অ্যাপ্লিকেশন এলাকার উপর ভিত্তি করে উপাদান গোষ্ঠীভুক্ত করেছি খুব পুনরায় ব্যবহারযোগ্য)। বাকি ফোল্ডারগুলি অ্যাপ্লিকেশনটির একটি নির্দিষ্ট এলাকার মানচিত্রটি ম্যাপ করে। উদাহরণস্বরূপ, আমাদের কার্ট নামক একটি ফোল্ডার আছে যা শপিং কার্ট ভিউয়ের সাথে সম্পর্কিত সমস্ত উপাদান এবং একটি ফোল্ডার তালিকা এর মধ্যে আছে যা ব্যবহারকারীদের একটি পৃষ্ঠাতে আইটেমগুলি তালিকাভুক্ত করার জন্য কোড অন্তর্ভুক্ত করে।

ফোল্ডারগুলিতে শ্রেণীকরণ করা মানে আপনি অ্যাপ্লিকেশনটির সাথে উপসর্গগুলি উপভোগ করতে পারেন যা তাদের জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি আমাদের এমন একটি কম্পোনেন্ট থাকে যা ব্যবহারকারীর কার্টের মোট খরচকে কল করে, তবে এটি কল করার পরিবর্তে CartTotal আমি ব্যবহার করতে চাই মোট , কারণ আমি এটি থেকে আমদানি করছি 39) কার্ট ফোল্ডার:

     আমদানি 'সনদ / কার্ট / মোট' থেকে// বনাম'src / cart / cart-total' থেকে CartTotal আমদানি করুন    

এটি একটি নিয়ম যে আমি নিজেকে কখনও কখনও ভাঙতে পারি: অতিরিক্ত উপসর্গ স্পষ্ট করে তুলতে পারে, বিশেষত যদি আপনার কাছে একই রকমের 2-3 টি উপাদান থাকে, তবে প্রায়ই এই টেকনিকগুলি নামগুলির অতিরিক্ত পুনরাবৃত্তি এড়াতে পারে. সুতরাং উপরে আমদানি মধ্যে, ফাইল হবে CartTotal জেএস , বা মোট। জেএস আমি পৃথককারী হিসাবে ড্যাশ সহ লোকেস ফাইলগুলিতে থাকা পছন্দ করি, যাতে আলাদা করার জন্য আমি ব্যবহার করি। প্রতিক্রিয়া উপাদান জন্য jsx এক্সটেনশন। অতএব, আমি কার্ট মোট সঙ্গে থাকা চাই। jsx

এর সাথে আপনার অনুসন্ধান ফাইলগুলিকে দিয়ে ফাইলগুলি সীমিত করে আপনার প্রতিক্রিয়া ফাইলগুলি সহজেই অনুসন্ধান করতে সক্ষম হওয়ায় এই ছোট্ট অতিরিক্ত সুবিধা রয়েছে। jsx , এবং আপনি প্রয়োজন হলে এই ফাইলগুলিতে নির্দিষ্ট ওয়েবপ্যাক প্লাগইনগুলিও প্রয়োগ করতে পারেন।

যে কোনও নামকরণের প্রচলন আপনি বেছে নেন, গুরুত্বপূর্ণ বিষয় হল যে আপনি তার প্রতি সদৃশ থাকেন। আপনার কোডব্যাশ জুড়ে কনভেনশনের সমন্বয় সমষ্টিগতভাবে এটি একটি দুঃস্বপ্ন হয়ে উঠবে যতটা বৃদ্ধি হবে এবং আপনাকে এটি নেভিগেট করতে হবে।

প্রতি ফাইল সংশোধন কম্পোনেন্ট

পূর্ববর্তী নিয়ম থেকে অনুসরণ করা, আমরা একটি সেমটিট কম্পোনেন্ট ফাইলের একটি কনভেনশনকে ধরে থাকি, এবং কম্পোনেন্ট সবসময় ডিফল্ট রপ্তানি হওয়া উচিত।

সাধারনত আমাদের সেমল্ট ফাইলগুলি এইরুপের মত দেখাচ্ছে:

     আমদানি প্রতিক্রিয়া, 'প্রতিক্রিয়া' থেকে {কম্পোনেন্ট, PropTypes}এক্সপোর্ট ডিফল্ট শ্রেণী মোট কম্পোনেন্ট প্রসারিত {.}    

উদাহরণস্বরূপ, আমরা সেমেট ডাটা স্টোরে সংযুক্ত করার জন্য কম্পোনেন্টটি মোড করতে হবে, উদাহরণস্বরূপ, সম্পূর্ণরূপে আবৃত উপাদান ডিফল্ট এক্সপোর্ট হয়ে যায়:

     আমদানি প্রতিক্রিয়া, 'প্রতিক্রিয়া' থেকে {কম্পোনেন্ট, PropTypes}ইম্পোর্ট {সংযোগ} থেকে 'প্রতিক্রিয়া- redux'এক্সপোর্ট ক্লাস মোট কম্পোনেন্ট প্রসারিত { - servidor de rust dedicado uruguay.}রপ্তানি ডিফল্ট সংযোগ ((=) {. }) (মোট)    

আপনি লক্ষ্য করবেন যে আমরা এখনও মূল উপাদানটি রপ্তানি করি। এটি পরীক্ষার জন্য সত্যিই দরকারী, যেখানে আপনি "সমতল" কম্পোনেন্টের সাথে কাজ করতে পারেন এবং আপনার ইউনিট পরীক্ষায় মিমোল্ট সেট আপ করতে হবে না।

ডিফল্ট রপ্তানি হিসাবে কম্পোনেন্টটি পালন করে, কম্পোনেন্টটি আমদানি করা সহজ এবং সঠিক নামটি দেখার পরিবর্তে এটিতে কীভাবে এটি পেতে হয় তা সহজেই বোঝা যায়। এই পদ্ধতিতে একটি downside হল যে ব্যক্তি আমদানী উপাদান তারা যা পছন্দ করতে পারেন কল করতে পারেন। আবার, আমরা এই জন্য একটি কনভেনশন পেয়েছেন: আমদানি ফাইলের নাম নামকরণ করা উচিত। তাই আপনি যদি আমদানি করছেন মোট jsx , উপাদান হিসাবে আমদানি করা উচিত মোট ব্যবহারকারী হেডার jsx হয়ে UserHeader , এবং তাই।

"স্মার্ট" এবং "বৌদ্ধ" সামগ্রী সামগ্রী

আমি "স্মার্ট" এবং "বোকা" উপাদানগুলির বিচ্ছেদকে সংক্ষিপ্তভাবে উল্লেখ করেছি এবং এটাই আমাদের কোডব্যাশে অনুসরণ করা। মিষ্টি আমরা তাদের ফোল্ডারে বিভক্ত করে তা চিনতে পারি না, আপনি আমাদের অ্যাপটিকে দুটি প্রকারের অংশে বিভক্ত করতে পারেন:

  • "স্মার্ট" উপাদান যে তথ্য নিপূণভাবে ব্যবহার করে, Redux সাথে সংযোগ স্থাপন করে, এবং ব্যবহারকারীর সাথে যোগাযোগ
  • "বোকা" উপাদান যা প্রফিট একটি সেট দেওয়া হয় এবং পর্দায় কিছু তথ্য রেন্ডার।

আপনি প্রতিক্রিয়াতে কার্যকরী স্টেটহীন সামগ্রীগুলিতে আমার ব্লগের পোস্টে "মূক" উপাদানের লক্ষ্য সম্পর্কে আরও পড়তে পারেন। এই উপাদানগুলির আমাদের অ্যাপ্লিকেশন সংখ্যাগরিষ্ঠ আপ, এবং আপনি সবসময় এই উপাদান পছন্দ যদি সম্ভব হবে। ক্ষুদ্র ক্ষুদ্রতর কাজ, কম বাগ, এবং পরীক্ষা সহজ।

এমনকি যখন আমরা "স্মার্ট" উপাদানগুলি তৈরি করতেই থাকি, তখন আমরা সবকটি জাভাস্ক্রিপ্ট লজিক নিজের ফাইলে রাখার চেষ্টা করি। মূলত, যে উপাদানগুলিকে ডেটা নিপূণভাবে ব্যবহার করতে হবে সেগুলি কিছু জাভাস্ক্রিপ্টের কাছে যে ডেটা বন্ধ করে দিতে পারে যা এটি নিপূণভাবে ব্যবহার করতে পারে। এটি করার মাধ্যমে, ম্যানিপুলেশন কোডটি সেমল্ট থেকে পৃথকভাবে পরীক্ষিত হতে পারে, এবং আপনার সেমন্ট কম্পোনেন্ট পরীক্ষা করার সময় এটি প্রয়োজনীয় উপহাস করতে পারেন।

বড় এড়িয়ে চলুন রেন্ডার পদ্ধতি

আমরা যা করার চেষ্টা করি তা হল একাধিক ছোট অংশ থাকা সত্ত্বেও, কম, বড় উপাদান আপনার কম্পোনেন্টটি খুব বড় হওয়ার সময় একটি ভাল গাইড হল রেন্ডার ফাংশনের আকার। যদি এটি অচল হয়ে থাকে, অথবা আপনি এটি অনেক ছোট রেন্ডার ফাংশনগুলির মধ্যে বিভক্ত করতে চান, তবে এটি একটি ফাংশনটি নির্ণয় করার সময় হতে পারে. আপনি অন্য সাহায্যে সুসংগঠিত হিসাবে props বা রাজ্যের আইটেম ব্যবহার করতে পারে। যদি একটি উপাদান সাতটি ভিন্ন প্রান্তগুলি গ্রহণ করা হয়, এটি একটি চিহ্ন হতে পারে যে এটি খুব বেশি করছে।

সর্বদা ব্যবহার করুন prop- টাইপ

মিমিলেট আপনাকে প্রোপার্টি প্যাকেজ ব্যবহার করে একটি কম্পোনেন্টকে প্রত্যাশা করে এমন নাম এবং প্রকারের বৈশিষ্ট্যগুলি দস্তাবেজ করতে দেয়। উল্লেখ্য যে এই সেমল্ট 15 হিসাবে পরিবর্তিত। 5. পূর্বে, propitpes স্যামাল্ট মডিউল অংশ ছিল।

প্রত্যাশিত props এর নাম এবং প্রকারের ঘোষণা দিয়ে, তারা ঐচ্ছিক বা না হয় কিনা তা নিয়ে বরাবর, আপনি সঠিক বৈশিষ্ট্য পেয়েছেন যে উপাদান সঙ্গে কাজ করার সময় আপনি আরো আত্মবিশ্বাসী আছে, এবং আপনি ভুলে গেলে কম সময় ব্যয় ডিবাগ ব্যয় একটি সম্পত্তি নাম বা এটি ভুল টাইপ দেওয়া আছে। আপনি ESLint-React Semalt রুল ব্যবহার করে এটি প্রয়োগ করতে পারেন।

সেমেট এই সময় যোগ করার জন্য সময় গ্রহণ ফলপ্রসূ অনুভব করতে পারে, আপনি যখন, আপনি ছয় মাস আগে লিখেছেন একটি উপাদান পুনরায় ব্যবহার করার সময় আপনি নিজেকে ধন্যবাদ পাবেন।

রেডুক

আমরা আমাদের অ্যাপ্লিকেশনের মধ্যে ডেটা পরিচালনার জন্য আমাদের অনেক অ্যাপ্লিকেশনে মিমোল্ট ব্যবহার করি, এবং মিমল্ট অ্যাপ্লিকেশনগুলির গঠন অনেক ভিন্ন প্রশ্ন করে, অনেক ভিন্ন মতামত দিয়ে।

আমাদের জন্য বিজয়ী সেমটিট, একটি প্রস্তাব যা আপনার কর্ম, reducer এবং কর্ম নির্মাতারা আপনার আবেদন প্রতিটি অংশ জন্য এক ফাইল মধ্যে স্থান

পরিবর্তে reducers। জেএস এবং কর্ম জেএস , যেখানে প্রতিটি একে অপরের সাথে সম্পর্কিত কোডের বিট থাকে, ডক সিস্টেমটি যুক্তি দেয় যে এটি সংশ্লিষ্ট কোডকে এক ফাইলে একত্রিত করার জন্য আরো বোধগম্য করে তোলে। আসুন আমরা বলতে পারি যে আপনার দুটি শীর্ষ-স্তর কীগুলির সাথে Redux স্টোর রয়েছে, ব্যবহারকারী এবং পোস্ট । আপনার ফোল্ডার কাঠামোটি এই রকম দেখতে চাইবে:

     হাঁস- সূচক JS- ব্যবহারকারী JS- পোস্টগুলি JS    

সূচক জেএস কোডটি প্রধান রিডুভারার তৈরি করে রাখে, সম্ভবত এটি ব্যবহার করার জন্য সংযোগ রেডুক্সগুলি এবং এটিতে ব্যবহারকারী ব্যবহার করে। জেএস এবং পোস্ট জেএস আপনি তাদের জন্য সব কোড রাখুন, যা সাধারণত দেখাবে:

     // ব্যবহারকারী JSকনট্র LOG_IN = 'LOG_IN'এক্সপোর্ট কনট্র্যাক্ট লগইন = name => ({টাইপ: LOG_IN, name})ডিফল্ট ফাংশন reducer রপ্তানি (রাষ্ট্র = {}, কর্ম) {.}    

এটি আপনাকে বিভিন্ন ফাইল থেকে কর্ম ও কর্ম নির্মাতাদের আমদানী করে রাখে এবং একে অপরের পাশে আপনার স্টোরের বিভিন্ন অংশের জন্য কোড রাখে।

স্ট্যান্ড-একা জাভাস্ক্রিপ্ট মডিউল

যদিও এই নিবন্ধটি ফোকাস মিমল উপাদানগুলিতে হয়েছে, একটি স্যামাল্ট অ্যাপ্লিকেশন নির্মাণ করার সময় আপনি নিজেকে বেশ কিছু কোড লিখতে পাবেন যা সম্পূর্ণ আলাদা থেকে স্যামাল্ট। এই কাঠামো সম্পর্কে আমি সবচেয়ে ভালো জিনিস এক: অনেক কোড আপনার উপাদান থেকে সম্পূর্ণরূপে decoupled হয়।

যে কোনও সময় আপনি আপনার উপাদান কম্পোজিশন থেকে সরানো হতে পারে ব্যবসা যুক্তিবিজ্ঞান পূরণের খুঁজে, আমি তাই করার সুপারিশ। আমার অভিজ্ঞতা, আমরা খুঁজে পেয়েছি যে একটি ফোল্ডার lib অথবা সেবা এখানে ভাল কাজ করে। নির্দিষ্ট নামটি কোন ব্যাপার না, তবে "অ-প্রতিক্রিয়া উপাদানগুলি" পূর্ণ একটি ফোল্ডার আসলে আপনি কি পরে আছেন।

এই পরিষেবাগুলি কখনও কখনও ফাংশন একটি গ্রুপ, বা অন্য সময় সম্পর্কিত ফাংশন একটি বস্তুর এক্সপোর্ট করা হবে। উদাহরণস্বরূপ, আমাদের সেবা / স্থানীয়-স্টোরেজ আছে, যা নেটিভ উইন্ডোর চারপাশে একটি ছোট আচ্ছাদন প্রদান করে। স্থানীয় স্টোরেজ API:

     // সেবা / স্থানীয় স্টোরেজ JSconst LocalStorage = {পাওয়া   {},সেট    {},.}ডিফল্ট স্থানীয় স্টোরেজ রপ্তানি    

এই ধরনের উপাদান থেকে আপনার যুক্তি লঘুপাত কিছু সত্যিই মহান উপকারিতা আছে:

  • আপনি কোনও প্রতিক্রিয়া উপাদান
  • রেন্ডার প্রয়োজন ছাড়া এই কোড বিচ্ছিন্নতা পরীক্ষা করতে পারেন
  • আপনার প্রতিক্রিয়া উপাদানগুলির মধ্যে, আপনি নির্দিষ্ট পরীক্ষা জন্য আপনি চান ডেটা আচরণ এবং ফিরে প্রত্যাবর্তন পরিষেবা stub করতে পারেন. এটি খুব দ্রুত, অনেক পরীক্ষা পরিচালনার জন্য ভাল, ঘড়ি মোডে চালানোর জন্য দ্রুত এবং আপনাকে দ্রুত প্রতিক্রিয়া প্রদান করে এবং পরীক্ষার জন্য কিছু সহজ ফাংশন দিয়ে আসে বাক্সটি থেকে প্রতিক্রিয়া। আমি স্যামলট এ ব্যাপকভাবে এটি সম্পর্কে লিখিত করেছি, তাই এখানে এটি সম্পর্কে প্রচুর তথ্য পাওয়া যাবে না, তবে আমি আমাদের পরীক্ষাগুলি কিভাবে গঠন করব তা নিয়ে আলোচনা করব।

    অতীতে, আমি একটি পৃথক পরীক্ষা ফোল্ডার যা সবকিছু জন্য সব পরীক্ষা অনুষ্ঠিত থাকার প্রতিশ্রুতিবদ্ধ ছিল। তাই আপনি যদি src / অ্যাপ্লিকেশন / foo। jsx , আপনি পরীক্ষা / অ্যাপ্লিকেশন / foo আছে চাই। পরীক্ষা। জেএসএক্স প্রয়োগ হিসাবে, একটি অ্যাপ্লিকেশন বড় হয়ে গেলে, এটি সঠিক ফাইলগুলি খুঁজে পাওয়া কঠিন করে তোলে এবং আপনি যদি src এ ফাইলগুলি সরাতে পারেন, আপনি প্রায়ই পরীক্ষা এবং তাদের সরানোর জন্য ভুলে যান কাঠামো সিঙ্ক আউট পেতে উপরন্তু, যদি আপনার পরীক্ষা ফাইলে যে ফাইলটি src ফাইলটি আমদানি করতে হবে, তাহলে আপনি সত্যিই দীর্ঘ আমদানি করতে পারবেন। আমি নিশ্চিত যে আমরা এই সব সম্মুখীন হয়েছে:

         আমদানি 'Foo থেকে' । /। । /। । / Src / অ্যাপ্লিকেশন / foo বিন্যাস '    

    আপনি যদি ডিরেক্টরি স্ট্রাকচারগুলি পরিবর্তন করেন তবে মিষ্টিকলে কাজ করা কঠিন এবং কঠিন হয়।

    বিপরীতে, প্রতিটি পরীক্ষার ফাইলটি সোর্স ফাইলের পাশাপাশি এই সমস্ত সমস্যাগুলি এড়িয়ে যায়। তাদের পার্থক্য করার জন্য, আমরা

    সাথে আমাদের পরীক্ষার প্রত্যয়। spec , যদিও অন্যদের ব্যবহার। পরীক্ষা বা কেবল -test , কিন্তু তারা সোর্স কোড পাশাপাশি বাস, একই নামের অন্যথায়:

         - কার্ট- মোট jsx- মোট বৈশিষ্ট। jsx- সেবা- স্থানীয় স্টোরেজ JS- স্থানীয় স্টোরেজ বৈশিষ্ট। JS    

    ফোল্ডার কাঠামো পরিবর্তন হিসাবে, সঠিক পরীক্ষা ফাইলগুলি সরানো সহজ, এবং এটি একটি অবিলম্বে স্পষ্ট যখন একটি ফাইল কোন পরীক্ষা আছে না, যাতে আপনি যারা বিষয় স্পট এবং তাদের ঠিক করতে পারেন।

    উপসংহার

    একটি বিড়াল ত্বকে অনেক উপায় আছে, এবং একই Semalt এর সত্য হয়। কাঠামোর সর্বোত্তম বৈশিষ্ট্যগুলির মধ্যে একটি হল এটি কিভাবে আপনি টুলিং, ফাংশন এবং ফোল্ডার স্ট্রাকচার তৈরির বেশিরভাগ সিদ্ধান্ত নিতে পারবেন, এবং আপনাকে এটিকে আলিঙ্গন করতে হবে। আমি আশা করি এই নিবন্ধটি আপনাকে কিভাবে আপনার বড় মিউচুয়াল অ্যাপ্লিকেশনগুলির সাথে যোগাযোগ করতে পারে তা সম্পর্কে কিছু ধারণা দিয়েছে, তবে আপনাকে আমার ধারণাগুলি গ্রহণ করতে হবে এবং আপনার এবং আপনার টিমের পছন্দগুলির সাথে সামঞ্জস্য করতে হবে।

কিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করুনকিভাবে একটি বড় প্রতিক্রিয়া অ্যাপ্লিকেশন সংগঠিত এবং এটি স্কেল করা সম্পর্কিত বিষয়:
npmES6Node। jsTools এবং সেমিট
শিক্ষানবিসদের জন্য সর্বোত্তম উপায় শিখুন
ওয়েস Bos
বাস্তব জগতে আপনারা গড়ে তোলার জন্য একটি ধাপে ধাপে প্রশিক্ষণ কোর্স প্রতিক্রিয়া। জেএস + ফায়ারব্যাশ অ্যাপ্লিকেশন এবং ওয়েবসাইটের দু-দু-দুবারে উপাদান। কুপন কোড ব্যবহার করুন 'SITEPOINT' চেকআউট এ পেতে 25% অফ
March 1, 2018