2010-06-06 12 views
10

मुझे और मेरे दोस्त ने भागीदारों के रूप में मिलकर काम करना शुरू किया, हमने वेबसाइट के बाद किक-ए * वेबसाइट बनाने का फैसला किया है। हमारे पास उनमें से 100 की तरह लिखे गए विचार हैं (हां हम पहले उनमें से सर्वश्रेष्ठ और आसान चुन रहे हैं)।कोड शुरू करने से पहले मेरी वेब आधारित परियोजना की योजना कैसे बनाएं?

मेरा दोस्त लेआउट डिज़ाइन और चीजों की व्यवस्था करता है, और मेरा भाग कोडिंग और सर्वर प्रबंधन है।

मुझे जिस छोटी समस्या का सामना करना पड़ रहा है वह एक परियोजना की योजना बनाने में अनुभव की कमी है। मैं क्या करता हूं, मैं बस कोड को सीधे शुरू करता हूं और कोड के साथ मैं डीबी बनाता हूं, जैसे कि मुझे टेबल की आवश्यकता होती है, मैं इसे बनाता हूं।

मुझे पता है कि यह मध्यम आकार की परियोजना के लिए बहुत खराब दृष्टिकोण है।

यहां स्टैक ओवरफ्लो पर मैंने कई अनुभवी कोडर देखा। आप लोगों से बहुत कुछ सीखने की जरूरत है :)।

तो क्या आप किसी परियोजना की योजना बनाने और मानक/संरचना/ढांचे का उपयोग करने के लिए कोडिंग (मैं PHP कोड करता हूं) पर मेरी सहायता कैसे कर सकता हूं।

अग्रिम धन्यवाद।

उत्तर

5

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

एक ऊपर से नीचे दृष्टिकोण (भी कदम के लिहाज से डिजाइन के रूप में जाना जाता है) अनिवार्य रूप से एक प्रणाली अपनी compositional उप-प्रणालियों में जानकारी पाने के का टूटना है। एक शीर्ष-डाउन दृष्टिकोण में सिस्टम का एक अवलोकन पहले तैयार किया गया है, निर्दिष्ट है लेकिन किसी भी प्रथम-स्तर के उपप्रणाली का विवरण नहीं दे रहा है। तब तक प्रत्येक उपप्रणाली को तब तक अधिक विस्तार से परिष्कृत किया जाता है, कभी-कभी कई अतिरिक्त उपप्रणाली स्तरों में, जब तक कि संपूर्ण विनिर्देश आधार तत्वों तक कम नहीं हो जाता है। एक शीर्ष-डाउन मॉडल को अक्सर "ब्लैक बॉक्स" की सहायता से निर्दिष्ट किया जाता है, इससे इन्हें कुशल बनाना आसान हो जाता है। हालांकि, काले बक्से प्राथमिक तंत्र को स्पष्ट करने में असफल हो सकते हैं या मॉडल को यथार्थ रूप से मान्य करने के लिए पर्याप्त विस्तृत हो सकते हैं। http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design

हालांकि, कई अन्य दृष्टिकोण हैं।

http://en.wikipedia.org/wiki/Software_project_management#Software_development_process

फिर, सबसे महत्वपूर्ण कदम शब्दों में अपने विचार डाल करने के लिए सक्षम होने के लिए है, इससे पहले कि आप पर्याप्त रूप से ऐसा कर सकें, मैं कोड की एक पंक्ति लिखने पर भी विचार नहीं करूंगा।

+0

ये अच्छा लगता है, मैं अब इस दृष्टिकोण के कुछ उदाहरणों के लिए Google पर जाऊंगा। THX – Arshdeep

+0

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

2

किसी ऐसे व्यक्ति से कुछ विचार जो अमूर्तता से प्यार करते हैं।

पता लगाएं कि आपकी वेबसाइटों में क्या समान होगा। एक बार जब आप मुख्य समानताओं की पहचान कर लेंगे, तो ढांचे या पुस्तकालयों की तलाश करें जो उनमें से अधिक से अधिक (आपके अन्य मानदंडों को भरने के अलावा), जैसे बॉयलरप्लेट डीबी कोड से निपटें।

सामान्य सुविधाओं के लिए आपको कोई भी उपयोग करने योग्य उपयोग कोड नहीं मिल रहा है (वे हमेशा अनुकूलित वेबसाइटों में मौजूद हैं) आपको अपनी वेबसाइटों पर स्वयं का उपयोग करने के लिए एक सामान्य लाइब्रेरी लिखने का मौका मिलेगा। यह आपके मार्कअप, जावास्क्रिप्ट लाइब्रेरी या पुन: प्रयोज्य सर्वर-साइड घटक, या सभी के लिए एक टेम्पलेट हो सकता है।

