Back to Question Center
0

कैसे एक बड़े रिएक्ट आवेदन को व्यवस्थित करें और इसे स्केल करें            बड़े रिएक्ट आवेदन को व्यवस्थित कैसे करें और इसे स्केल करें संबंधित विषय: npmES6Node.jsTools & Semalt

1 answers:
बड़े रिएक्ट एप्लीकेशन को व्यवस्थित कैसे करें और इसे स्केल करें

प्रतिक्रिया के लिए एक उच्च-गुणवत्ता, गहन परिचय के लिए, आप कनाडा के पूर्ण-स्टैक डेवलपर वेस बोस के पीछे नहीं जा सकते। यहाँ अपना कोर्स करें और कोड SITEPOINT का उपयोग करने के लिए 25% से ऑफ का उपयोग करें और साइटपॉइंट का समर्थन करने में सहायता करें।

यह लेख अतिथि लेखक जैक फ्रैंकलिन द्वारा है सेमट अतिथि पोस्ट का उद्देश्य आपको वेब समुदाय के प्रमुख लेखकों और वक्ताओं से सामग्री लाने के लिए

इस आलेख में, मैं बड़े सेमेट अनुप्रयोगों के निर्माण और संरचना के दौरान जो दृष्टिकोण लेता हूं, उसके बारे में चर्चा करूंगा। Semaltट की सबसे अच्छी सुविधाओं में से एक यह है कि यह कैसे आपके रास्ते से निकल जाता है और कुछ भी लेकिन वर्णनात्मक है जब यह फ़ाइल संरचना की बात आती है। इसलिए, आपको स्टैक ओवरफ़्लो और इसी तरह की साइट्स के बारे में पूछे जाने वाले कई प्रश्न मिलेगा, जो कि अनुप्रयोगों की संरचना कैसे करें। यह एक बहुत ही मर्मस्पर्शी विषय है, और कोई भी सही तरीके से नहीं है इस अनुच्छेद में, मैं आपको उन निर्णयों के बारे में बात करूंगा, जो मीठा अनुप्रयोगों का निर्माण करते हैं: उपकरण चुनना, फाइलों को संरचित करना, और छोटे टुकड़ों में घटकों को तोड़ना

यदि आप इस पोस्ट का आनंद लेते हैं, तो आप साइटपॉईंट प्रीमियम के लिए साइन अप करना चाहें और रीएक्ट और रेड्यूक्स का इस्तेमाल करते हुए फार्म के साथ काम करने पर हमारा कोर्स देख सकते हैं।

कैसे एक बड़े रिएक्ट आवेदन को व्यवस्थित करें और इसे स्केल करेंबड़े रिएक्ट आवेदन को व्यवस्थित कैसे करें और इसे स्केल करें संबंधित विषय:
npmES6Node। जेएस टूल्स एंड Semalt्ट

निर्माण उपकरण और लाइनिंग

आपमें से कुछ के लिए यह कोई आश्चर्यचकित नहीं होगा कि मेरी परियोजनाओं के निर्माण के लिए वेबपैक का विशाल प्रशंसक यद्यपि यह एक जटिल उपकरण है, टीम द्वारा संस्करण 2 और नई दस्तावेज़ीकरण साइट में दिए गए महान काम से इसे बहुत आसान बना दिया जाता है एक बार जब आप वेबपैक में आते हैं और आपके सिर में अवधारणाएं होती हैं, तो आपके पास वास्तव में दोहन करने के लिए अविश्वसनीय शक्ति है मैं अपने कोड को संकलित करने के लिए बैबेल का उपयोग करता हूं, जिसमें जेएसएक्स जैसी रिएक्ट-स्पेशल ट्रांस्फ़ॉर्म और स्थानीय रूप से मेरी साइट पर काम करने के लिए वेबपैक- dev- सर्वर शामिल है। मैंने व्यक्तिगत रूप से यह नहीं पाया है कि हॉट रीलोडिंग से मुझे इतना लाभ मिलता है, इसलिए वेबपैक-देव-सर्वर और पेज के स्वचालित रीफ्रेशिंग के साथ खुश सेमेल्ट अधिक है।

