कैसे कोड की गुणवत्ता बनाम मजबूत डेवलपर व्यक्तित्व को संतुलित करें


15

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

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

परंपरागत रूप से, किसके पास 'वीटो' शक्ति होती है, जिसमें क्या और कैसे जांचा जाता है?

कोड कैसे काम करता है, लेकिन इसके भी शामिल / चालाक को पैर की उंगलियों पर कदम रखने के बिना हटाया जा सकता है?


7
क्या आप एक उदाहरण जोड़ सकते हैं जिसे आप "चतुर" मानते हैं, बस हम एक ही पृष्ठ पर हैं?
ब्लैकजैक

इसमें शामिल व्यक्तियों का पदानुक्रम क्या है?

2
चतुर समाधान क्या है? मैं आपको यह बताने में सहज महसूस नहीं करूंगा कि अगर समाधान की संभावना को नकारना है तो यह संभव है कि यह वास्तव में आपके अपने विचार से बेहतर हो।
जोजो

क्या 'चतुर' कोड समय से पहले अनुकूलित है, या समय से पहले सामान्यीकृत है? आमतौर पर सबसे छोटा कोड जीतता है, लघुता के उचित माप के लिए (DRYness या टोकन, वर्ण नहीं)।
केविन क्लाइन

3
एक विकल्प पेश करें। अन्यथा आप वास्तव में उत्पादकता के लिए सिर्फ एक बाधा हैं। वैकल्पिक दृष्टिकोण के बिना समालोचना करने के लिए "प्रतिवाद" प्रदान करना मुश्किल है। यह आरोपियों पर सबूत का बोझ डालने जैसा है। आप उन्हें सभी संभावित काउंटर-परिदृश्यों से बचाव करने के लिए कह रहे हैं।
निकोल

जवाबों:


16

मुझे यह उद्धरण पसंद है:

"डिबगिंग पहली जगह में कोड लिखने से दोगुना कठिन है। इसलिए, यदि आप कोड को जितना हो सके चतुराई से लिखते हैं, आप परिभाषा के अनुसार हैं, इसे डिबग करने के लिए पर्याप्त स्मार्ट नहीं हैं।" - ब्रायन डब्ल्यू कर्निघन

एक तरफ, यह आपको बहुत चालाक कोड से थका देता है, क्योंकि यह बाद में डीबग करना और विस्तारित करना कठिन होगा।

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

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


लगभग -1, डिबगिंग कठिन नहीं है, जब तक कि आपका कोड गड़बड़ और सुपर नाजुक न हो। डिबगिंग के साथ एकमात्र समस्या यह है कि बहुत सारे डेवलपर्स के पास डिबगिंग टूल का उपयोग करने का कोई सुराग नहीं है। बहुत लचीला और त्रुटि जागरूक कोड लिखना बहुत मुश्किल है।
कोडर

मुझे लगता है कि डिबगिंग निश्चित रूप से कठिन है। इस तरह से इसके बारे में सोचो। यदि कोड शुरू में सही ढंग से लिखा गया था, तो डीबगिंग एक गैर-मुद्दा बन जाता है क्योंकि इसका परीक्षण (इकाई और एकीकरण) कोई दोष नहीं पाता है।
तेहनीत

10

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

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

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


4
मेरा परीक्षण "एक क्रमादायक प्रोग्रामर (1-2 साल बाहर हो सकता है) इसे बनाए रख सकता है?" .... यह चतुर हो सकता है, लेकिन यह भी स्पष्ट और संक्षिप्त होना चाहिए।
मटनज़

1
@mattnz - अगर मुझे उस टेस्ट का उपयोग करना था, तो मैंने जितने वर्षों में (या उस मामले के लिए किसी और को) लिखा था, उनमें से आधे कोड को बुरा माना जाएगा। स्नातक प्रोग्रामर (1-2 साल बाहर) सभी लोग उन्हें लेने के लिए नहीं हैं। यह कहते हुए कि हमें खराब कोड लिखना चाहिए; बस इतना कि "परीक्षण" बहुत मायने नहीं रखता है।
रूक

6

अंगूठे का मेरा नियम मजबूत डेवलपर व्यक्तित्वों के पक्ष में कोड गुणवत्ता दिशानिर्देशों को मोड़ना है। मैं हमेशा इसका उपयोग तब करता हूं जब मेरे पास पर्याप्त खुदाई करने का समय नहीं होता है - इस तरह से खुदाई आमतौर पर काफी प्रयास खपत होती है (नीचे उस पर अधिक)।

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

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

  • यह ऐसा है, जैसा कि आप जानते हैं, जैसे कि मुझे लगता है कि 31K स्रोत फ़ाइल को अनुशंसित आकार सीमा से अधिक है जो कहते हैं, 30K है। मेरे विकल्प या तो कुछ मिनट / घंटे लड़ने के लिए फ़ाइल के मालिक को किसी भी तरह से अतिरिक्त किलोबाइट को निचोड़ने के लिए या एक या दो दिन बिताने और सोचने के लिए खुदाई करने के लिए लड़ रहे हैं , कहते हैं, कुछ लाइब्रेरी एपीआई है जो सभी के बजाय उपयोग किया जा सकता है उस फ़ाइल में कोड (ताकि इसे हटाया जा सके)।

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


