अभी मैं बहुत विशाल और जटिल वेबपैप विकसित कर रहा हूं और क्लाइंट-साइड जेएस कोड की एक बड़ी मात्रा से निपटना है, और अपना जीवन आसान बनाने के लिए मैं इस कोड को जितना अधिक करने की कोशिश कर रहा हूं जैसा मेरे द्वारा किया जा सकता है।बहुत जटिल जावास्क्रिप्ट मॉड्यूल Decoupling
मैं बेहद निकोलस Zakas (http://www.youtube.com/watch?v=vXjVFPosQHw) और एडी उस्मानी (http://addyosmani.com/largescalejavascript) से प्रेरित था स्केलेबल js वास्तुकला के बारे में बात करते हैं और अपने काम के लिए अपने विचारों में से कुछ को लागू करने की कोशिश कर रहा था।
मैं कई स्वतंत्र मॉड्यूल भर में अपने सभी कोड अलग है, और मध्यस्थ किसी प्रकार के साथ सभी Intercommunications संभाल। ज्यादातर मामलों में यह दृष्टिकोण बहुत अच्छा काम करता है। लेकिन कुछ ऐसे मामले हैं जहां मुझे लगता है कि यह पर्याप्त नहीं है।
मैं जिन मॉड्यूल पर काम कर रहा हूं उनमें से एक एक जटिल जटिल सूची-समान संरचना का प्रतिनिधित्व करता है। यहाँ कुछ सरल उदाहरण:
कुछ प्रतिपादन तर्क इसके अलावा, मॉड्यूल पृष्ठ के इस टुकड़े के लिए जिम्मेदार संभाल चाहिए:
- पृष्ठांकन
- टॉगल समूहों
- के साथ चारों ओर elems और समूहों चलती डीएन
- काटने/प्रतिलिपि बनाने/चिपकाने/हाथों और समूहों को चिपकाने
- ताज़ा certaing समूहों/elems
- elems के भीतर कुछ तर्क
- निकटतम भविष्य में और अधिक सामान
मैं सभी असंबंधित तर्क है कि मैं कर सकता है (उदाहरण के संपादन और हटाने तर्क के लिए किया जाता है बाहर किया था हो सकता है घटनाओं के माध्यम से एक और मॉड्यूल के लिए), लेकिन मॉड्यूल आकार अभी भी बड़ा है (कोड की 1K लाइनों से अधिक), और मुझे नहीं पता कि यह कैसे कम करता है। इसके अलावा मैं अपने मॉड्यूल के लिए मॉड्यूल पैटर्न का उपयोग कर रहा हूं, इसलिए कई फाइलों के बीच तर्क को अलग करना मुश्किल है।
तो मैं यहां पूछने आया हूं कि जटिल मॉड्यूल को एक मॉड्यूल में जटिल करने का कोई तरीका है?
अद्यतन:
मैं कुछ स्पष्ट करना चाहते हैं। मुझे पता है कि मैं अपने कोड में एकाधिक फ़ाइलों में मॉड्यूल (मॉड्यूल पैटर्न से "मॉड्यूल") कैसे अलग कर सकता हूं।
लेकिन क्या मैं वास्तव में के लिए खोज नई तार्किक तरह से एक भी मॉड्यूल (NKZ प्रस्तुति से "मॉड्यूल") के भीतर चिंताओं को अलग करने के लिए है।
आप सवाल थोड़ा अस्पष्ट है, लेकिन सामान्य रूप से, आप एक कार्यक्रम की तरह एक मॉड्यूल का इलाज कर सकते हैं, और मॉड्यूल की दीवारों के भीतर आप अव्यवस्था को कम करने में मदद के लिए उप-मॉड्यूल, कक्षाएं, प्रकार और शुद्ध कार्य बना सकते हैं। आंतरिक प्रक्रिया रीसाइक्लिंग को कम करने के कारण स्वयं निहित मॉड्यूल आम तौर पर अपेक्षाकृत महंगे होते हैं; पूर्व: एक jQuery प्लगइन की तुलना में एक स्टैंडअलोन सूची सॉर्टर। मॉड्यूल एक गड़बड़ से बेहतर हैं, इसलिए आप सही रास्ते पर हैं। निर्भरता इंजेक्शन और नियंत्रण में उलझन की अवधारणाओं को महारत हासिल करने की संभावना है कि आप अपनी स्क्रिप्टिंग को अगले स्तर पर ले जाएं। – dandavis
इस विषय में दिलचस्पी रखने वाले लोग [टी 3] (http://t3js.org/), हाल ही में निकोलस जाकस और बॉक्स में उनकी टीम द्वारा जारी किए गए एक जेएस फ्रेमवर्क को देखना चाहते हैं, जो प्रेजेंटेशन में उल्लिखित अवधारणाओं से सीधे उत्पन्न होता है प्रश्न में जुड़ा हुआ है। [यहां है] (https://www.box.com/blog/introducing-t3-enabling-large-scale-javascript-applications/) जकास से एक ब्लॉग पोस्ट इसे पेश करता है। – Nobita
हाय, यह थोड़ा देर हो चुकी है लेकिन किसी भी तरह सहायक हो सकती है। https://pogsdotnet.blogspot.sg/2017/07/modular-javascript-architecture.html –