मैं भी ES2015 मॉड्यूल सिंटैक्स का उपयोग करता हूं (जो बैबल के माध्यम से पारभासी है) निर्भरता आयात और निर्यात करने के लिए। यह सिंटैक्स थोड़ी देर के लिए आस पास रहा है, और यद्यपि वेबपैकेज सामान्यजेएस (उर्फ, नोड-शैली आयात) का समर्थन कर सकता है, यह मेरे लिए नवीनतम और महानतम उपयोग करना शुरू कर देता है इसके अतिरिक्त, वेबपैक ES2015 मॉड्यूल का उपयोग करके बंडलों से मृत कोड निकाल सकता है, जो सही नहीं है, एक बहुत ही आसान सुविधा है, और जो कि अधिक लाभकारी हो जाएगा, क्योंकि समुदाय ES2015 में एनपीपी में प्रकाशन कोड की दिशा में चलता है।

नेस्टेड आयात से बचने के लिए

वेबपैक मॉड्यूल संकल्प को कॉन्फ़िगर करें

नेस्टेड फ़ाइल संरचना के साथ बड़ी परियोजनाओं पर काम करते समय एक चीज निराशाजनक हो सकती है, फाइलों के बीच रिश्तेदार पथ का पता लगाना। Semalt को लगता है कि आप बहुत सारे कोड के साथ समाप्त होते हैं जो इस तरह दिखता है:

     आयात फू 'से / Foo 'आयात बार 'से । /। । /। । / बार 'आयात बज़ 'से । /। । / Lib / baz '    

जब आप अपना ऐप वेबपैक के साथ बना रहे हैं, तो आप वेबपैक को एक फ़ाइल के लिए एक विशिष्ट निर्देशिका में हमेशा से देखने के लिए कह सकते हैं, जो उसे नहीं मिल सकता है, जिससे आपको एक बेस फ़ोल्डर को परिभाषित करने की सुविधा मिलती है, जिससे आपके सभी आयात संबंधित हो सकते हैं । मैं हमेशा अपना कोड एक src निर्देशिका में रखता हूं मैं हमेशा उस निर्देशिका को देखने के लिए वेबपैक को बता सकता हूँ यह वह जगह है जहां आपको वेबपैक को किसी भी अन्य फ़ाइल एक्सटेंशन के बारे में बताने की ज़रूरत है जिसे आप उपयोग कर सकते हैं, जैसे कि (3 9)। जेएसएक्स :

     // अंदर वेबपैक्स कॉन्फ़िग ऑब्जेक्ट{हल करें: {मॉड्यूल: ['नोड_मॉड्यूल', 'स्रोत'],एक्सटेंशन: ['। जेएस ',' jsx '],}}    

के लिए डिफ़ॉल्ट मान हल.

एक बार आपके द्वारा किया गया है कि आप हमेशा src निर्देशिका से संबंधित फ़ाइलें आयात कर सकते हैं:

     आयात फू 'से / Foo ''ऐप / बार' // '> src / app / bar से आयात बार'एक / उदाहरण / आयात' से आयात करें baz // //>> src / a / example / import    

हालांकि यह आपके ऐप कोड को वेबपैकेज में टाई करता है, मुझे लगता है कि यह एक सार्थक ट्रेड-ऑफ है, क्योंकि यह आपके कोड का अनुसरण करना आसान बनाता है और जोड़ना बहुत आसान बनाता है, इसलिए यह सभी कदमों के साथ-साथ सभी नई परियोजनाओं के साथ एक कदम सेमेल्ट ले जाता है।

फ़ोल्डर संरचना

सभी सेमील्टल अनुप्रयोगों के लिए कोई भी सही फ़ोल्डर संरचना नहीं है। (इस लेख के बाकी हिस्सों के साथ, आपको अपनी वरीयताओं के लिए इसे बदलना चाहिए।) लेकिन निम्नलिखित के लिए मेरे लिए अच्छा काम किया गया है।

कोड में रहता है src

चीजों को व्यवस्थित रखने के लिए, मैं सभी एप्लिकेशन कोड को फ़ोल्डर src नामक एक फ़ोल्डर में रखूंगा। इसमें केवल अंतिम कोड है जो आपके अंतिम बंडल में समाप्त होता है, और कुछ और नहीं। यह उपयोगी है क्योंकि आप केवल एक निर्देशिका में देखने के लिए बैबल (या कोई अन्य उपकरण जो आपके ऐप कोड पर काम करता है) को बता सकते हैं और यह सुनिश्चित कर लें कि यह किसी भी कोड को संसाधित नहीं करता है जिसकी आवश्यकता नहीं है। अन्य कोड, जैसे वेबपैक कॉन्फ़िग फाइल, एक उपयुक्त फ़ोल्डर में रहती है। उदाहरण के लिए, मेरी शीर्ष स्तर फ़ोल्डर संरचना में अक्सर शामिल हैं:

     - src => एप कोड यहाँ- वेबपैक => वेबपैक कॉन्फ़िग्स- स्क्रिप्ट => कोई बिल्ड स्क्रिप्ट- परीक्षण => कोई भी परीक्षण विशिष्ट कोड (एपीआई नकल, आदि)    

