आप किसी को कैसे बताएं कि वे खराब कोड लिख रहे हैं? [बन्द है]


217

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


मैक्स, यह तुम हो? कोई बात नहीं, मैं आपको बता सकता हूँ कि TF2 इंजीनियर आइकन आप हमेशा उपयोग करते हैं। क्या आप कह रहे हैं कि मेरा कोड भद्दा है? ... ... ... ... जब मैं काम छोड़ता हूं तो मुझे 5 मिनट लगते हैं और मेरे पास कुछ भी नहीं होता है।
पॉवरलॉर्ड

मैं किसी भी विशिष्ट घटना को एकल करने की कोशिश नहीं कर रहा हूं, न ही मैं यह कहने की कोशिश कर रहा हूं कि मेरा कोड सही और भयानक है, यह सिर्फ इतना है कि मुझे लगता है कि यह एक मुश्किल विषय है, और मैं इस मामले के बारे में दूसरे विचारों में बहुत दिलचस्पी रखता हूं।
मैक्सिमिलियन

14
मुझे लगता है कि हर बार जब आप उनकी स्क्रीन
स्टीवन ए। लोव

57
क्या उनके प्रत्येक कमिट में "मुझे लगता है कि यह सबसे अच्छा है अगर हम सब सिर्फ यह दिखावा करते हैं कि यह एक विकल्प है" के विकल्प के साथ वापस आ रहा है?
डेमॉन

1
यदि आप स्टैक ओवरफ़्लो पढ़ते हैं, तो आप एक अच्छे प्रोग्रामर हैं :-)
मैथ्यू फ़रवेल

जवाबों:


188

उन्हें यह महसूस कराने के लिए प्रश्नों का परिचय दें कि वे जो कर रहे हैं वह गलत है। उदाहरण के लिए, इस प्रकार के प्रश्न पूछें:

आपने उसे वैश्विक चर बनाने का फैसला क्यों किया?

आपने उसे यह नाम क्यों दिया?

यह तो दिलचस्प है। मैं आमतौर पर इस तरह से करता हूं क्योंकि [कारण डालें कि आप बेहतर क्यों हैं]

क्या इस तरह काम करता है? मैं आमतौर पर [सम्मिलित करता हूं कि आप उन्हें मूर्खतापूर्ण कैसे दिखेंगे]

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

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

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


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

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

24
मुझे लगता है कि "आपने इसे ऐसा नाम क्यों दिया?" करीब हैं, लेकिन बिल्कुल सही नहीं है। यह तुरंत मुझे मेरे निर्णयों के बारे में रक्षात्मक सोचने लगता है। "यह दिलचस्प है। मैं आमतौर पर मेरा इस तरह से क्योंकि ऐसा [सम्मिलित कारण तुम क्यों कर रहे हैं बेहतर]" काफी बेहतर है क्योंकि यह मुझे तरीके के बारे में सोच हो जाता है अन्य क्या मैं पहले से ही तय कर ली है। बाद के लहजे के साथ, मुझे प्रकाश को देखने की अधिक संभावना है।
छिपकली

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

और क्या होगा अगर लगातार उत्तर कुछ इस तरह है: "क्योंकि इसे बदलने के लिए बहुत काम करना है" (अक्सर यह वास्तव में मौजूदा कोड की बड़ी मात्रा के कारण है) या "क्योंकि हमने हमेशा इसे इस तरह से किया है और यह ठीक काम किया है" "?
दिमित्री सी।

85

कोड समीक्षा या जोड़ी प्रोग्रामिंग करना शुरू करें।

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

जैसा कि @JesperE: ने कहा, कोड पर ध्यान दें, कोडर पर नहीं।

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

ग्लोबल्स : क्या आपको लगता है कि हम कभी भी इनमें से एक से अधिक होना चाहते हैं? क्या आपको लगता है कि हम इस तक पहुंच को नियंत्रित करना चाहेंगे?

म्यूटेबल अवस्था : क्या आपको लगता है कि हम इसे एक और धागे से जोड़ना चाहेंगे?

मुझे अपनी सीमाओं पर ध्यान केंद्रित करने में भी मदद मिलती है, जिससे लोगों को आराम करने में मदद मिल सकती है। उदाहरण के लिए:

लंबे कार्य : मेरा मस्तिष्क इतना बड़ा नहीं है कि एक बार में यह सब पकड़ सके। हम छोटे टुकड़े कैसे बना सकते हैं जिन्हें मैं संभाल सकता हूं?

