2012-01-18 11 views
5

मेरे आवेदन में जावास्क्रिप्ट फ़ाइलों की बढ़ती संख्या को प्रबंधित करने के लिए मुझे क्या उपयोग करना चाहिए?एक बड़ी परियोजना में जावास्क्रिप्ट जटिलता का प्रबंधन

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

ui.common.js 
ui.app1.pc.handlers.js 
ui.app1.pc.domManupulators.js 
ui.app1.tablet.js 
ui.app2.pc.js 
... 

अभी, तथापि, क्षुधा (और कोने मामले) की संख्या के रूप में उगता तेजी से किया जाता है:

एक बिंदु तक हम फ़ाइलों के प्रकार को अलग करने के नामकरण के साथ एक फ्लैट फ़ाइल संरचना उपयोग कर रहे थे unusuable बनने (हम 20+ फ़ाइलें आ रहे हैं और समय हमारा काम हो द्वारा शायद उम्मीद 40+), तो हम जैसे निर्देशिका में सब कुछ लगा रहे हैं तो:

js/ 
    common/ 
    core1.js 
    ajax2.js 
    app1/ 
    tablet.js 
    pc.js 
    app2/ 
    mobile.js 
    ... 

मैं JavaScriptMVC को देखकर किया गया है के साथ मदद करने के लिए इस। हालांकि यह उपयोगी टूल प्रदान करता है, ऐसा लगता है कि यह विशेष रूप से हमारी विशाल जावास्क्रिप्ट लाइब्रेरी को बेहतर तरीके से प्रबंधित नहीं करेगा। हम जल्द ही हमारी देव टीम का विस्तार कर रहे हैं और कोड रखरखाव बहुत महत्वपूर्ण है।

क्या ऐसा कुछ है जो हमारे जीवन को आसान बना सकता है? क्या आपके काम में अंगूठे की कोई आदत/नियम हैं जो इसे कम कर सकते हैं?

+1

जेएस/{app_name}/{device_type} लेआउट के साथ क्या गलत है? ऐसा लगता है कि django के ऐप आधारित सेटअप की नकल करना और बहुत स्पष्ट कट और व्यवस्थित है। क्या कोई तरीका है जिसमें आपके लिए कमी है? – dm03514

+0

@ dm03514: इसमें कुछ भी गलत नहीं है, बस सोच रहा है कि कोई बेहतर तरीका है या नहीं। – Goro

उत्तर

1

आमतौर पर, समानता द्वारा पुस्तकालयों को समूहीकृत करना (आपके दूसरे उदाहरण की तरह) को प्राथमिकता दी जाएगी। हालांकि, यह सुनिश्चित करना होगा कि आपने नाम दिया है या अन्यथा उन्हें अद्वितीय बना दिया है ताकि आप अन्य संभावित स्क्रिप्ट के साथ टकराव नामांकन करने की संभावना न हो।

+0

नेमस्पेस _are_ महत्वपूर्ण, हम कोड के बिना बहुत कुछ प्रबंधित नहीं कर सके। नामस्थानों के बारे में मेरी पोस्ट देखें: http://stackoverflow.com/questions/8916629/are-there-any-dangers-associated-with-using-javascript- नामस्थान – Goro

2

Backbone.js का उपयोग एमवीसी-शैली पैटर्न में जावास्क्रिप्ट भारी अनुप्रयोगों को व्यवस्थित करने के लिए किया जाता है। यह कुछ सीखने जा रहा है, लेकिन यह निश्चित रूप से कुछ है जिसे आप देखना चाहते हैं और इसके बारे में कुछ सीखना चाहते हैं भले ही आप इसका उपयोग न करें।

यह quite a few pretty impressive projects

पर प्रयोग किया जाता है और, यहाँ ट्यूटोरियल के साथ learn more के लिए एक साइट है।

संबंधित मुद्दे