2015-10-29 3 views
12

Polymer Starter Kit एक पॉलिमर प्रोजेक्ट शुरू करने का एक अच्छा संदर्भ है। आप बस अपने सभी तत्वों को app/elements फ़ोल्डर में डाल दें। यह छोटे से मिडिसेज परियोजनाओं के लिए बहुत साफ काम करता है।100+ तत्वों के साथ बड़ी पॉलिमर परियोजनाओं को कैसे व्यवस्थित करें

जब आपके पास ~ 30 से अधिक तत्व होते हैं तो यह गन्दा हो जाता है।

  • जब आप डेमो के लिए चाहते हैं और परीक्षण submodules आप की जरूरत:

    - elements -- my-module-1 --- my-element-1-1 --- my-element-1-2 -- my-module-2 --- my-submodule-2-1 ---- my-element-2-1-1 ---- my-element-2-1-2 --- my-submodule-2-2 ---- ...

    मुद्दों के एक जोड़े हैं: तो फिर आप इस तरह एक गहरी फ़ोल्डर संरचना में फ्लैट elements फ़ोल्डर refactor करना चाहते हैं प्रत्येक तत्व परिभाषा के ऊपर सभी निर्भरताओं को आयात करने के लिए

  • आप "सभी तत्व भाई बहन" के पैटर्न को तोड़ते हैं
  • आपके सापेक्ष पथ गन्दा हो जाते हैं (../../../my-module-x/my-module-y के बहुत सारे)
  • आपके पास या तो ../../../../bower_components जैसे बहुत से पथ हैं या आप /bower_components का उपयोग करते हैं, तो आपको अपने dev-server में रीडायरेक्ट करने की आवश्यकता है और पूर्ण पथ गलप-वल्कनाइज़ को गड़बड़ कर देंगे। भंडार
  • बिल्डिंग

    • अलग तत्व:
    • एक डेमो और हर तत्व अपनी निर्देशिका संरचना बहुत जल्दी

    यहाँ बढ़ता है के लिए परीक्षण फ़ोल्डर के साथ एक nice article समस्या का वर्णन और दो समाधान उनका कहना है पुन: प्रयोज्य तत्व

पृथक तत्व रिपोजिटरीमें~ 30 तत्वों के लिए काम करता है, लेकिन एक बार जब आप 100+ तत्वों तक पहुंच जाते हैं, तो आप एक ही समस्या में भाग लेते हैं।

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

तो मुझे आश्चर्य है कि बड़े पॉलिमर ऐप्स बनाने के तरीके पर अच्छे अभ्यास क्या हैं? क्या 30 से अधिक तत्वों के साथ परियोजनाओं के कोई उदाहरण हैं?

पुन: प्रयोज्य तत्वों के लिए अच्छे अभ्यास क्या हैं जिनमें कई तत्व होते हैं?

एकाधिक प्रविष्टि बिंदुओं के लिए एक अच्छी संरचना क्या है?

सामान्य रूप से: आप पॉलिमर परियोजनाओं को कैसे स्केल करते हैं?

+0

वास्तव में आपके वर्तमान मुद्दे पर कोई मदद नहीं है। लेकिन मैंने कुछ पॉलिमरियो वीडियो देखे, जहां उन्होंने निर्भरताओं सहित उपयोग को आसान बनाने की योजनाओं के बारे में बात की (शायद आवश्यक निर्भरताओं को स्वतः आयात करें?)। दूसरे शब्दों में, भले ही यह आपके लिए एक समस्या है, भले ही यह "निकट" भविष्य में बहुत आसान हो। :) – Whyser

+0