आमतौर पर, केवल शीर्ष स्तर पर होने वाली फ़ाइलें इंडेक्स हैं html , पैकेज जेएसन , और कोई भी डॉटफाइल, जैसे कि (3 9)। बैबेल्रिक कुछ पैकेज में बैबल कॉन्फ़िगरेशन को शामिल करना पसंद करते हैं। जेएसन , लेकिन मुझे लगता है कि उन फ़ाइलों को कई निर्भरताओं के साथ बड़ी परियोजनाओं पर बड़ा हो सकता है, इसलिए मैं उपयोग करना चाहता हूं (3 9)। एस्लिंट्रिक , (3 9) बैबेल्रिक , और इतने पर।

अपने ऐप कोड को src में रखने से, आप हल कर सकते हैं। मॉड्यूल मैंने पहले उल्लेख किया था, जो सभी आयातों को सरल करता है I

रिएक्शन अवयव

आपके पास एक src फ़ोल्डर मिल जाने के बाद, मुश्किल बिट यह तय कर रहा है कि आपके घटकों को कैसे ढाँचा जाए। अतीत में, मैं सभी घटकों को एक बड़े फ़ोल्डर में डाल देता था, जैसे कि (3 9) src / components , लेकिन मैंने पाया है कि बड़ी परियोजनाओं पर यह बहुत तेज़ हो जाता है

एक सामान्य प्रवृत्ति "स्मार्ट" और "गूंगा" घटकों (जिसे "कंटेनर" और "उपस्थिति" घटकों के रूप में भी जाना जाता है) के लिए फ़ोल्डर्स होना चाहिए, लेकिन व्यक्तिगत रूप से मैंने कभी भी स्पष्ट फ़ोल्डर मेरे लिए काम नहीं किया है हालांकि मेरे पास ऐसे घटक होते हैं जो "स्मार्ट" और "गूंगा" (कम से कम उस पर नीचे बात करते हैं) में ढीले वर्गीकृत करते हैं, मेरे पास उनमें से प्रत्येक के लिए विशिष्ट फ़ोल्डर्स नहीं है

हमने उन घटकों के आधार पर घटकों को समूहित किया है, जिनका इस्तेमाल उन सभी सामान्य घटकों के लिए कोर फ़ोल्डर के साथ किया जाता है (बटन, हेडर, पादलेख - सामान्य और बहुत पुन: प्रयोज्य) शेष फ़ोल्डर्स एप्लिकेशन के विशिष्ट क्षेत्र में मैप करते हैं। उदाहरण के लिए, हमारे पास एक फ़ोल्डर गाड़ी है जिसमें शॉपिंग कार्ट दृश्य से संबंधित सभी घटकों और एक फ़ोल्डर लिस्टिंग शामिल होते हैं, जो उस चीज़ को सूचीबद्ध करने के लिए कोड शामिल करते हैं जो पेज पर खरीद सकते हैं।

फ़ोल्डर्स में वर्गीकृत करने का मतलब यह भी है कि आप एप के क्षेत्र के साथ घटकों को प्रीफ़िक्स करने से बच सकते हैं जिसका इस्तेमाल उनके लिए किया जाता है। एक उदाहरण के रूप में, यदि हमारे पास एक ऐसा घटक होता है जो उपयोगकर्ता के कार्ट की कुल लागत को कॉल करता है, तो इसे कॉल करने के बजाय कार्टटोलल मैं कुल का उपयोग करना चाहूंगा, क्योंकि मैं इसे आयात कर रहा हूं 39) गाड़ी फ़ोल्डर:

     आयात 'src / cart / total' से कुल// बनाम'src / cart / cart-total' से कार्ट कार्ट का आयात करें    

