आप बिना अपराध के कैसे कोड करते हैं?


27

मेरे कहने का मतलब यह है कि आप उन डेवलपर्स के साथ साझा किए गए कोड आधार पर कैसे विकसित होते हैं जो वर्षों से इस पर काम कर रहे हैं और इससे बहुत परिचित हैं?

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

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

अद्यतन करें

बोलने के लिए कोई स्टाइल गाइड नहीं है - यह सिर्फ लोगों को कोडबेस साझा करने के लिए उपयोग नहीं किया जाता है। हर किसी का अपना एक छोटा सा मौन कूट-संसार होता है।

यह एक पर्ल शॉप है, लेकिन मुझे यकीन है कि ये किसी भी भाषा पर लागू होंगी

अद्यतन २

CTO जो बाद में CEO बना, पूरी तरह से megalomaniac था और इन शिकायतों का प्राथमिक स्रोत था। यदि आप चीजों को ठीक से नहीं करते हैं कि वह कैसे पसंद करता है, चाहे वह मैक का उपयोग कर रहा था, या एमएसीएस, या 2 के बजाय 4 टैब स्थान, या एक निश्चित तरीके से पोशाक, तो आप नीच थे। यह एक भयावह स्थिति थी जिसे मैंने सही करने की कोशिश की थी, लेकिन मेरे लिए एकमात्र सही जवाब था।

मुझे यकीन है कि यह एक कार्यस्थल में बदमाशी का एक उदाहरण था , और बाद में, मैं एक काम के माहौल में सूक्ष्म बदमाशी और अनुचित व्यवहार के बारे में अधिक जागरूक हूं।

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


3
क्या उन्हें लगता है कि आप बहुत बार कोड चेक करते हैं? या बहुत कम?
एडम जास्कविज़

3
बहुत कम से कम, आपके पॉइंटर्स की दोहरी जाँच आपको कंप्यूटर को बंद करने से रोक देगी ( xkcd.com/371 )
riwalk

4
यदि आप C # में कोड करते हैं, तो प्रस्तावित करें कि हर कोई StyleCop का उपयोग करता है। यदि आप किसी अन्य भाषा में कोड करते हैं, तो समान टूल की तलाश करता है। बता दें कि 80% मामलों में सॉफ्टवेयर का अंधा टुकड़ा मध्यस्थ होता है।
जॉब

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

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

जवाबों:


38

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

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

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

जैसा कि "अक्सर," कोड में जाँच के लिए, अपने आवधिक कमिट के लिए अपनी शाखा क्यों नहीं बनाते हैं , और फिर आपका कोड तैयार होने पर वापस ट्रंक में विलय हो जाता है? ऐसा करने में किसी और को कोई नुकसान नहीं होता है, और जब आपके सहकर्मी आपको एसवीएन से लाभ प्राप्त करते हुए देखते हैं कि वे चाहेंगे, तो वे आपके नेतृत्व का पालन कर सकते हैं।


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

4
+1 आपके द्वारा देखे गए कोड से कोडिंग मानक दस्तावेज़ बनाने और सर्वसम्मति प्राप्त करने के लिए सक्रिय होने के लिए। यह एक व्यक्ति की कोडिंग शैली का पालन करने में विफल रहने के लिए बीएस की आलोचना की जाती है जो स्वयं किसी और का अनुसरण नहीं करता है।
डेविड हार्कस

24

व्हाट्सएप के बारे में: हालांकि यह कोड पहले से ही करता है। प्रवाह के साथ जाओ।

एसवीएन चेकइन के बारे में: उन्हें बहुत स्पष्ट रूप से दस्तावेज दें। इससे लोगों को यह समझने में मदद मिलती है कि कोड में क्या चल रहा है। (फॉलोअप: बार-बार चेक करने पर उनकी आपत्तियां क्या हैं?)

सामान्य तौर पर: एक कोडिंग मानक दस्तावेज़ का निर्माण शुरू करें। इसे 100 नियमों से भरने की कोशिश न करें। जैसे ही वे आते हैं, वैसे ही नियम जोड़ें।

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


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

7

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

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


4

पहले उनके कोडिंग कन्वेंशन दस्तावेज़ पढ़ें (यदि उनके पास एक नहीं है तो उन्हें एक लिखने के लिए कहें ताकि आप इसका अनुसरण कर सकें)

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

मुझे यकीन है कि आप एक वर्ष या दो बार में ऐसा ही कर रहे होंगे जब कुछ नौसिखिया आपके पैर की उंगलियों पर कदम रख रहे हों :)


हाँ, उनके पास कोई कन्वेंशन नहीं है, वे लंबे समय में किसी भी नए डेवलपर्स के पास थे।
कोडीनिन्जा

1
@codeninja तो वे कैसे शिकायत कर सकते हैं यदि आप उनका पालन नहीं करते हैं? इससे पहले कि वे आपको अपनी कोडिंग को बदलने की उम्मीद कर सकें, उन्हें सम्मेलनों के एक सेट पर सहमत होना होगा। उन्हें बताएं कि
टॉम स्क्वायर्स

यह स्थान एक बुरा सपना था, सीटीओ जो बाद में सीईओ बन गया, एक पूर्ण महापाषाण था। यदि आप चीजें ठीक से नहीं करते हैं कि वह कैसे पसंद करता है, चाहे वह एक मैक का उपयोग कर रहा था, या Emacs, या 2 के बजाय 4 टैब स्थान, या एक निश्चित तरीके से पोशाक, तो आप नीच थे। कुल दुःस्वप्न।
क्षोदिनेजा

मैंने देखा कि आपने पिछले काल का उपयोग किया है। कूद गया जहाज? :)
टॉम स्क्वायर्स

3

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

इसके अलावा, यह समझें कि किसी परियोजना पर किसी भी नए डेवलपर्स के पास वास्तव में आवश्यक "रैंप अप" समय होगा। तो अपने आप को उस पर चिंता मत करो।


1

सबसे अच्छी चीज जो आप कर सकते हैं, वह है कि वे आपको जो सलाह दें, उसका पालन करें। समय के आगे बताने का कोई तरीका नहीं है कि वे क्या चाहते हैं। जब तक आप मानसिक नहीं होते।

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

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


0

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

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