स्थिरता के संबंध में छात्रों के प्रशिक्षण में सुधार कैसे करें? [बन्द है]


18

रखरखाव सॉफ्टवेयर सॉफ्टवेयर विकास का एक प्रमुख हिस्सा है। वास्तव में, रखरखाव लगभग हमेशा सॉफ़्टवेयर जीवन चक्र का सबसे लंबा हिस्सा होता है, क्योंकि यह परियोजना के रिलीज से लेकर मूल रूप से अंत तक रहता है।

इसके अलावा, परियोजनाओं के रखरखाव में परियोजनाओं की कुल संख्या की एक बड़ी संख्या का प्रतिनिधित्व करते हैं। Http://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-mainurance-vs-development/ के अनुसार , रखरखाव में होने वाली परियोजनाओं का अनुपात लगभग 2 है। / 3।

मैं हाल ही में इस सवाल पर आया था , जहां लड़का यह जानकर बहुत हैरान था कि उसकी नौकरी मुख्य रूप से रखरखाव के बारे में है। मैंने तब सॉफ्टवेयर विकास पेशेवरों ( http://www.developpez.com/ ) के फ्रांसीसी समुदाय की मुख्य साइट पर एक चर्चा (फ्रेंच) खोलने का फैसला किया । चर्चा का शीर्षक है "क्या छात्र पेशेवर सॉफ़्टवेयर विकास की वास्तविकता के लिए पर्याप्त रूप से प्रशिक्षित हैं?" और मुख्य रूप से रखरखाव के बारे में है । यह बताया गया कि कम से कम फ्रांस में, लोग इसके दोनों पहलुओं में रखरखाव का सामना करने के लिए पर्याप्त रूप से तैयार नहीं हैं:

  • मौजूदा कोड बनाए रखें
  • बनाए रखने योग्य कोड

यहां मेरा प्रश्न इस चर्चा पर केंद्रित है और इसका उद्देश्य स्थिरता को पढ़ाने का एक अच्छा तरीका खोजना है।

  • हम स्थिरता कैसे सिखा सकते हैं?
  • आप किस तरह के व्यायाम का सुझाव देंगे?
  • यदि आपको रखरखाव के संबंध में अच्छी तरह से प्रशिक्षित किया गया है, तो आपने किस प्रकार के पाठ्यक्रम में भाग लिया?

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



पुनश्च: मेरे उत्तर को देखें, आपको स्पघेटी प्रयोग सार्थक लग सकता है
पीएचडी

@ नूपुल जैसा कि आप एक शिक्षक हैं और अध्यापन संहिता को बनाए रखने में शामिल हैं, कृपया एक पूर्ण उत्तर दें और हमें बताएं कि आप कैसे आगे बढ़ते हैं: स्पेगेटी कोड इसका केवल एक छोटा सा हिस्सा है
मथायस जौन

उत्तर प्रकाशित किया गया ... आशा है कि यह आपके लिए मूल्य जोड़ता है :)
पीएचडी

"प्रैक्टिकल एपीआई डिजाइन" में एपीआई डिजाइन और मेंटेनेंस प्रोजेक्ट, आईएमएचओ, छात्रों को बनाए रखने की चुनौतियों (और पीछे की संगतता) को सिखाने के लिए एकदम सही प्रोजेक्ट है।
मार्को

जवाबों:


8

हम स्थिरता कैसे सिखा सकते हैं?

यह अभ्यास की बात है।

एक नियंत्रित तरीके से इसका अभ्यास करने का सबसे सीधा तरीका मुझे लगता है कि इस प्रकार के बारे में विशिष्ट रखरखाव परियोजना का अनुकरण करना है।

कुछ प्रोजेक्ट ( प्रोजेक्ट ए ) प्राप्त करें जो अच्छी तरह से किया गया है और इस पर कुछ मुद्दों को पेश करता है: कुछ कीड़े इंजेक्ट करें, डुप्लिकेट और डेड कोड का एक अच्छा डोज, कुछ फीचर्स, यूनिट टेस्ट और डॉक्यूमेंटेशन को यहां और वहां ड्रॉप करें आदि आपके पास एक समर्पित भी हो सकते हैं। उस के लिए नाम, जैसे प्रोजेक्ट A - क्षतिग्रस्त संस्करण

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

  • coursework 1.
    बग्स को ठीक करें, लापता इकाई परीक्षण, प्रलेखन और विशेषताएं जोड़ें।
  • coursework 2.
    प्रतिक्षेपक।
  • coursework 3.
    अगले साल के छात्रों द्वारा उपयोग करने के लिए मूल परियोजनाओं का रखरखाव / सुधार
    - प्रोजेक्ट ए संस्करण 2.0 और प्रोजेक्ट ए - क्षतिग्रस्त संस्करण 2.0 , क्रमशः। क्षतिग्रस्त संस्करण में
    सुधार से मेरा मतलब है कि इसे बेहतर शिक्षाप्रद क्षति पहुंचाना। :)

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

डब्ल्यूटीएफ प्रति मिनट


11