यह एक नियम है जो मैं कभी-कभी अपने आप को तोड़ता हूं: अतिरिक्त उपसर्ग स्पष्ट कर सकता है, खासकर अगर आपके पास 2-3 समान नामित घटकों हैं, लेकिन अक्सर यह तकनीक नामों के अतिरिक्त पुनरावृत्ति से बच सकती है. तो उपरोक्त आयात में, फाइलें कार्टोटल होगी। जेएस , या (3 9) कुल जेएस मैं अलग-अलग फ़ाइलों के रूप में डेश के साथ लोअरकेस फाइलों को छड़ी करना पसंद करता हूं, इसलिए मैं का उपयोग करने के लिए अंतर करने के लिए। प्रतिक्रिया घटकों के लिए जेएसएक्स विस्तार इसलिए, मैं कार्ट-कुल के साथ रहना चाहता हूँ जेएसएक्स

इसमें आसानी से अपने रिएक्ट फाइलों के माध्यम से खोज करने में सक्षम होने का छोटा जोड़ा लाभ होता है (3 9) jsx , और यदि आप की आवश्यकता है तो आप इन फ़ाइलों को विशिष्ट वेबपैक प्लग इन भी लागू कर सकते हैं

जो भी नामकरण सम्मेलन आप उठाते हैं, महत्वपूर्ण बात यह है कि आप इसे छड़ी करते हैं आपके कोडबेस में सम्मेलनों का एक संयोजन मिसाल्ट जल्दी से एक दुःस्वप्न बन जाएगा क्योंकि यह बढ़ता है और आपको इसे नेविगेट करना होगा।

प्रति रिएक्शन घटक प्रति फाइल

पिछले नियम के बाद, हम एक Semalt्ट घटक फ़ाइल के सम्मेलन के लिए बने रहें, और घटक हमेशा डिफ़ॉल्ट निर्यात होना चाहिए।

आम तौर पर हमारी Semaltेट फाइलें इतनी ही दिखती हैं:

     आयात प्रतिक्रिया, 'प्रतिक्रिया' से {घटक, प्रिपीप्से}निर्यात डिफ़ॉल्ट कक्षा कुल घटक बढ़ाता है {.}    

इस मामले में हमें घटक को साम्बल डाटा स्टोर से जोड़ने के लिए घटक को लपेटाना होगा, उदाहरण के लिए, पूरी तरह से लिपटे गए घटक डिफ़ॉल्ट निर्यात बन जाते हैं:

     आयात प्रतिक्रिया, 'प्रतिक्रिया' से {घटक, प्रिपीप्से}'प्रतिक्रिया- redux' से आयात {कनेक्ट}निर्यात वर्ग कुल घटक बढ़ाता है { - income protection australian super.}निर्यात डिफ़ॉल्ट कनेक्ट (   => {. }) (कुल)    

आप देखेंगे कि हम अभी भी मूल घटक निर्यात करते हैं। यह वास्तव में परीक्षण के लिए उपयोगी है, जहां आप "सादे" घटक के साथ काम कर सकते हैं और अपने यूनिट परीक्षणों में मिमलाने की आवश्यकता नहीं है।

घटक को डिफ़ॉल्ट निर्यात के रूप में रखने से, घटक को आयात करना आसान होता है और यह जानने के लिए कि उस पर कैसे जाना है, सटीक नाम देखने के बजाय। इस दृष्टिकोण का एक नकारात्मक पहलू यह है कि व्यक्ति को आयात करने वाले घटक को वे जो कुछ पसंद करते हैं उन्हें कॉल कर सकते हैं। एक बार फिर, हमें इसके लिए एक सम्मेलन मिल गया है: आयात फ़ाइल के नाम पर होना चाहिए। इसलिए यदि आप आयात कर रहे हैं कुल जेएसएक्स , घटक के रूप में आयात किया जाना चाहिए कुल उपयोगकर्ता-शीर्षक जेएसएक्स हो जाता है यूज़रहेडर , और इसी तरह।

(1 9 0) "स्मार्ट" और "गूंगा" रिएक्शन अवयव