बुरे नाम : मैं स्पष्ट कोड पढ़ते समय आसानी से भ्रमित हो जाता हूं; जब नाम भ्रामक होते हैं, तो मेरे लिए कोई उम्मीद नहीं है।

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


दूसरा - अगर टीम में हर कोई अपने कोड सहकर्मी की समीक्षा कर रहा है। जिन लोगों को आपको लगता है कि बुरी आदतें हैं, वे पीड़ित महसूस नहीं करेंगे
NotJarvis

2
यदि आपके सहकर्मी इस तरह की बातों का जवाब देते हैं, तो वे मेरी तुलना में दयालु हैं। जब मैं उस तरह की टिप्पणियों को खींचने की कोशिश करता हूं, तो मुझे आमतौर पर इससे निपटने के लिए कहा जाता है। या शायद एक बहु-पृष्ठ एकालाप के लिए इलाज किया जाता है कि उनका तरीका एकमात्र तरीका कैसे है। भले ही .Net स्ट्रिंग-टू-पूर्णांक पार्सिंग, डंगिट में निर्मित हो।
ग्रेग डी

@ अंग: आउच। आपको वहाँ भीड़ मिली!
Jay Bazuzi

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

lol @ "कोड से भावनात्मक रूप से जुड़ा हुआ है।" यदि आपकी टीम में ये समस्याएं हैं, तो मेरी राय में इसके साथ काम करने के लिए दूसरी टीम खोजने का समय आ गया है।
dtc

45

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


1
वास्तव में। हमारे कोड समीक्षाओं में हमारे पास कुछ ऐसा है कि यदि कोड मानक के अनुरूप नहीं है, तो समीक्षक पढ़ना बंद कर देता है और जब तक यह अनुपालन नहीं करता कोड वापस नहीं आता है।

1
इसे लागू करने के लिए बेहतर और सरल तरीकों में से एक है।
स्कॉट डोरमैन

मुझे लगता है कि यह समस्याओं की प्रकृति पर निर्भर करता है। यहां तक ​​कि एक कोडिंग मानक के साथ भी चीजें करने के कई तरीके हैं, और शायद कुछ खामियों को लागू मानकों से अलग किया गया है।
माइक बी

2
@Scott Durman: "सभी कोड को ऐसे देखना चाहिए जैसे कि एक व्यक्ति ने एक ही बैठक में लिखा था" ... LOL !!! ;-)
गैलील

5
@ जाल: पहले, अगर आप मेरा पूरा नाम कम से कम सही ढंग से इस्तेमाल करने जा रहे हैं। :) वह बयान आपके लिए मजाकिया क्यों है? जैसा कि मैंने कहा, यह एक कोड मानक का आदर्श है। मैंने कभी नहीं कहा कि यह पूरी तरह से विश्वसनीय है, लेकिन यह काम करने के लिए एक स्पष्ट, अच्छी तरह से परिभाषित लक्ष्य देता है।
स्कॉट डोरमैन

23

आपको यह बताना होगा कि आपका रास्ता बेहतर क्यों है

समझाएं कि फंक्शन काटना और चिपकाने से बेहतर क्यों है।

बताएं कि एक सरणी $ foo1, $ foo2, $ foo3 से बेहतर क्यों है।

समझाएं कि वैश्विक चर खतरनाक क्यों हैं, और स्थानीय चर जीवन को आसान बना देंगे।

बस एक कोडिंग मानक को व्हिप करना और "ऐसा करना" कहना बेकार है क्योंकि यह प्रोग्रामर को नहीं समझाता है कि यह एक अच्छी बात क्यों है।


1
मुझे लगता है कि यह केवल सभी संभावित आदेशों के बारे में लागू होता है (न केवल प्रोग्रामिंग से संबंधित हैं)।
दिमित्री सी।

"एक कोडिंग मानक को व्हिप करना और 'यह करना' बेकार है" - पहला, एक अच्छा लिखित कोडिंग मानक दस्तावेज़ में प्रत्येक बिंदु के लिए तर्क शामिल होना चाहिए, दूसरा, उस तर्क के बिना भी, यह शायद ही बेकार है - इसे अभी भी उपयोग किया जा सकता है एक संदर्भ आइटम यदि टीम द्वारा सहमति व्यक्त की जाती है, जब कुछ कोड पाया जाता है जो इसका पालन नहीं करता है, "के बारे में अंतहीन चर्चा से बचने के लिए" लेकिन मैं इसे इस तरह से पसंद करता हूं!
जोहान जेरेल