डिस्क्लेमर: मुझे अभी-अभी सीएस की डिग्री मिली है। मैं अध्यापक नहीं हूँ।

यह स्पष्ट लग सकता है, लेकिन मुझे लगता है कि कोड रखरखाव सिखाने का सबसे अच्छा तरीका छात्रों को कोड रखरखाव करना है। यहाँ मैं क्या करूँगा:

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

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


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

1
आप Fowler's Refactoring
mjfgates

2

स्थिरता एक गुण है, कौशल नहीं। बनाए रखने योग्य परियोजनाओं को बनाने के लिए कई रास्ते हैं, लेकिन कोई भी सूत्र जो उन्हें उत्पादन करने की गारंटी नहीं देता है।

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

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

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

अंत में, नए डेवलपर्स को अपनी टीम में बनाए रखने की अपनी संस्कृति में स्थिरता बनाए रखने के लिए उन्हें पहले से ही दैनिक अभ्यास करने के लिए प्रेरित करें। किसी को बेहतर उदाहरण और मार्गदर्शन देने के लिए किसी मूल्य को अपनाने में मदद करने का कोई बेहतर तरीका नहीं है।


1
मैं एक कठिन समय यहाँ downvote समझ रहा हूँ। आप अपनी पसंद से अपनी पसंद से सॉफ्टवेयर डिजाइन का पाठ कर सकते हैं, लेकिन बड़ी समस्या यह है कि डेवलपर्स अक्सर इस धारणा के तहत होते हैं कि यह कोई फर्क नहीं पड़ता क्योंकि कोई भी उन्हें क्या किया है से एक बेहतर विकल्प प्रदान करने की परवाह नहीं करता है । यदि आप छात्रों को उनके द्वारा किए जा रहे कार्यों की गुणवत्ता पर लगातार संदेह करने के लिए महत्व की भावना के साथ पैदा नहीं करते हैं और वे जो निर्णय ले रहे हैं उस पर सवाल उठाते हैं, तो मुझे वास्तव में संदेह है कि रखरखाव पर एक कोर्स उनके लिए कितना उपयोगी साबित हो सकता है।
फिलिप डुपनोविक

@ FilipDupanović सहमत हैं। एक कदम और आगे बढ़ते हुए, हालांकि लोग सीएस डिग्री के साथ नए ग्रेड की तैयारियों की कमी को मानते हैं, मुझे नहीं लगता कि यह मुद्दा या तो आश्चर्यजनक है या प्रोग्रामिंग के लिए अद्वितीय है। बेशक एक नए ग्रेड और एक अनुभवी कार्यकर्ता के बीच एक अंतर है: एक का अनुभव है! किसी भी क्षेत्र में एक अच्छा डिग्री प्रोग्राम वैचारिक है, व्यावसायिक नहीं है। केवल अनुभव नई कब्रों को सिखाएगा कि उन्होंने जो अवधारणाएं सीखी हैं उन्हें लागू करने के लिए और वे जो भी नौकरी खत्म करते हैं उस पर प्रभावी ढंग से काम करेंगे।
कालेब

1

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

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

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


मैंने आपके उत्तर को ध्यान से पढ़ा है, और आपके लेख को "बनाए रखने योग्य" के बारे में भी पढ़ा है, और मुझे यह कहना चाहिए कि मैं आपसे पूरी तरह सहमत हूँ। मैंने आपके द्वारा उल्लिखित पुस्तकों के एक जोड़े को पढ़ा है और उपयोग किया है - या लोगों को उपयोग करने के लिए बना रहा हूं - काम पर हर रोज SOLID जैसे सिद्धांत (मैं शिक्षक btw नहीं हूं)। लेकिन मुझे लगता है कि आपका उत्तर थोड़ा-सा विषय है। मैं अपने प्रश्न को संपादित करने के लिए यह स्पष्ट करने का प्रयास करूँगा कि मैं क्या खोज रहा हूँ।
मथायस जौन

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

0

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

इस तरह की चीज़ को सिखाने के लिए जोड़ी प्रोग्रामिंग एक बेहतर तरीका है, क्योंकि यह कम अनुभवी कर्मचारियों को किसी ऐसे व्यक्ति के साथ कोड बनाए रखने में प्रत्यक्ष अनुभव देता है जो पहले से ही जानता है कि इसे कैसे करना है।

कुछ बेहतरीन किताबें भी हैं जिन्हें आप राइटिंग क्लीन, मेंटेनेंस कोड के बारे में पढ़ सकते हैं। क्लीन कोड दिमाग में आता है।

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


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

1
-1: @ suszterpatt का सुझाव बहुत बेहतर लगता है।
जिम जी।

0

अच्छा कोड = कम रखरखाव और सुविधाओं को बढ़ाने / जोड़ने के लिए आसान।

बुरा कोड = रखरखाव बुरा सपना

मूल रूप से हमें छात्रों को अंक प्राप्त करने होंगे कि "जब भी किसी परियोजना में एक भद्दा कोड होता है, तो एक नया डेवलपर जो कंपनी में शामिल होने जा रहा होता है क्योंकि कोड के मूल लेखक को नुकसान होने वाला होता है और सॉफ्टवेयर कैसे प्रभावित होता है । "

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