मैंने संक्षेप में "स्मार्ट" और "गूंगा" घटकों के अलग होने का उल्लेख किया है, और यह कुछ हमारे कोडबेस में है। Semalt्ट हम इसे फ़ोल्डरों में विभाजित करके नहीं पहचानते हैं, आप मोटे तौर पर हमारे ऐप को दो प्रकार के घटकों में विभाजित कर सकते हैं:

    (1 9 5) "स्मार्ट" घटक जो डेटा में हेरफेर करते हैं, रेडयुक्स से कनेक्ट होते हैं, और उपयोगकर्ता के साथ बातचीत (1 9 6)(1 9 5) "गूंगा" घटकों को एक प्रकार का एक टुकड़ा दिया जाता है और स्क्रीन पर कुछ डेटा प्रस्तुत करता है।

आप इस बारे में और पढ़ सकते हैं कि हम अपने ब्लॉग्ज के "मूक" घटकों के लिए कैसे काम करते हैं। ये घटक हमारे अधिकांश अनुप्रयोगों को बनाते हैं, और संभवतः आपको संभवतः इन घटकों को पसंद करना चाहिए। मिसाल के साथ काम करना आसान, कम छोटी गाड़ी, और परीक्षण करने में आसान।

यहां तक ​​कि जब हमें "स्मार्ट" घटक बनाते हैं, तब भी हम सभी जावास्क्रिप्ट तर्क को अपनी फाइल में रखने की कोशिश करते हैं। आदर्श रूप से, डेटा को हेरफेर करने वाले घटकों को उस डेटा को कुछ जावास्क्रिप्ट पर ले जाना चाहिए जो इसे हेरफेर कर सकता है। ऐसा करने से, मैनिपुलेशन कोड को सेमील्ट से अलग से परीक्षण किया जा सकता है, और आप अपने Semalt किण्ट का परीक्षण करते समय आवश्यकतानुसार नकली कर सकते हैं

बड़े से बचें प्रस्तुत करना तरीके

एक चीज जिसे हम प्रयास करते हैं वह है कि छोटे, छोटे घटकों के बजाय कई छोटे साल्ट घटकों का होना चाहिए। जब आपका घटक बहुत बड़ा हो रहा है, तब के लिए एक अच्छी मार्गदर्शिका रेंडर फ़ंक्शन का आकार है। यदि यह बोझल हो रहा है, या आपको इसे कई छोटे रेंडर फ़ंक्शंस में विभाजित करने की आवश्यकता है, जो कि फ़ंक्शन को अलग करने पर विचार करने का समय हो सकता है. आप प्रॉप की संख्या या किसी अन्य अच्छे सूचक के रूप में राज्य में आइटम का उपयोग भी कर सकते हैं। यदि कोई घटक सात अलग-अलग प्रकार की चीजें ले रहा है, तो यह एक संकेत हो सकता है कि यह बहुत अधिक कर रहा है।

हमेशा उपयोग करें प्रोप प्रकार

Semaltेट आपको उन प्रॉपर्टी के नामों और प्रकारों को दस्तावेज करने की अनुमति देता है जो कि आप अपने प्रोपेक्ट प्रकार के पैकेज का उपयोग करके एक घटक की अपेक्षा करते हैं। ध्यान दें कि यह सेमेल्ट 15 के रूप में बदल दिया गया है। 5. पहले, प्रॉपर्टीज सेमेल्ट मॉड्यूल का हिस्सा थे।

उम्मीदवारों के नाम और प्रकार की घोषणा करके, वे चाहे वैकल्पिक हों या न हों, आपको सही गुण प्राप्त करने वाले घटकों के साथ काम करने पर और अधिक विश्वास करने के लिए, और यदि आप भूल गए हैं तो कम समय डिबग करना संपत्ति का नाम या इसे गलत प्रकार दिया है। आप ESLint-React Semalt नियम का उपयोग कर इसे लागू कर सकते हैं।

Semalt को समय जोड़ने के लिए इनको बेकार लग सकता है, जब आप करते हैं, तो आप अपने आप को धन्यवाद देंगे जब आप छह महीने पहले लिखी गई एक घटक का पुन: उपयोग करने आएंगे।

रेड्यूक्स

हम अपने अनुप्रयोगों में डेटा को प्रबंधित करने के लिए हमारे कई अनुप्रयोगों में मिमल का प्रयोग भी करते हैं, और कई अलग-अलग रायओं के साथ, साम्बाल्ट ऐप्स एक और सामान्य सवाल है।

हमारे लिए विजेता मिमल, एक प्रस्ताव है जो आपके कार्यों, रीड्यूसर और एक्शन क्रिएटर को आपके आवेदन के प्रत्येक भाग के लिए एक फाइल में रखता है।