14

पहले, मैं बहुत जल्दी न्याय नहीं करना चाहता हूँ। कुछ कोड को खराब बताकर खारिज करना आसान है, जब अच्छे कारण हो सकते हैं तो ऐसा क्यों है (जैसे: अजीब सम्मेलनों के साथ विरासत कोड के साथ काम करना)। लेकिन आइए हम उस पल के लिए मान लें कि वे वास्तव में बुरे हैं।

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

एक अन्य विकल्प कार्यालय में तकनीकी पुस्तकों को लाना है (कोड कम्प्लीट, इफेक्टिव सी ++, प्रैग्मैटिक प्रोग्रामर ...) और इसे दूसरों को उधार देने की पेशकश करें ("अरे, मैं इसके साथ समाप्त हो गया हूं, कोई भी इसे उधार लेना चाहेगा?" )


12

यदि संभव हो, तो सुनिश्चित करें कि वे समझते हैं कि आप उनके कोड की आलोचना कर रहे हैं , न कि व्यक्तिगत रूप से।


10

एक गैर-टकराव वाले तरीके से बेहतर विकल्प सुझाएं।

"अरे, मुझे लगता है कि यह तरीका भी काम करेगा। आप लोग क्या सोचते हैं?" [स्पष्ट रूप से अपनी स्क्रीन पर बेहतर कोड इशारे]


10

कोड समीक्षा करें, और अपने कोड की समीक्षा करके शुरू करें ।

यह पूरी कोड समीक्षा प्रक्रिया में लोगों को आसानी से डाल देगा क्योंकि आप उनके बजाय अपने कोड की समीक्षा करके प्रक्रिया शुरू कर रहे हैं। अपने कोड के साथ शुरुआत करने से उन्हें चीजों को करने के अच्छे उदाहरण मिलेंगे।


8

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


ओह, यह निश्चित रूप से सच है! "जब आप स्ट्रिंग जोड़तोड़ करने के लिए निम्न-स्तरीय सी दिनचर्या का उपयोग कर सकते हैं तो आप एक स्ट्रिंग धारण करने के लिए एक वर्ग का उपयोग कर रहे हैं (मेमोरी आवंटन / डील्लोकेशन सहित और मैन्युअल रूप से 0-टर्मिनेटर को जोड़ने के लिए)?" और वास्तव में, उन प्रोग्रामर्स ने अक्सर अपनी प्रोग्रामिंग शैली का उपयोग बड़ी परियोजनाओं को सफलतापूर्वक पूरा करने के लिए किया है, अजीब लेकिन सच।
दिमित्री सी।

7

उदाहरण द्वारा। उन्हें सही रास्ता दिखाएं।

धीमी गति से ले। बल्ले से सही हर छोटी गलती के लिए उन्हें न फेंकें, बस उन चीजों से शुरू करें जो वास्तव में मायने रखती हैं।


7

कोड मानक विचार एक अच्छा है।

लेकिन कुछ भी नहीं कहने पर विचार करें , खासकर जब से यह मस्ती के लिए है, संभवतः, उन लोगों के साथ जिनके साथ आप दोस्त हैं। यह सिर्फ कोड है ...


1
मुझे यह बात पसंद है, जैसे कि इस परियोजना के लिए, 'अगर यह काम करता है, तो यह काम करता है' पर्याप्त होगा, लेकिन मुझे लगता है कि इस मुद्दे से निपटने के लिए एक उपयुक्त तरीका खोजने से बिंदु और कहने के लिए प्रारंभिक वृत्ति की तुलना में बहुत अधिक मदद मिलेगी ' ये गलत है'।
मैक्सिमिलियन

7
"यह सिर्फ कोड है"? यह सिर्फ आपके प्रयास, आपके पेशेवर चेहरे, कंपनी में आपके योगदान या बड़े पैमाने पर मानवता के लिए उत्पाद है। अगर यह अच्छा या बुरा है तो कौन परवाह करता है? मुझे यकीन है कि आपके सहकर्मी इस विषय को गंभीरता से पढ़ रहे हैं, यह पता लगाने की कोशिश कर रहे हैं कि आपको अपना "बस कोड" कैसा है।

4
यह सिर्फ कोड है? हेलुओ रखरखाव दुःस्वप्न।
धातुमास्टर

6

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


5

