2008-09-19 3 views
9

मैं अपने फ्रीलांस कैरियर में एक बिंदु पर हूं जहां मैंने छोटे से मध्यम आकार के व्यवसायों के लिए कई वेब अनुप्रयोग विकसित किए हैं जो परियोजना प्रबंधन, बुकिंग/आरक्षण और ईमेल प्रबंधन जैसी चीजों का समर्थन करते हैं।मैं एंटरप्राइज़ लेवल वेब एप्लिकेशन की योजना कैसे बना सकता हूं?

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

आप कितने तकनीकों या रणनीतियों का उपयोग ऐसे एप्लिकेशन की योजना बनाने के लिए करते हैं जो बहुत से उपयोगकर्ताओं को संभालने में सक्षम है आसानी से बनाए रखने के लिए कोड को तोड़ने और अभी भी पर्याप्त साफ रखने के बिना? यदि किसी के पास कोई किताब या लेख हैं जो वे अनुशंसा कर सकते हैं, तो इसकी भी सराहना की जाएगी।

उत्तर

9

हालांकि निश्चित रूप से कर रहे हैं उस विषय पर अच्छा लेख tackles पर एक उत्कृष्ट लेख है, उनमें से कोई भी वास्तविक दुनिया अनुभव के एक विकल्प है।

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

तो मेरी सलाह आपकी मौजूदा परियोजनाओं को को लगातार रीफैक्टर करके साफ कर रही है।उन हिस्सों को देखें जो बदलने के लिए दर्द थे, और सरल समाधानों के लिए प्रयास करते हैं जो समझने और समायोजित करने में आसान होते हैं। यदि कोड इसके लिए भी बहुत बुरा है, तो इसे स्क्रैच से पुनः लिखने पर विचार करें।

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

उन रिफैक्टरिंग करके आप विभिन्न विशिष्ट प्रश्न पर ठोकर खाएंगे, आप इसके बारे में लेख पूछ सकते हैं और पढ़ सकते हैं। इस तरह आप सामान्य प्रश्न पूछकर और रखरखाव और ढांचे के बारे में सामान्य लेख पढ़कर अधिक सीखेंगे।

आज अपने कोड को साफ़ करना शुरू करें। इसे अपनी भविष्य की परियोजनाओं में स्थगित न करें।


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

-4

आपको शायद SharePoint का उपयोग करना चाहिए। यह एक ऐसा वातावरण है जो आपके द्वारा पहले उल्लेख किए गए सभी कार्यों के लिए डिज़ाइन किया गया है, और इसमें कई अन्य विशेषताएं हैं जिनके बारे में आपने शायद सोचा नहीं है (लेकिन शायद आपको भविष्य में इसकी आवश्यकता होगी :-))

Here की कुछ जानकारी आधिकारिक साइट।
2 अलग-अलग SharePoint वातावरण हैं जिनका आप उपयोग कर सकते हैं: Windows Sharepoint Services (WSS) या Microsoft Office Sharepoint Server (MOSS)। डब्ल्यूएसएस मुक्त है और विंडोज सर्वर 2003 के साथ जहाजों, जबकि MOSS मुक्त नहीं है, लेकिन इसमें अधिक सुविधाएं हैं और लगभग सभी उद्यमों की जरूरतों को कवर करती है।

+0

मुझे लगता है कि वह सीखना चाहता है कि वह अपने ढांचे का उपयोग करके अपने कोड को कैसे सुधार सकता है जिसे वह पहले से जानता है। –

4

मैं ईमानदारी से मार्टिन फाउलर Patterns of Enterprise Application Architecture पर देखने की अनुशंसा करता हूं। यह आपके आवेदन को अधिक संगठित और रखरखाव करने के कई तरीकों पर चर्चा करता है। इसके अतिरिक्त, मैं आपके कोड की बेहतर समझ देने के लिए यूनिट परीक्षण का उपयोग करने की अनुशंसा करता हूं। Test Driven Development पर केंट बेक की पुस्तक यूनिट परीक्षणों के माध्यम से आपके कोड में परिवर्तन को संबोधित करने के तरीके के बारे में जानने के लिए एक महान संसाधन है।

2