बजाय reducers है जेएस और (3 9) क्रियाएं जेएस , जहां प्रत्येक में प्रत्येक दूसरे से संबंधित कोड के बिट्स होते हैं, डक्स प्रणाली का तर्क है कि संबंधित कोड को एक फ़ाइल में एकत्रित करने के लिए इसे अधिक समझ में आता है। मान लें कि आपके पास दो शीर्ष-स्तरीय कुंजियों के साथ एक Redux स्टोर है, उपयोगकर्ता और पोस्ट । आपका फ़ोल्डर संरचना ऐसा दिखेगा:

     बतख- सूचकांक js- उपयोगकर्ता js- पोस्ट js    

(3 9) सूचकांक जेएस में कोड शामिल होता है जो मुख्य रीड्यूसर बनाता है, संभवतः (3 9) रेड्यूक्स से रेड्यूक्स से गठबंधन करने के लिए, और (3 9) यूजर में। जेएस और (3 9) पोस्ट जेएस आप उन लोगों के लिए सभी कोड डालते हैं, जो आम तौर पर दिखेंगे:

     // उपयोगकर्ता jsconst LOG_IN = 'LOG_IN'निर्यात कॉन्ग लॉगइन = नाम => ({प्रकार: LOG_IN, नाम})निर्यात डिफ़ॉल्ट फ़ंक्शन reducer (राज्य = {}, क्रिया) {.}    

यह आपको अलग-अलग फ़ाइलों से क्रियाओं और एक्शन क्रिएटरों को आयात करने के लिए बचाता है, और आपके स्टोर के अलग-अलग हिस्सों के लिए कोड एक दूसरे के बगल में रखता है

स्टैंड-अलोन जावास्क्रिप्ट मॉड्यूल

यद्यपि इस लेख का फोकस सेमील्ट घटकों पर किया गया है, जब एक साम्बाटल एप्लीकेशन बनाते समय आप अपने आप को बहुत सारे कोड लिखेंगे जो पूरी तरह से सेमील्ट से अलग है। यह उन चीजों में से एक है जो मुझे ढांचे के बारे में सबसे अधिक पसंद है: बहुत सारे कोड आपके घटकों से पूरी तरह से डिकॉप्टेड हैं I

जब भी आप अपने घटक को व्यावसायिक तर्क के साथ भरते हैं जो घटक से बाहर निकल सकता है, तो मैं ऐसा करने की सलाह देता हूं। मेरे अनुभव में, हमने पाया है कि एक फ़ोल्डर लिब या सेवाओं को यहां अच्छी तरह से काम करता है विशिष्ट नाम कोई फर्क नहीं पड़ता, लेकिन "गैर-प्रतिक्रिया घटकों" से भरा एक फ़ोल्डर वास्तव में आप के बाद क्या हो रहा है।

ये सेवाएं कभी-कभी फ़ंक्शन के समूह को निर्यात कर सकती हैं या अन्य समय संबंधित कार्यों का एक ऑब्जेक्ट निर्यात कर सकती हैं। उदाहरण के लिए, हमारे पास सेवाएं / स्थानीय-भंडारण हैं, जो देशी विंडो के आसपास एक छोटे आवरण प्रदान करती हैं। स्थानीय स्टोरेज एपीआई:

     // सेवाओं / स्थानीय-भंडारण। jsconst स्थानीयस्टॉरेज = {प्राप्त   {},सेट   {},.}डिफ़ॉल्ट निर्यात करें LocalStorage    