2

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

कोड की समीक्षा उस कोडिंग मानक दस्तावेज़ का उपयोग करके की जानी चाहिए। यदि कोडिंग मानकों का कहना है कि प्रोग्रामर्स को द्वंद्ववाद के लिए पठनीयता पसंद करनी चाहिए, जब दोनों संघर्ष करते हैं, तो आपको "चतुर" कोड के खिलाफ बहस करने में कुछ सहायता मिलेगी। यदि मानक ऐसा नहीं कहते हैं और आपको लगता है कि उन्हें चाहिए, तो आप कोडिंग मानकों की बैठक में सार के बारे में बहस कर सकते हैं बजाय किसी के अहंकार के लाइन में यह पता लगाने की कोशिश कर रहे हैं।

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

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

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


2

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

मैं इस बात को रेखांकित करूंगा कि यह सबसे अच्छा है, क्योंकि यहां तक ​​कि उसे शायद सभी बिट्स और बोब्स याद नहीं होंगे , जो इन पंक्तियों में दो महीने के समय में हैं।

वह शायद सबसे सरल के पक्ष में स्मार्ट कोड छोड़ देगा, जैसे ही वह इसे लिखने के लिए मजबूर होता है, उदाहरण के रूप में।

वह काम क्यों करेगा।

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

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


1

मेरे अनुभव में, कोड आधार से सभी आवश्यकताओं को पूरा करने वाले कोड प्राप्त करना आम तौर पर बहुत मुश्किल है।

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

जहां तक ​​वीटो पावर का है, प्रबंधन के पास स्पष्ट रूप से यही है।
कभी-कभी उनकी टीम या समितियां होती हैं जो कोड गुणवत्ता के प्रभारी होती हैं, जिस स्थिति में उनके पास यह शक्ति भी होती है।

यदि आप 'चतुर' पैटर्न का उदाहरण देते हैं, तो यह भी उपयोगी होगा। हो सकता है कि आप बस ओवररिएक्ट कर रहे हों ...

मेरी पुस्तक में 'चतुर' लगभग कभी भी बुरी चीज नहीं है, लेकिन मैं इस बात से सहमत हो सकता हूं कि चतुर और दृढ़प्रतिज्ञों के बीच एक फिसलन ढलान हो सकती है।


0

कई अन्य प्रथाओं की तरह मुझे लगता है कि इसका उत्तर निर्भर करता है

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

0

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

कुछ अवलोकन जो मैं दे सकता हूं:

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

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

  3. मेरा मानना ​​है कि क्लास इंटरफेस को समझने के लिए साफ-सुथरा होना आसान है, कभी भी कोई "चतुर" कोड नहीं होना चाहिए। उदाहरण के लिए, हमारे पास एक वर्ग है जो प्रविष्टियों की एक सूची रखता है जिसे 3 अलग-अलग तरीकों से देखा जाता है। वर्तमान में यह बस सभी लुकअप के लिए रैखिक खोज का उपयोग करता है जो छोटे पैमाने पर काम करता है, लेकिन क्योंकि यह वर्ग बहुत निम्न स्तर पर है, इसलिए मैं इसे बहुत अच्छी तरह से स्केलिंग नहीं देखता। मैं इसे एक अलग वर्ग के साथ बदलने वाला हूं, जो बूस्ट इंट्रूसिव कंटेनरों का उपयोग करता है। प्रत्येक तत्व प्रत्येक अनुक्रमणिका में एक साथ रखे जाने का समर्थन करेगा और सभी लुकअप O (sqrt (N)) में किए जाएंगे। हां यह अंदर से बहुत अधिक जटिल होगा और बहुत से लोग बूस्ट को पसंद नहीं करते हैं, लेकिन बाहर पर यह 3 तरीके रहेंगे: जोड़ें, निकालें, प्राप्त करें। लब्बोलुआब यह है कि लोग जो चाहें कोड लिख सकते हैं (कारण के अनुसार),

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


0

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

काम की कोड समीक्षाओं पर, मैं कोड और पैटर्न देख रहा हूं, जिन्हें मैं "चतुर" मानता हूं, हालांकि जरूरी नहीं कि कोड आधार की समग्र गुणवत्ता या स्थिरता के लिए जोड़ रहे हों।

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

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

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


0

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

मैं वास्तव में यह समझने की बहुत कोशिश करूंगा कि कोड कैसे काम करता है, और कई अलग-अलग तरीकों से इसकी जांच करने की भी कोशिश करता है।

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

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

स्रोत नियंत्रण पद्धति के आधार पर, इस परीक्षण चरण के शुरू होने से पहले कोड को अनंतिम रूप से स्रोत नियंत्रण प्रणाली (शायद एक शाखा में) में प्रतिबद्ध होना पड़ सकता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.