आपके विवरण के आधार पर ऐसा लगता है कि आप रचनात्मक प्रक्रिया में महान स्वतंत्रता का आनंद ले रहे हैं (बनाम आपको आवश्यक आवश्यकताओं को प्राप्त करने और इसे लागू करने के लिए कहा गया है)।मैं कहूंगा कि "या तो अभी कोड शुरू करना" योजना से अधिक नहीं है, बहुत मजेदार है और सभी बुरा नहीं है। अनुभव आपका सबसे अच्छा दोस्त होगा, और जब तक आप वेबसाइट # 100 तक पहुंचेंगे, तो आपके पास बहुत कुछ होगा। अपनी दूसरी वेबसाइट बनाने के दौरान, पहले अनुभवों के साथ आपके अनुभव आपको कुछ गलतियों को करने से बचने में मदद करेंगे, और आपको नई समानताएं मिलेंगी जिन्हें आपने नियोजन चरण में अनुमानित नहीं किया था। बस समय निकालना सुनिश्चित करें, सामान्य कोड को एक पुस्तकालय में ले जाएं, और वापस जाएं और इसका उपयोग करने के लिए अपनी पहली वेबसाइट संपादित करें। यह कुछ बार खत्म करो और आप सीखने वाले सबक सीखेंगे जो बहुत अधिक हैं।

+0

@Lauri Lehtinen से: इस विषय के लिए बहुत कुछ है: ओ। ऐसा लगता है जैसे आप बिल्कुल जानते हैं, मैं क्या कर रहा हूं। हाँ मैंने सोचा कि कुछ विशिष्ट ढांचे से चिपकने के लिए नहीं (लंगड़ा लगता है: पी)। और PHP/JS की लाइब्रेरी का अपना सेट बनाना इसके लिए गोल्ड आइडिया थाक्स है। मैंने आपकी परियोजनाओं को फिल्मगेटर देखा, pdfunloack वे वास्तव में शांत हैं।अफसोस की बात है कि आपका ईमेल नहीं मिल सकता है, हमें frnds होना चाहिए :) – Arshdeep

+0

@ अरशिप आप अभी भी सिम्फनी जैसे ढांचे का उपयोग कर सकते हैं। मौजूदा ढांचे का उपयोग करने से आपको उन घटकों को विकसित करने से नहीं रोका जाना चाहिए जिन्हें आप अपनी परियोजनाओं में उपयोग कर सकते हैं। –

+0

@ जन कुबोशेक - हाँ आप सही हैं। एटीएम मैं कोडनिर्देशक का उपयोग कर रहा हूं और यह अच्छा लग रहा है। आप कोडिनेटर के बारे में क्या सोचते हैं? – Arshdeep

5

कोडिंग मानक/संरचना/ढांचे के बारे में मैं zend framework coding standard, MVC structure, और Zend Framework की सलाह देता हूं।

MVC आर्किटेक्चर के लिए एक संक्षिप्त मार्गदर्शिका। विचार आपको विचारों को याद रखने में मदद करता है (जबकि आपका दिमाग कोड भाप रहा है) और भविष्य के प्रोग्रामर के लिए दस्तावेज हैं।

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

  • अपनी वेबसाइट (अनुभाग, पेज, लिंक, पेज-फ्लो इत्यादि) की संरचना डिज़ाइन करें। इसे दस्तावेज करें (जैसे: "साइट 2 सेक्शन, यह खंड बना है ..." आदि)
    इस पर आधारित एक दस्तावेज़ आपके नियंत्रकों और विचारों का वर्णन करता है। ("लेखों के लिए एक नियंत्रक, एक सूची दृश्य के साथ, और आलेख दृश्य, दृश्यों को संपादित और बनाते हैं लेकिन केवल व्यवस्थापक के लिए" आदि)।
    वर्णन करें कि आप प्रमाणीकरण और प्रमाणीकरण (नियंत्रक और दृश्य स्तर पर) को कैसे लागू करने जा रहे हैं। कहां अनुमति है।
    वर्णन करें कि आप मुख्य वेब-हमलों (xss, csrf) के विरुद्ध जहां आवश्यक हो, के खिलाफ सुरक्षा करते हैं। (उदाहरण: "मैं xss सुरक्षा के लिए htmlentities का उपयोग करके अपने सभी दृश्य चर से बचता हूं और ..."

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

जैसा कि आप कोड करते हैं, चीजें बदलती हैं। आपके सिस्टम के असतत कार्यों के बारे में आपका ज्ञान विकसित होता है और आप नए पाए गए ज्ञान के आधार पर डिज़ाइन को बेहतर बनाना शुरू करते हैं। अपने परिवर्तन दस्तावेज करें।

+0

ठीक है, बहुत गंभीर सामान, और बहुत अच्छी जानकारी भी। मैं वास्तव में कोडिनेटर फ्रेमवर्क का उपयोग कर एमवीसी एटीएम का उपयोग कर रहा हूं। लेकिन प्रत्येक चीज को दस्तावेज करने से मुझे लगता है कि परियोजना के निर्माण के समय में काफी वृद्धि होगी। उपरोक्त एक विशाल परियोजना के लिए है। मुझे लगता है कि अगर हम दस्तावेज को आधे से कम करते हैं तो मध्यम आकार की परियोजनाओं के लिए यह अच्छा होगा। – Arshdeep

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