यह समझने का सबसे अच्छा तरीका क्या है कि फ्रेमवर्क कैसे लिखा गया था और क्यों?फ्रेमवर्क को समझना
उत्तर
इसके लिए एक सुविधा विकसित करें, या एक बग ठीक करें। यदि आप वास्तविक दुनिया समाधान के विकास के लिए ढांचे का उपयोग करते हैं, तो आप जोड़ने के लिए कमियों की एक सूची बना सकते हैं या जोड़ने के लिए सुविधाओं को जोड़ सकते हैं जिससे आपका कार्य आसान हो जाएगा।
एक बग फिक्स करने से वास्तव में आपको कोड समझने में मदद मिलेगी, क्योंकि अधिकांश समय आपको उदाहरण कोड का एक टुकड़ा दिया जाता है जो इसे पुन: प्रयास करता है, जिसे आप नरक के आंतों में खोज सकते हैं ताकि यह पता चल सके कि चीज़ें कहां गलत हैं।
यह सब दृढ़ता है, वास्तव में।
तो बग ट्रैकर पर जाएं, चुनें एक दिलचस्प एक, और इससे निपटने? – GeekJock
हाँ, यह इसके बारे में लंबा और छोटा है। –
एक बहुत ही सरल घटक लें और कोड का विश्लेषण करें। उदाहरण के लिए, ज़ेंड फ्रेमवर्क के कुछ घटकों को देखें (कुछ Zend_Version
जैसे कुछ सरल या थोड़ा सा कदम उठाने के लिए, लेकिन अभी भी इसे सरल रखें, Zend_Debug
)। उन्हें अलग करें और देखें कि उन्हें क्या टिकेगा। फिर, अपना खुद का सरल घटक लिखने का प्रयास करें।
आप सही रास्ते पर हैं। बस याद रखें कि रोम एक दिन में नहीं बनाया गया था। हर घर ईंट द्वारा ईंट की लंबी अवधि में बनाया जाता है।
ढांचे का उपयोग करके, आप इसकी कुछ कमियों को खोज लेंगे और कुछ कार्यक्षमता ढूंढने में सक्षम होंगे जो अनुपलब्ध हैं या सुधार की आवश्यकता है।
वहां से शुरू करें, सुधार विकसित करें और सहकर्मी समीक्षा के लिए ढांचे के समुदाय को सबमिट करें। यहां तक कि यदि वे आपके काम को ढांचे में शामिल न करने का निर्णय लेते हैं, तो भी आपको अपने काम पर बहुत मूल्यवान प्रतिक्रिया प्राप्त होगी।
वहां मत रुकें, जो आपने दूसरे प्रयास के लिए अपने पहले प्रयास में सीखा है (और तीसरा, चौथा, पांचवां ...) इस तरह आप समझना सीखेंगे कि दूसरों को ढांचे से क्या उम्मीद है (जो हो सकता है अपनी अपेक्षा से बहुत अलग है), और धीरे-धीरे एचटी ढांचे के आंतरिक कार्यों को समझते हैं।
निष्कर्ष: धैर्य रखें और दृढ़ रहें। समझ का पालन करेंगे। (गूढ़ लगता है, मुझे पता है। लेकिन यह काम कर सकता है!)
मुझे पता है कि दुनिया को एक और की जरूरत है जैसे इसे सिर में एक छेद की जरूरत है, लेकिन अपना खुद का ढांचा लिखना एक भाषा सीखने का एक शानदार तरीका है। मैंने एक पखवाड़े के तहत PHP में काफी पूर्ण लिखा और प्रक्रिया में PHP और वेब विकास के बारे में बहुत कुछ पता चला।
एकमात्र कारण मैंने इसे जारी नहीं किया है क्योंकि मैं अंततः सत्र स्थिति प्रबंधित करने के तरीके से खुश नहीं था, लेकिन यह भी एक अच्छा सीखने का अनुभव था!
मुझे लगता है कि ढांचा डिजाइन शुरू करने का तरीका इसके लिए लगभग 5 मूल उद्देश्य लिखना है।मेरा के लिए, ये थे:
- एक दर्जन के साथ सरल वेब एप्लिकेशन का निर्माण करने के उद्देश्य से या
- एसक्यूएल
- का अच्छा ज्ञान नहीं प्रक्रियात्मक कोड PHP या अन्यथा (कि में के अलावा के साथ लोगों के उद्देश्य से तो रूपों एसक्यूएल एसपीएस)
- कोई HTML/जावास्क्रिप्ट/सीएसएस प्रोग्रामिंग की जरूरत
- आवेदन एक्सएमएल में वर्णित
- एक वेनिला पीएचपी पर काम/अपाचे ढेर
- कोई राज्य मा सर्वर पर चेहरे
यह मुझे शुरू करने के लिए पर्याप्त था।
दूसरा सुझाव है कि मैं फ्रेमवर्क का उपयोग कर एक ऐप बनाने की कोशिश कर रहा हूं, जैसे ही आप ढांचे का निर्माण करते हैं। यह जल्दी से समस्याओं को प्रकट करेगा और नई दिशाओं abd सुविधाओं के लिए विचारों का सुझाव देगा।
ऐसी कई चीजें हैं जिनमें अधिकांश ढांचे में शामिल हैं, हालांकि परिभाषा अस्पष्ट है।
- एक बुनियादी bootstrapper प्रदान करें (सेटिंग्स, सेटअप पर्यावरण प्रबंधन, पीएचपी संस्करणों के बीच संगतता मुद्दों, आदि के लिए जाँच)
- यूआरएल रूटिंग - कैसे नियमों को परिभाषित करने किन URL बात करने के लिए जो पृष्ठों के लिए।
- प्लग-इन, पुस्तकालयों, मॉड्यूल, आदि
- डाटाबेस ORM प्रबंधित करें - बजाय एसक्यूएल प्रश्नों लिखने की वस्तुओं में हेरफेर (सरलीकृत)
- Templating - आमतौर पर टेम्पलेट तर्क के लिए एक मिनी भाषा बनाने शामिल है (लूप, सशर्त) टेम्पलेट में PHP कोड होने से बचने के लिए।
इसके अलावा, अधिकांश ढांचे में सरल ई-मेलिंग से उन्नत वेब सेवा एपीआई के पुस्तकालयों की एक श्रृंखला भी शामिल है।
मैं को देखने के लिए दो व्यवस्थाएं की सिफारिश करेंगे:
-
मेरा सुझाव यह है क्योंकि यह एक "बैटरी शामिल" रूपरेखा है कि बॉक्स से बाहर काम करता है। इसमें एक महान समुदाय भी है, जो कि तीसरे पक्ष के पुस्तकालयों के बहुत सारे हैं। सीआईआई में PHP4 और PHP5 दोनों के साथ अच्छा खेलने के लिए ढांचे को पाने के लिए कुछ चाल है, जो जानना भी अच्छा है (क्योंकि, किसी कारण से, बहुत से लोग अभी भी PHP5 का उपयोग करते हैं)। आपको KohanaPHP पर भी एक नज़र डालना चाहिए, जो कोडइग्निटर की एक शाखा है जिसे सख्त PHP5 ढांचे के रूप में पुनः लिखा गया है।
-
Zend एक मॉड्यूल आधारित रूपरेखा है। निर्देशिका में सबकुछ छोड़ने और पृष्ठों को मंथन करने के बजाय, आप अपने इच्छित हिस्सों को चुनते हैं और उन्हें स्वयं एक साथ चिपकाते हैं। चूंकि ज़ेंड को PHP के पीछे इंजन के पीछे लोगों द्वारा बनाया गया है (अभी तक उलझन में है?) यह PHP5 के "नवीनतम और महानतम" का उपयोग करता है - सब कुछ ऑब्जेक्ट-ओरिएंटेड है और यह टाइप संकेत का उपयोग करता है। बहुत साफ कोड, अगर थोड़ा verbose।
मुझे लगता है कि आवश्यक सामान bootstrapper (ढांचे के लिए "गोंद"), और साथ ही कैसे प्रत्येक ढांचा एक प्रणाली उपयोगकर्ता द्वारा निर्मित ऐसे पुस्तकालयों का समर्थन और प्लग-इन करने के लिए लागू करता है। शेष आप कहीं और स्टैंड-अलोन अनुप्रयोगों के रूप में पा सकते हैं।
कई वेबसाइटों को 'स्क्रैच से' बनाने के बाद मैंने खुद को एक ही स्क्रिप्ट का पुन: उपयोग करने के बाद पाया, और मुझे कुछ चीजें बहुत ही थकाऊ लग गईं क्योंकि मैंने कभी भी उपयोग करने के लिए पहले उन्हें दूर करने के लिए परेशान नहीं किया। इसलिए, यदि आपके पास वेबसाइट बनाने का कोई अनुभव है, तो आपको अपने ढांचे को शामिल करने के लिए बहुत अच्छा अनुभव होना चाहिए। यदि नहीं, तो शायद मैं एक एमवीसी फ़ाइल संरचना के बारे में सोचकर शुरू करूंगा, अपने ढांचे को पहले विचारों, फिर नियंत्रकों, फिर मॉडल के साथ काम करने के लिए प्राप्त करें। फिर सुनिश्चित करें कि उनमें से प्रत्येक आसानी से विस्तार योग्य है क्योंकि इससे कोई फर्क नहीं पड़ता कि आप कितनी मेहनत करते हैं, हमेशा चीजें गायब रहेंगी ... और फिर यूटिलिटीज पर स्लिपिंग शुरू करें क्योंकि आपको उनकी आवश्यकता है (फॉर्म हेल्पर्स, मॉडल हेल्पर्स इत्यादि)। दूसरे शब्दों में, एक ऐसे प्रोजेक्ट के साथ आएं जिसके लिए आप ढांचे का उपयोग करना चाहते हैं, और समरूप रूप से ढांचे और वेबसाइट का निर्माण करना चाहते हैं।
मुझे नहीं पता कि मैं जरूरी रूप से अपना खुद का ढांचा लिखना चाहता हूं ... हालांकि ऐसा लगता है कि मुझे ऐसा करने में बहुत अधिक अनुभव मिलेगा। – GeekJock
ओह। मैं दूसरे उत्तरों में पकड़ा गया और भूल गया कि आपका इरादा नहीं था: पी वैसे भी, यह आपको एक अच्छा विचार देगा जहां इनमें से कुछ ढांचे किसी भी तरह से आ रहे हैं। मैंने दस्तावेज के माध्यम से पहले पढ़ने के लिए केकपीएचपी के लिए विकास करना शुरू किया, आधे वेबसाइट का निर्माण किया, और फिर महसूस किया ... – mpen
... ढांचे में कुछ अंतराल थे जो मैं अपने कुछ मॉड्यूल से भर सकता था। एक अच्छा ढांचा ऐड-ऑन का समर्थन करेगा (जैसा कि मैंने बताया है) - किसी तृतीय पक्ष ऐड-ऑन को डाउनलोड करने का प्रयास करें और देखें कि वे इसे कैसे एकीकृत करते हैं, फिर यदि आप आवश्यकता महसूस करते हैं तो आप अपना खुद का प्रयास कर सकते हैं। यह थोड़ा कम है ... – mpen
आपको एक उच्च स्तर पर, अनुरोध के जीवन चक्र को समझने की कोशिश करनी चाहिए। यहां एक अच्छा उदाहरण है कि ज़ेन फ्रेमवर्क, http://framework.zend.com/manual/en/zend.controller.basics.html
- 1. इकाई फ्रेमवर्क को समझना 4.1 सम्मेलन
- 2. स्क्रम को समझना
- 3. timedelta को समझना
- 4. सर्वलेट कंटेनर को समझना
- 5. पंपल को समझना
- 6. एडाप्टर पैटर्न को समझना
- 7. थ्रेड को समझना + असिंक्रोनस
- 8. अपाचे को समझना रिवाइटलॉग
- 9. कोड को समझना
- 10. uboot.lds को समझना
- 11. '&' ऑपरेटर को समझना
- 12. ट्रेसव्यू को समझना
- 13. ज़िप कार्य को समझना
- 14. लिनक्स शेड्यूलर को समझना
- 15. भविष्य/थ्रेडिंग को समझना
- 16. फ़्यूज़न पेड़ को समझना?
- 17. सुरक्षित ईमेल को समझना
- 18. ट्रीमैप्स को समझना
- 19. वर्ग आरेख को समझना
- 20. जावा बाइट्स को समझना
- 21. Deferred.pipe को समझना()
- 22. .NET असेंबली को समझना
- 23. गिट इनिट को समझना
- 24. symfony2 deps को समझना
- 25. ओपनजीएल मैट्रिस को समझना
- 26. इंटरफेस को समझना
- 27. अनमोल आउटपुट को समझना
- 28. वर्डप्रेस भेद्यता को समझना
- 29. नियमित अभिव्यक्तियों को समझना
- 30. NSRunLoop को समझना
में अनुरोध से प्रतिक्रिया के लिए क्या होता है मैं ढांचे की आपकी परिभाषा से सहमत नहीं हूं। यह मेरा विश्वास है कि आप फ्रेमवर्क कोड के एक टुकड़े को लिखने या किसी भी अमूर्तता के बिना एक तार्किक ढांचा बना सकते हैं। Templating? यह ढांचा का काम नहीं है। –
शायद, लेकिन इस चर्चा के लिए हम मान सकते हैं: http://en.wikipedia.org/wiki/Software_framework http://en.wikipedia.org/wiki/Web_application_framework – GeekJock