2012-05-25 13 views
6

का उपयोग कर जावास्क्रिप्ट एप्लिकेशन में spec फ़ाइलों को कैसे व्यवस्थित किया जाना चाहिए, मैं एमवीसी (उदाहरण के लिए रीढ़ की हड्डी) का उपयोग करके बड़े वेब एप्लिकेशन में फ़ाइलों/निर्देशकों को व्यवस्थित करने के तरीके के बारे में आपकी राय जानना चाहता हूं।
मैं निम्नलिखित (*) बनाउंगा। कृपया मुझे अपनी राय बताएं।एमवीसी


(*)

js 
js/models/myModel.js 
js/collections/myCollection.js 
js/views/myView.js 
spec/model/myModel.spec.js 
spec/collections/myCollection.spec.js 
spec/views/myView.spec.js 

उत्तर

1

आप एक अच्छा उदाहरण है कि कैसे इस लिंक

Backbone Jasmine examples

यह कम या ज्यादा अपने कार्यान्वयन की तरह लग रहा करने के लिए अपने आवेदन को व्यवस्थित करने के पा सकते हैं।

3

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

js/feature1/someView.js 
js/feature1/someController.js 
js/feature1/someTemplate.html 
js/feature1/someModel.js 

लेकिन, अक्सर वहाँ वैश्विक "बातें" है कि आप की जरूरत है, "उपयोगकर्ता" या कि उपयोगकर्ता का निर्माण किया है स्थानों की एक संग्रह की तरह हैं। तो:

js/application/model/user.js 
js/application/collection/location.js 

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

मेरे दो सेंट।

संपादित करें: spec फ़ाइलों के बारे में क्या?

कुछ विचार - आपको केवल उस व्यक्ति को चुनना होगा जो आपको लगता है कि आपके लिए सबसे स्वाभाविक लगता है।

  1. आप spec फ़ाइलों के साथ एक ही 'फीचर फ़ोल्डर' पैटर्न का पालन कर सकते हैं। उल्टा यह है कि सभी चश्मे एक ही स्थान पर हैं। नकारात्मकता यह है कि अब, जो आप वर्तमान में कर रहे हैं उतना ही, आपको एक फीचर की फाइलों के लिए जगह लेनी होगी।
  2. आप चश्मे को सुविधा फ़ोल्डर के 'spec' फ़ोल्डर में डाल सकते हैं। उलझन यह है कि अब आपके पास वास्तविक पैकेज हैं जिन्हें एक ही ज़िप फ़ाइल में लपेटा जा सकता है, जिसमें अन्य कामों को पकड़ने का कोई मौका नहीं है। परीक्षण लिखने के लिए सीधे संबंधित फाइलों को ढूंढना भी आसान है - वे सभी एक ही मूल फ़ोल्डर में हैं। नकारात्मकता यह है कि अब आपका उत्पादन कोड और परीक्षण कोड एक ही फ़ोल्डर में है, इसे (संभवतः) दुनिया में प्रकाशित करना। अनुमोदित है कि आप शायद किसी भी समय एक फ़ाइल में उत्पादन जावास्क्रिप्ट को संकलित करना समाप्त कर देंगे .. इसलिए मुझे यकीन नहीं है कि यह एक मुद्दा है।
  3. मेरा सुझाव - यदि यह एक बड़ा एप्लीकेशन है और आपको लगता है कि आपके पास फ़ाइलों को छूने वाले कुछ हाथ हैं, तो फ़ोल्डर में 'package.json/yml/xml' फ़ाइल की तरह कुछ छोड़ दें। वहां, उत्पादन, spec, और परीक्षण के लिए आवश्यक किसी भी डेटा फ़ाइलों को सूचीबद्ध करें (आप संभवतः आपके लिए ऐसा करने के लिए एक त्वरित खोल स्क्रिप्ट लिख सकते हैं)। फिर 'package.whateverYouChose' फ़ाइलों के लिए अपने स्रोत फ़ोल्डर को देखने के लिए एक त्वरित स्क्रिप्ट लिखें, परीक्षण फाइलें प्राप्त करें और फिर इसके साथ अपना यूनिट परीक्षण पृष्ठ बनाएं। तो, मान लीजिए कि आप एक और पैकेज जोड़ते हैं .. 'updateSpecRunner' चलाएं या जो भी आप स्क्रिप्ट का नाम दें, और यह आपको एक और SpecRunner.html फ़ाइल जेनरेट करेगा (या जो भी आपने फ़ाइल को चश्मा चलाया है)। फिर आप इसे ब्राउज़र में मैन्युअल रूप से परीक्षण कर सकते हैं, या इसे phantomjs/rhino का उपयोग करके स्वचालित कर सकते हैं।

क्या यह समझ में आता है?

+0

spec फ़ाइलों के बारे में क्या? – js999

+0

मैं सिर्फ एक पल में अपना जवाब अपडेट करूंगा। – Stephen

+0

धन्यवाद, मैं इसे स्वीकार करने से पहले अपने एवरवेयर का अध्ययन करूंगा ... +1 आपके समय के लिए धन्यवाद – js999