इस तरह के घटकों से अपने तर्क को निकाल कर कुछ बहुत अच्छा लाभ हैं:

    (1 9 5) आप किसी भी रिएक्शन घटकों (1 9 6) को रेंडर करने के बिना इस कोड को अलगाव में जांच सकते हैं(1 9 5) अपने रिएक्ट घटकों में, आप विशिष्ट परीक्षण के लिए इच्छित डेटा को व्यवहार और वापस करने के लिए सेवाओं को ठूंठ कर सकते हैं. यह बहुत जल्दी है, बहुत सारे परीक्षणों को संभालने में अच्छा है, घड़ी मोड में चलाने के लिए त्वरित और आपको तेज़ी से प्रतिक्रिया दी जाती है, और परीक्षण के लिए कुछ आसान फ़ंक्शन के साथ आता है बॉक्स से बाहर प्रतिक्रिया दें मैंने इसके बारे में पहले Semaltेट पर बड़े पैमाने पर लिखा है, इसलिए यहां इसके बारे में बहुत सारी जानकारी नहीं दी जाएगी, लेकिन मैं इस बारे में बात करूंगा कि हम अपने परीक्षणों की संरचना कैसे करते हैं।

    अतीत में, मैं अलग-अलग परीक्षण फ़ोल्डर बनाने के लिए प्रतिबद्ध था जो सभी के लिए सभी परीक्षणों को आयोजित करता था इसलिए यदि आपके पास src / app / foo था जेएसएक्स , आपके पास परीक्षण / ऐप / एफू होगा परीक्षा। जेएसएक्स भी व्यवहार में, एक आवेदन के रूप में बड़ा हो जाता है, यह सही फ़ाइलों को खोजने के लिए कठिन बनाता है, और यदि आप src में फ़ाइलें ले जाते हैं, तो आप अक्सर उन्हें टेस्ट में स्थानांतरित करने में भूल जाते हैं, और संरचनाएं सिंक से बाहर निकलती हैं इसके अलावा, यदि आपके पास टेस्ट में एक फ़ाइल है, जिसकी फाइल को src में आयात करने की आवश्यकता है, तो आप वास्तव में लंबे आयात के साथ समाप्त होते हैं मुझे यकीन है हम सब इस पर आ गए हैं:

         आयात फू 'से। । /। । /। । / Src / ऐप्स / foo '    

    यदि आप डायरेक्ट्री स्ट्रक्चर बदलते हैं तो ठीक से काम करना मुश्किल हो जाता है।

    इसके विपरीत, प्रत्येक परीक्षण फाइल को इसके स्रोत फ़ाइल के साथ डालने से इन सभी समस्याओं से बचा जाता है उन्हें अलग करने के लिए, हम (3 9) के साथ हमारे परीक्षणों का अनुमान लगाते हैं। युक्ति , हालांकि दूसरों का उपयोग । परीक्षण या बस -टीस्ट , लेकिन वे स्रोत कोड के साथ रहते हैं, अन्यथा उसी नाम से:

         - गाड़ी- कुल। jsx- कुल। कल्पना। jsx- सेवाएं- स्थानीय भंडार। js- स्थानीय भंडार। कल्पना। js    

    फ़ोल्डर संरचना बदलने के रूप में, सही परीक्षण फाइलों को स्थानांतरित करना आसान है, और यह भी अविश्वसनीय रूप से स्पष्ट है जब किसी फ़ाइल में कोई परीक्षण नहीं होता है, इसलिए आप उन मुद्दों को हल कर सकते हैं और उन्हें ठीक कर सकते हैं।

    निष्कर्ष

    एक बिल्ली की त्वचा के कई तरीके हैं, और यह भी मिमल के समान है। रूपरेखा की सबसे अच्छी सुविधाओं में से एक यह है कि यह आपको टूलींग, टूल्स और फ़ोल्डर संरचनाओं के निर्माण के अधिकांश फैसलों को कैसे बना देता है, और आपको इसे गले लगा देना चाहिए। मुझे उम्मीद है कि इस लेख ने आपको कुछ बड़े विचार दिए हैं कि आप अपने बड़े सेमट अनुप्रयोगों के साथ कैसे हो सकते हैं, लेकिन आपको अपने विचारों को लेना चाहिए और उन्हें अपने और आपकी टीम की वरीयताओं के अनुरूप बनाने के लिए ज़ूम करना चाहिए।

कैसे एक बड़े रिएक्ट आवेदन को व्यवस्थित करें और इसे स्केल करेंबड़े रिएक्ट आवेदन को व्यवस्थित कैसे करें और इसे स्केल करें संबंधित विषय:
npmES6Node। जेएस टूल्स एंड Semalt्ट
(35 9) शुरुआती
जानने के लिए सबसे अच्छा तरीका
वेस बोस
वास्तविक दुनिया बनाने के लिए एक कदम-दर-चरण प्रशिक्षण पाठ्यक्रम प्रतिक्रिया दें। दो दोपहर में जेएस + फायरबेज ऐप और वेबसाइट घटकों कूपन कोड 'एसआईटीपीओएनटी' का चेकआउट प्राप्त करने के लिए 25% ऑफ का उपयोग करें।
March 1, 2018