किसी सहकर्मी के लिए कोड कैसे शुरू करें


11

आप कोडबेस को शुरू करने के बारे में कैसे जाते हैं, जो आपकी टीम के एक नए सदस्य को बहुत सारे "गोचैस" के साथ जटिल और पेचीदा हो सकता है?

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

हालाँकि, एक सलाहकार (और कनिष्ठ कर्मचारी, उस पर) के रूप में, मैं हमेशा समय की कमी या टीम की भूमिका के कारण ऐसा नहीं कर सकता। (मैं किसी और के रूप में दो बार इस विशेष परियोजना पर रहा हूं, इसलिए "जूनियर" किसी भी तरह से "कोड / परियोजना के बारे में कम जानता है।"

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

परियोजना एक ऐसे बिंदु पर पहुंच रही है, जहां हम इसे ग्राहक को सौंप देंगे, और चीजों को अधिक चुनौतीपूर्ण बनाने के लिए, मैं जिस व्यक्ति के साथ ज्ञान हस्तांतरण कर रहा हूं, वह अनिवार्य रूप से कॉलेज से बाहर है। (ऐसा नहीं है कि वरिष्ठ डेवलपर्स के साथ ज्ञान हस्तांतरण करने पर मैं बहुत बेहतर हूं।)

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

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

धन्यवाद!

(हमेशा की तरह, कृपया प्रश्न को संपादित करने के लिए स्वतंत्र महसूस करें क्योंकि आप फिट हैं।)


3
आचार संहिता नहीं है कि आप क्यों टिप्पणी करते हैं ...
ऋग

4
@Rig - हाँ, आमतौर पर के साथ# TODO: fix this ugly hack
detly

जवाबों:


9

कोड से "गोचैस" को हटाने के लिए चरण एक निश्चित रूप से है। स्पष्ट, संक्षिप्त, सुसंगत कोड प्राप्त करना, काम करना और डीबग करना आसान है।

कहां से शुरू करें?

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

आप पूरे दिन लेने के बिना श्रोता की ओर से अपरिचित प्रौद्योगिकियों या पैटर्न को कैसे कवर करते हैं?

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

आप व्यावसायिक तर्क बनाम कोड-संरचना में कहां टाई करते हैं?

मैं नहीं करने की कोशिश करता हूँ। नवागंतुक के लिए अपने दम पर सीखना लगभग हमेशा बेहतर होता है ताकि यह उनके दिमाग में उनके सोचने के तरीके से अधिक स्वाभाविक रूप से बैठे।


एक बात याद रखें कि निर्देश को छोटा रखें। लोग बहुत जल्दी बाहर की जाँच करते हैं, तो उस बिंदु पर किसी भी अधिक निर्देश सिर्फ 'छड़ी' नहीं करता है। उन्हें 15-60 मिनट के लिए चीजें दिखाएं (विभिन्न लोगों का ध्यान अलग-अलग होता है) फिर उन्हें संसाधित करने के लिए 5-30 मिनट का ब्रेक लें।


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

2

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

एक और तरीका है सोर्सकोड का "निर्देशित टूर", अर्थात पैकेज / नेमस्पेस / मॉड्यूल / निर्देशिका के माध्यम से जाना और समझाएं कि उनमें से प्रत्येक में कोड सामान्य रूप से क्या करता है। बेशक इसके लिए कोड को तार्किक रूप से कुछ हद तक निर्धारित करना होगा।


1

आप उन्हें कोड आधार नहीं सिखा रहे हैं, आप उन्हें अपना काम सिखा रहे हैं । यह सोचने की कोशिश मत करो कि उन्हें क्या चाहिए, अपने काम को करते समय वास्तव में क्या जानना चाहिए, यह देखो।

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

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

अगला अपने ज्ञात बैकलॉग को ऊपर खींचें। उन कार्यों को पूरा करने के लिए आपको किन चीजों पर शोध करने की आवश्यकता होगी? कोड के किन क्षेत्रों में सबसे अधिक समस्या है? उस जानकारी को स्वीकार करें जैसे कि आप अपने लिए नोट्स ले रहे थे।

यदि आप अपने दैनिक कार्य में चार्ट या आरेख का उल्लेख करते हैं, तो उन्हें शामिल करें। यदि आपने कभी एक बनाने की जहमत नहीं उठाई है, तो शायद यह आपके उत्तराधिकारी / सहकर्मी के लिए उपयोगी नहीं होगा।

सबसे कठिन कार्यों में से एक जब शिक्षण अपने आप को अपने जूते में डालने की कोशिश कर रहा है। इस मामले में, आप कर रहे हैं उनके जूतों में। मौके पर चौका मारो।


यहां बहुत सारी अच्छी सलाह - उन चीजों पर एक अलग दृष्टिकोण रखती है जो मदद करनी चाहिए। धन्यवाद!
एमरजीन

0

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

यदि आप कोड परिवर्तन के बारे में अनिश्चित हैं (या वे हैं, तो आमतौर पर मैं अपने कोड फिक्स से अनिश्चित होता हूं जब तक कि मैं कोडबेस से परिचित नहीं हूं) तब आप चेकइन से पहले इसकी समीक्षा कर सकते हैं।

बेशक, व्यापक साक्षात्कार और ब्लॉक आरेख के आपके मौजूदा विचार आवश्यक पहले कदम हैं।

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