सबसे महत्वपूर्ण सलाह जो मैं दे सकता हूं, एक बहुत ही उच्च उपलब्ध, उच्च मांग वाले वेब एप्लिकेशन में पुराने वेब एप्लिकेशन को बढ़ाने में मदद करने के लिए सबकुछ को समाहित करना है। - विशेष रूप से

  1. उपयोग अच्छा MVC सिद्धांतों और चौखटे अपने व्यापार तर्क और डेटा मॉडल से आपके विचार परत को अलग करने में।
  2. अपने व्यावसायिक मॉडल को अपने डेटा मॉडल
  3. स्टेटलेसनेस और असिंक्रोनस व्यवहार की योजना बनाने के लिए एक मजबूत दृढ़ता परत का उपयोग न करें।

यहाँ कैसे eBay इन समस्याओं http://www.infoq.com/articles/ebay-scalability-best-practices

3

रखरखाव में सुधार करने के लिए आप :

  • यदि आप एकमात्र डेवलपर हैं तो कोडिंग शैली को अपनाने और इसके साथ चिपके रहें। इससे आपको बाद में आत्मविश्वास मिलेगा जब आप अपने कोड के माध्यम से उन चीजों के बारे में चर्चा कर सकते हैं जिन्हें आप संभवतः कर सकते थे और जो चीजें आप बिल्कुल नहीं करेंगे। आत्मविश्वास होने के नाते कहां देखना है और क्या देखना है और क्या नहीं देखना है, आपको बहुत समय बचाएगा।

  • दस्तावेज़ को अद्यतित करने के लिए हमेशा समय लें। कार्य योजना में कार्य शामिल करें; किसी भी बदलाव या नई सुविधा के हिस्से के रूप में उस समय योजना में शामिल करें।

  • दस्तावेज संतुलित रखें: कुछ उच्च स्तरीय आरेख, सार्थक टिप्पणियां। सर्वोत्तम टिप्पणियां बताती हैं कि कोड से ही पढ़ा नहीं जा सकता है। कोड के कुछ हिस्सों के पीछे व्यावसायिक कारणों या "whys" की तरह।

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

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

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

  • उपयोग स्रोत नियंत्रण अगर आप पहले से ही

  • ग्राहक के साथ साथ किसी भी महत्वपूर्ण संचार के लिए किया उसके बारे में विस्तृत लॉग (एक सरल कंप्यूटर या कागज आधारित सीएमएस) रखें नहीं करते हैं। प्रत्येक असाइनमेंट से पहले अपनी याददाश्त ताज़ा करें।

  • प्रति ग्राहक खुले, विचार, सुझाव छोड़ दिए गए मुद्दों का एक लॉग रखें; एक असाइनमेंट शुरू करने से पहले अपनी याददाश्त फिर से ताज़ा करें।

  • आगे की योजना बनाएं कि कार्यान्वयन समर्थन कैसे किया जा रहा है, ग्राहक के साथ चर्चा करें। अपने सिस्टम को बनाए रखने के लिए आसान बनाओ। पैरामीटरेशन, निगरानी उपकरण, इन-बिल्ड सैनिटी चेक के लिए योजना। शुरुआती अनुबंध के हिस्से के रूप में ग्राहक को पोस्ट-कार्यान्वयन समर्थन बेचें।

  • भर्ती करके विस्तार करें, भले ही आपको किसी को कार्यान्वयन समर्थन प्रदान करने के लिए किसी की आवश्यकता हो, तो व्यवस्थापक बिट्स करें।

सिफारिश की पठन:

+0

एसीके और नाक। एसीके, "कोड पूर्ण" वास्तव में एक महान किताब है। नाक, डिज़ाइन पैटर के बारे में सभी पुस्तकें पढ़ने योग्य नहीं हैं। उदाहरण के लिए, "कोर जे 2 ईई पैटर्न" में अधिकतर अतिरंजित ब्लैबला होता है। लेकिन गोफ बुक बहुत बढ़िया है। – vog

1
  1. उपयोग एक रूपरेखा/MVC प्रणाली। आपके कोड को अधिक व्यवस्थित और केंद्रीकृत करना बेहतर है।

  2. मेमकैच का उपयोग करने का प्रयास करें। PHP के लिए विस्तार में बनाया गया है, इसे सेट करने में लगभग दस मिनट लगते हैं और आपके आवेदन में एक और बीस लगाया जाता है। आप जो भी चाहें उसे कैश कर सकते हैं - मैं इसमें अपने सभी डेटाबेस रिकॉर्ड कैश करता हूं - प्रत्येक एप्लिकेशन के लिए। यह घूमता है।

  3. यदि आप पहले से नहीं हैं तो सबवर्सन जैसे स्रोत नियंत्रण प्रणाली का उपयोग करने की सलाह देंगे।

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