व्यायाम:

1) एक पूर्व लिखित खराब कोड (जैसे) डुप्लिकेट कोड है, एक विधि "बंधक भुगतान की गणना करने के लिए" एक परियोजना में 9 स्थानों पर लिखी गई है

छात्र को "सभी बंधक भुगतानों में 1.2% अधिभार जोड़ने" की सुविधा बढ़ाने के लिए कहें।

अब छात्र को सभी 9 स्थानों पर कोड लगाने और ठीक करने का दर्द दिखाई देगा। कई संभावनाएं हैं कि वह सभी 9 स्थानों का पता नहीं लगा सका "बंधक भुगतान" की गणना की जाती है।

2) अब वह गुड कोड दिखाएं जिसमें यह विधि है जो एक और केवल जगह में बंधक भुगतान की गणना करता है । छात्र को यह दिखाना कि एक लिखित कोड को बढ़ाना कितना आसान है और उसे समझाएं कि यह कोड / परियोजना की स्थिरता को कैसे बढ़ाता है।

BTW, मुझे सॉफ्टवेयर की स्थिरता के लिए छात्रों को उजागर करने के आपके दृष्टिकोण से प्यार था।


-1

@mattmattj: चूंकि बहुत सारे उत्तर हैं और मैंने जो लिंक पोस्ट किया है, उसमें कुछ अच्छे संकेत भी हैं, मैं कुछ ऐसा जोड़ूंगा जो उम्मीद है कि पहले से पोस्ट किए गए उत्तरों की पुनरावृत्ति नहीं है।

सबसे पहले, एक "स्थिरता" को परिभाषित करना होगा - सॉफ्टवेयर आर्किटेक्चर के समान - सभी द्वारा स्वीकार की गई एक भी परिभाषा नहीं है। इसलिए एक ऐसा चुनें जिसे आप महसूस करें कि यह सबसे महत्वपूर्ण है, सभी इसमें शामिल हैं और इसे अधिकतम 3-4 लाइनों में विभाजित करते हैं। फिर आप कुछ मेट्रिक्स के बारे में बात कर सकते हैं जैसे - अपने स्वयं के कोड (या किसी और के) को याद करने / समझने के लिए समय, प्रति मिनट डब्ल्यूटीएफ की संख्या / घंटे आदि। इसे हल्का रखें (विनोदी) - जो उन्हें आपके लिए अधिक ग्रहणशील बना देगा। उसके बाद कहना।

कुछ अभ्यास (यह कुछ प्रतिक्रियाओं के साथ अतिव्यापी लग सकता है, कृपया इसे क्षमा करें)

कक्षा को दो में विभाजित करें - एक सेक्शन को एक सरल कोडिंग असाइनमेंट दें जो 1-2 दिनों में करने की आवश्यकता होती है। मैक्स। कठिन समय सीमा। उन्हें सभी परिस्थितियों में काम पूरा करना होगा - गाइडलाइन - "वर्किंग कोड" क्योंकि वे फिट होते हैं। छात्रों के दूसरे समूह के लिए एक ही असाइनमेंट लेकिन (नामकरण) सम्मेलनों की एक सूची के साथ और डिज़ाइन के बारे में कुछ दिशानिर्देश और यदि पीछा नहीं किया जाता है तो अंक कैसे काटे जाएंगे। यह धोखा नहीं है, भले ही यह ऐसा लगता है;) अब उन्हें कोड स्वैप किया है यानी समूह 1 अब समूह 2 पर काम करता है और इसके विपरीत। अब मूल कोडिंग असाइनमेंट में संशोधन का सुझाव दें और उन्हें उसी समय सीमा में करने को कहें। प्रतिध्वनि करें और उनसे पूछें कि यह कितना आसान / कठिन था और फर्श को चर्चा / राय के लिए खोल दिया। बिंदु निश्चित रूप से घर से टकराएगा - उच्च संभावना 50% वर्ग खुश होगा और इसे आसान पाया और 50% ने इसे कठिन पाया। आप उन्हें 3 सप्ताह के बाद अपनी चीज पर काम करने के लिए कह सकते हैं और देखें कि क्या वे इसे 1 दिन में कर सकते हैं;)

(एक अच्छा ट्विस्ट यह है कि आप समान तरीके से कोड के एक ही टुकड़े को लिख रहे हैं और अपने स्वयं के साथ संशोधन के लिए कक्षा को दे रहे हैं)

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

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

उपरोक्त लिंक में स्पेगेटी सादृश्य का उल्लेख करने के लिए स्वतंत्र महसूस करें ... आशा है कि यह कुछ बिंदुओं को घर में हिट करने में मदद करता है। अन्य उत्तर अंतराल में भरने में मदद करते हैं और आपको शिक्षण में मदद करनी चाहिए! शुभकामनाएँ!


@Downvoter - कृपया पोस्ट को बेहतर बनाने के अवसरों को बढ़ाने के लिए एक टिप्पणी छोड़ दें :)
PhD
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.