बुरा नामकरण प्रथाओं: हमेशा अक्षम्य।

और हां, हमेशा यह मत मानिए कि आपका रास्ता बेहतर है ... यह मुश्किल हो सकता है, लेकिन निष्पक्षता बनाए रखनी चाहिए।

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

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


5

कुछ विकी सॉफ़्टवेयर का उपयोग करके अपने नेटवर्क पर विकी शुरू करें।

अपनी साइट पर "सर्वोत्तम प्रथाओं" या "कोडिंग मानकों" या कुछ और पर एक श्रेणी शुरू करें।

सबको इशारा कर दो। प्रतिक्रिया के लिए अनुमति दें।

जब आप सॉफ़्टवेयर को रिलीज़ करते हैं, तो उस व्यक्ति को काम दें, जिसके पास डेवलपर्स पर बिल्ड पुश बैक में कोड डालना है, इस पर उन्हें विकी पेजों की ओर इशारा करते हैं।

मैंने अपने संगठन में ऐसा किया है और लोगों को विकी का इस्तेमाल करने के लिए वास्तव में कई महीने लग गए, लेकिन अब यह अपरिहार्य संसाधन है।


4

यदि आपके पास कोडिंग का एक ढीला मानक भी है, जो उस ओर इशारा करने में सक्षम है, या यह दर्शाता है कि आप कोड का पालन नहीं कर सकते क्योंकि यह सही प्रारूप नहीं है तो सार्थक हो सकता है।

यदि आपके पास कोडिंग प्रारूप नहीं है, तो अब एक स्थान पर एक अच्छा समय होगा। इस प्रश्न के उत्तर कुछ इस तरह सहायक हो सकते हैं: /programming/4121/team-cqu-n शैलियाँ


4

मैं हमेशा 'यह वही है जो मैं करता हूं' लाइन के साथ जाता है। मैं कोशिश नहीं करता हूं और उन्हें व्याख्यान देता हूं और उन्हें बताता हूं कि उनका कोड बकवास है लेकिन बस एक वैकल्पिक दृष्टिकोण दें जो उन्हें उम्मीद कर सकता है कि उन्हें कुछ ऐसा दिखा सकता है जो जाहिर तौर पर थोड़ा सा है।


3

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


3

मैं प्रेम कोड करता हूं, और मेरे जीवन में कभी भी कोई भी ऐसा पाठ्यक्रम नहीं था जिसके बारे में मैंने सूचना विज्ञान से संबंधित कुछ भी किया हो, मैंने बहुत बुरा शुरू किया और उदाहरणों से सीखना शुरू किया, लेकिन मुझे जो हमेशा याद था और मेरे दिमाग में रहता था जब से मैंने "गैंग ऑफ़ फोर" किताब पढ़ी थी :

"हर कोई एक मशीन द्वारा समझे जाने वाले कोड को लिख सकता है, लेकिन सभी उस कोड को नहीं लिख सकते हैं जो एक इंसान द्वारा समझा जाता है"

इसे ध्यान में रखते हुए, कोड में बहुत कुछ किया जाना है;)


मैंने पाया कि सच भी है। अच्छा पढ़ने: चीजें आप चाहिए कभी क्या, भाग योएल Spolsky द्वारा joelonsoftware.com/articles/fog0000000069.html वह अपने शब्दों में यह कहते हैं: "यह तुलना में यह लिखने के लिए कोड को पढ़ने के लिए कठिन है।"
मजनू

3

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

खरीदें-इन कुंजी है। और आपके दृष्टिकोण को उस वातावरण को ध्यान में रखना होगा जो आप में हैं।

ऐसा लगता है कि आप एक ऐसे वातावरण में हैं, जिसमें बहुत कुछ "व्यक्तित्व" है। तो ... मैं कोडिंग मानकों का एक सेट का सुझाव नहीं होगा। यह सामने आएगा कि आप इस "मज़ेदार" परियोजना को लेना चाहते हैं और इसे एक उच्च संरचित कार्य परियोजना में बदल सकते हैं (ओह महान, आगे क्या है ... कार्यात्मक दस्तावेज?)। इसके बजाय, जैसा कि किसी और ने कहा, आपको कुछ हद तक इससे निपटना होगा।

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

धीरज। विकास, क्रांति नहीं।

सौभाग्य।


3

मैं एक टोगा दान करता हूं और सामाजिक पद्धति का कैन खोल सकता हूं।

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