शायद आप का मतलब है [पॉलीगिट] (https://github.com/PolymerLabs/polygit)? "_ जादू सर्वर सीधे github_ से फ़ाइलें प्रदान करता है"। यह एकाधिक रिपोज़ रखने के लिए थोड़ा आसान बनाता है (क्योंकि आपको प्रत्येक परिवर्तन के बाद 'बॉवर अपडेट' करने की आवश्यकता नहीं है), लेकिन यदि आप मानक पुन: प्रयोज्य तत्व दृष्टिकोण का पालन करते हैं तो आपको 100% रिपो को प्रतिबद्ध करने की आवश्यकता होगी ... – RobinLinus

उत्तर

0

फ़ाइल संरचना और यूआरएल संरचना के बीच अंतर के बारे में सोचने के लिए आपके मुद्दे के लिए उपयोगी है। वेब सर्वर को फ़ाइलों को एक ही स्थान पर मानचित्र बनाना। यह polyserve करता है, और आप इसके सर्वर को भी स्थापित करने के लिए wct विन्यस्त कर सकते हैं।

तो, उदाहरण के लिए, जब आप परीक्षण करने के लिए एक तत्व बना रहे हैं, तो यह आमतौर पर प्रोजेक्ट निर्देशिका में सीधे बैठा होता है, लेकिन वेब सर्वर सीधे इस माता-पिता को सीधे/घटकों में मैप कर रहा है। यह bower_components के साथ ऐसा ही करता है, इसलिए वे ब्राउज़र स्तर पर एक ही स्थान पर दिखाई देते हैं। यही कारण है कि ../polymer/polymer जैसे संदर्भ।एचटीएमएल काम

मैं परिदृश्य आप ऊपर प्रस्ताव में सोच रहा हूँ, कि आप बार-बार प्रत्येक submodule स्तर पर कुछ इसी तरह करते हैं, ताकि प्रत्येक तत्व ../polymer/polymer.html

शुद्ध परिणाम में बहुलक, या अपने अन्य वेब घटकों को संदर्भित कर सकते होगा हो एक समग्र परियोजना "URL" संरचना है कि पॉलिमर तत्वों को व्यवस्थित करना

-components (elements mapped to this as well as bower_components) 

--mymodule1 
---(mapped so all directories under bower_components are mapped in here) 

---myelement1.1 
---myelement1.2 

--mymodule2 
---(mapped so all directories under bower_components are mapped in here) 
---myelement2.1 
---myslement2,2 
+0

यह अभी भी गड़बड़ कर देगा –

+1

@ ओलिवियर लैंगेलर को स्वीकार करना होगा कि मैंने vulcanize के बारे में चिंता करने को छोड़ दिया है, क्योंकि मैं http/2 का उपयोग करता हूं और सभी घटकों को अलग लोड के रूप में छोड़ देता हूं। मदद करता है कि मैं भी आलसी लोड (अंतिम देखें लेकिन एक पॉलीकास्ट) – akc42

0

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

जबकि टच-अप तत्वों को पुनर्नवीनीकरण की संभावना नहीं है, वे पृष्ठ के साथ रह सकते हैं। दूसरी ओर बेस तत्वों को बहुत वर्णनात्मक नामों के साथ रूट के बहुत करीब एक फ़ोल्डर में रखा जाना चाहिए। जैसे-जैसे विकास बढ़ता है, नए आधार तत्वों की दर में कमी आएगी साथ ही साथ नए पृष्ठों को विकसित करने के लिए आवश्यक समय भी कम हो जाएगा।

यदि डिज़ाइन सही है, तो आप तत्वों को वर्गीकृत कैसे करते हैं, इससे कोई फर्क नहीं पड़ता, बस उन्हें bower_components फ़ोल्डर में रखने के लिए जब तक कि आप सार्वजनिक बहुलक तत्वों का निर्माण नहीं कर रहे हों। Bower_components में सब कुछ bower.json द्वारा नियंत्रित किया जाना चाहिए ताकि आप पूरे फ़ोल्डर को हटा दें और इसे फिर से पॉप्युलेट करने के लिए bower install का उपयोग करें।

1

हमारे पास 100 से अधिक तत्वों की सेवा करने वाला एक उत्पादन अनुप्रयोग है। हमें रिपोज़ और फ़ोल्डर्स की संख्या को कम करने के लिए फ़ोल्डर के अंदर कई तत्वों को समूहित करना उपयोगी लगता है। हम अभी भी सभी तत्व भाई बहन बनाते हैं।

Google के अपने तत्वों के अंदर इसके लिए कुछ उदाहरण है। यदि आप एप-लेआउट और पॉलिमरफायर पर एक नज़र डालते हैं, तो दोनों में कई कस्टम तत्व होते हैं।

दिमाग शिफ्ट याद रखना है कि प्रत्येक तत्व अपनी निर्देशिका में मौजूद नहीं होना चाहिए।

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

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