सुकराती पद्धति के साथ समस्या यह है कि किसी के पास इसके लिए धैर्य नहीं है, न ही साथ चलने की इच्छा।
पैट्रिक सज्जापस्की

2

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

अच्छी बात यह है कि इसमें से अधिकांश बहुत अच्छे कारण के लिए खराब है, और ये कारण आम तौर पर मात्रात्मक और व्याख्यात्मक हैं। तो, गैर-टकराव वाले तरीके से, कारणों को स्पष्ट करें। कई मामलों में, आप लेखक को परिदृश्य भी दे सकते हैं जहाँ समस्याएं स्पष्ट हो जाती हैं।


2

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

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


2

खराब कोड लिखने वाले लोग अज्ञानता का एक लक्षण है (जो गूंगा होने से अलग है)। यहां उन लोगों से निपटने के लिए कुछ सुझाव दिए गए हैं।

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

1
मेरा मानना ​​है कि इच्छाधारी अज्ञानता को गूंगा बताया जा सकता है? यह सीखने के लिए तैयार नहीं होने के समान है।
एडम नाइलर

इसका उदाहरण एक लड़का है जो एक आंशिक भौतिक विज्ञानी है, लेकिन एक प्रेमिका नहीं मिल सकती है। वह स्पष्ट रूप से एक स्मार्ट लड़का है लेकिन महिलाओं के बारे में अनभिज्ञ है।
स्कॉट कोवन

2

उन्हें कोड लिखने के बजाय, क्या उन्होंने अपना कोड बनाए रखा है।

जब तक उन्हें स्पेगेटी के अपने स्टीमिंग ढेर को बनाए रखना होगा, तब तक वे कभी नहीं समझ पाएंगे कि कोडिंग में वे कितने बुरे हैं।


इससे भी बेहतर: उन्हें अन्य डेवलपर्स के कोड को बनाए रखने के लिए कहें। इससे उनके बीच के संचार को बेहतर बनाने में मदद मिल सकती है ...
mjn

यह बहुत कम विरोधी है, भी :-)
Jrrago

2

किसी को यह कहते हुए सुनना पसंद नहीं है कि उनका काम बेकार है, लेकिन किसी भी समझदार व्यक्ति का स्वागत करेंगे और अनावश्यक काम से बचने के तरीके।

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


2

मेरे पास काम करने वाले लोगों के साथ एक समान सिनारियो है .. मेरे पास उतना कोडिंग करने के लिए जोखिम नहीं है जितना मैं करता हूं, लेकिन वे अभी भी कोडिंग में उपयोगी हैं।

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

यहाँ वास्तव में बहुत बढ़िया हिस्सा है। कभी-कभी वे ऐसे प्रश्न लेकर आएंगे, जिनके जवाब भी मेरे पास नहीं हैं, और शोध के बाद हम सभी को कार्यप्रणाली और संरचना की बेहतर अवधारणा मिलती है।

  1. चर्चा करें।
  2. उन्हें दिखाओ क्यों
  3. यह भी मत सोचो कि तुम हमेशा सही हो .. कभी-कभी वे तुम्हें कुछ नया भी सिखाएंगे।

Thats मैं क्या करूँ अगर मैं तुम थे: D


1

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


1

मैं स्पष्ट रूप से मानता हूं कि किसी का कोड बेहतर है जब इसे बदलना, डिबग करना, नेविगेट करना, समझना, कॉन्फ़िगर करना, परीक्षण करना और प्रकाशित करना (मट्ठा) करना बेहतर होता है।

उसने कहा कि मुझे लगता है कि किसी को यह बताना असंभव है कि उसका कोड खराब है, पहली बार में उसके पास जाने के बिना बुरा है / उसे यह समझाता है कि वह क्या करता है या किसी को बाद में इसे कैसे बढ़ाया जाना चाहिए (जैसे, नई मस्ती पैदा करना या उसे डिबग करना)।

तभी उनका मन झपकेगा और कोई भी उसे देख सकेगा:

  • वैश्विक चर मूल्य परिवर्तन लगभग हमेशा ही न के बराबर होते हैं
  • विशाल कार्यों को पढ़ना और समझना कठिन है
  • पैटर्न आपके कोड को बढ़ाने में आसान बनाते हैं (जब तक आप उनके नियमों का पालन करते हैं)
  • ( आदि...)

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


1

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


1

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

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

उसके साथ अच्छा भाग्य। मुझे तुम्हारा दर्द भाई लगता है।

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