प्रोग्रामर को नौकरी देने के निर्णय के लिए एक अच्छी कोडिंग शैली कितनी महत्वपूर्ण है? [बन्द है]


15

यहां तक ​​कि एक छात्र के रूप में मुझे उन प्रोग्रामर्स के कोड की समीक्षा करने के लिए कहा जाता है, जिनके पास एक परीक्षण है (एंड्रॉइड पर फाइबोनैचि संख्याओं की सूची बनाएं)।

जबकि मैं कोडिंग शैली पर बहुत सख्त हूं, मैं सिर्फ "ब्लॉक" शैली के बारे में पढ़ता हूं जिसका कोई व्यक्ति उपयोग करता है (टिप्पणियों को पढ़ें!)

अपनी स्थिति में मैं इस तरह की शैली का उपयोग करके एक आदमी को किराए पर नहीं लेने की सलाह दूंगा। कोड मेरी फर्म में प्रयुक्त कोडिंग शैली के पूरी तरह से विपरीत है।

कोडिंग शैली की खोज करते समय और इसकी कमी से निपटने के लिए मैं एक चीज के बारे में उत्सुक हूं: क्या मुझे एक आदमी को किराए पर लेना चाहिएगंभीर संकट फर्म में प्रयुक्त कोडिंग शैली को अपनाना?

कृपया: यह सामान्य रूप से कोडिंग शैली के बारे में चर्चा नहीं होनी चाहिए और जो बेहतर है। किसी को नौकरी देने के फैसले के लिए कोडिंग शैली के महत्व के बारे में इसकी!

अधिक जानकारी:

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


9
चतुर। "गंभीर परेशानी को दूर करने" के बजाय (जो तथ्यों से असमर्थ है) इसके माध्यम से एक पंक्ति डालें। जैसे कि वास्तव में किसी और के रवैये के बारे में आधारहीन दावे को बदल देता है।
S.Lott

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

7
मैं आपके प्रश्न को पढ़ने का प्रयास कर रहा था, लेकिन आपके प्रारूपण का पालन करना मुश्किल हो गया। क्या आप अपने पैराग्राफ में एक शुरुआती इंडेंट जोड़ सकते हैं। 'के
टीएचएक्स

2
कोड स्थिरता (या इसकी कमी) एक संकेतक है। उदाहरण के लिए, यदि किसी के पास अपने कोड को व्यवस्थित करने का समय नहीं है, तो संभवत: उनके पास तोड़फोड़ में एक नई परियोजना के लिए सही जगह का पता लगाने का समय नहीं है। उनके पास शायद रिफ्लेक्टर का समय नहीं है। सूची चलती जाती है।
केविन

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

जवाबों:


41

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

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

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

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


5
+1 में एक नहीं होना, या इसका लगातार उपयोग न करना 'लाल झंडे' हैं, एक अलग शैली नहीं है।
jv42

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

3
@ArrenFaith: तो आप इसके कवर द्वारा एक पुस्तक का न्याय करते हैं? :-) गंभीरता से, हाँ, यह एक पहली छाप देता है, लेकिन मुझे लगता है कि जब साक्षात्कार आप उस से परे देखने के लिए ध्यान रखना होगा और एक पूरी तरह से सक्षम डेवलपर पास नहीं है, क्योंकि उसकी वर्तमान शैली आपका मेल नहीं खाती है।
मार्जन वेनेमा

स्थिरता के लिए +1: शैली की कमी आमतौर पर इंगित करती है कि उन्होंने बहुत अधिक नहीं लिखा है। जब आप लिखते हैं, तो आप आदतों को चुनते हैं।
मैथ्यू एम।

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

27

लगभग सौ अलग-अलग ग्राहकों के लिए सैकड़ों अलग-अलग परियोजनाओं में प्रोग्रामिंग करते हुए, मुझे एक बिंदु पर जोर देना चाहिए।

कोडिंग शैली (और कोडिंग शैली पर क्विब्लिंग) समय की पूरी बर्बादी है।

इससे छुटकारा मिले।

मैंने बहुत सारे प्रोग्रामर से बहुत सारे कोड पढ़े हैं। (5 और 100 अलग-अलग टीमों के एक औसत टीम के आकार को मान लें। यह 500 सह-कार्यकर्ता हैं।) स्टाइल कोई फर्क नहीं पड़ता।

मैंने सुंदर लेकिन विकट रूप से गलत कोड देखा है।

[एक सीमा है। जानबूझकर आक्षेप समाप्ति के लिए आधार है। उसमें से कुछ, शैली समय की बर्बादी है।]

कोडिंग शैली "अंतिम सीमा" है

यदि आपने सॉफ्टवेयर विकास की सभी समस्याओं को हल कर लिया है; यदि आप त्रुटि-मुक्त कोड को अधिक-या-कम तुरन्त बना सकते हैं; यदि आपकी गुणवत्ता का स्तर इतना अधिक है, तो आपके पास बग-फिक्स कतार नहीं है; अगर आपकी उपयोगिता इतनी शानदार है, तो आपके पास अब हेल्प डेस्क नहीं है; यदि आप बेरहमी से उस बिंदु पर अनुकूलन करने में सक्षम हैं जहां आपके पास सर्वर फ़ार्म नहीं है, लेकिन एक iPad से उद्यम चलाएं ...

जब ठीक करने के लिए कुछ नहीं बचा है, तो आप आखिरकार कोडिंग शैली पर ध्यान केंद्रित कर सकते हैं।

तब तक, कई मुद्दे हैं जो शैली से बड़े और अधिक मूल्यवान हैं।


2
@WarrenFaith: मैं इसे दृढ़ता से पर्याप्त नहीं कह सकता। यह मायने नहीं रखता। मैं अपनी बात दोहराऊंगा। मैंने सैकड़ों और सैकड़ों प्रोग्रामर से (पेशेवर, वेतन के लिए, बिल योग्य घंटे) कोड पढ़ा है। यह मायने नहीं रखता। यह पहला प्रभाव नहीं है: शुद्धता और स्पष्टता पहले इंप्रेशन हैं।
एस.लॉट

2
@ArrenFaith: जानबूझकर अस्पष्टता दुर्लभ है। "अगर आप बस कोड नहीं पढ़ सकते हैं" तो कुछ ऐसा है जो लेखक की समस्या के रूप में पाठक की समस्या हो सकती है। मैं अपनी बात दोहराऊंगा। मैंने सैकड़ों और सैकड़ों प्रोग्रामर से (पेशेवर, वेतन के लिए, बिल योग्य घंटे) कोड पढ़ा है। "बस नहीं पढ़ सकते हैं" कभी नहीं हुआ है। स्टाइल मायने नहीं रखता।
एस.लॉट

2
कोडिंग शैली (और कोडिंग शैली पर क्विब्लिंग) समय की पूरी बर्बादी है। - मैं दूसरे बिंदु पर 100% और पहले पर लगभग 40% सहमत हूं। कोडिंग स्टाइल मायने रखती है - अगर आपकी कोडिंग में कोई स्टाइल नहीं है। अगर वहाँ है, तो इससे कोई फर्क नहीं पड़ता कि यह कैसा दिखता है।
ट्रेब

4
@WarrenFaith: मैंने नमूने को देखा है, और मुझे वहां कुछ भी दिखाई नहीं देता जो स्पष्ट नहीं है। यह प्रारूपित नहीं है कि मैं इसे कैसे प्रारूपित कर सकता हूं, लेकिन ऐसा कुछ भी नहीं है जो इंगित करता है कि कोड काम नहीं करेगा। इसके बारे में कुछ भी स्पष्ट नहीं है। यह सुझाव देने के लिए कुछ भी नहीं है कि जो व्यक्ति लिखा है वह टीम के मानक के अनुरूप असमर्थ या अनिच्छुक होगा। @ एस.लॉट सही है। इससे कोई फर्क नहीं पड़ता।
जोएल एथरटन

4
और //Importantहर लाइन पर उपयोग कर रहे हैं । अहम। कोड की प्रत्येक पंक्ति महत्वपूर्ण है या इसे हटा दिया जाना चाहिए।
S.Lott

7

कोडिंग शैली के आधार पर प्रोग्रामर को पहचानना 50% स्नोबेरी और 50% असुरक्षा है।

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

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

मुझे किसी भी कोड की कल्पना करने में परेशानी होती है जो ऊपर सूचीबद्ध किसी भी चीज़ को नहीं करता था, लेकिन फिर भी पढ़ना मुश्किल था, खासकर स्टाइल कॉप जैसे उपकरण के साथ।


7

यह हास्यास्पद कोड प्रारूप जब कोई किराए पर लेना एक कारक हो है।

  1. विचार करने के लिए कई और महत्वपूर्ण कारक हैं।
  2. अधिकांश डेवलपर्स अपनी शैली को अनुकूलित कर सकते हैं।
  3. यदि प्रारूप महत्वपूर्ण है कि एक कोड सुधारक और एक लिंटर चेकर का उपयोग करें।

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


4

मुझे लगता है कि आपके पास कंपनी में एक आधिकारिक स्वरूपण शैली है।

फिर किसी भी स्रोत को आधिकारिक शैली में पुन: स्वरूपित करना बेहद आसान है, और स्रोत फ़ाइल सहेजे जाने पर हर बार स्वचालित रूप से ऐसा होना।

अपने नमक के लायक कोई भी प्रोग्रामर इसे पसंद करने के लिए बढ़ेगा क्योंकि यह कमिट्स के लिए डिफेक्ट्स को कम करके उच्च गुणवत्ता सुनिश्चित करता है।


प्रतिबद्ध समस्याओं को भूल गए ... और हां, हमारे पास एक आधिकारिक प्रारूपण शैली है और बचत से पहले ऑटो स्वरूपण भी।
वॉरेनफैथ

@, अच्छी तरह से, फिर साक्षात्कार में ऐसा कहते हैं और यह सुनिश्चित करते हैं कि प्रोग्रामर समझता है कि यह महत्वपूर्ण है। फिर यह उसके ऊपर है कि वह अपने वादे को पूरा करे या नहीं, अगर वह नौकरी रखना चाहता है।

4

स्टाइलकॉप का इस्तेमाल करें

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

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

सीवीएस एकीकृत कोड स्वरूपण = इष्टतम समाधान

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


इसलिए ... अगर किसी कंपनी ने अपने सी # कोडिंग मानकों का आविष्कार किया है, तो क्या यह लाल झंडा होगा?
जॉब

1
@ जोब: जरूरी नहीं कि स्टाइलकॉप अतिरिक्त नियम जोड़ने की अनुमति देता है। मुझे पता है कि मैंने उनमें से दो को लिखा है जो SPACE पर TAB को लागू करते हैं जो पहले स्थान पर नहीं था। लेकिन विचार यह है कि कोडिंग शैली को मजबूर किया जा सकता है जिससे समान कोड होने में बहुत आसानी होगी।
रॉबर्ट कोरिटनिक

क्या होगा अगर उनकी शैली फिर से स्टाइलकॉप की गई, और अगर वे स्टाइलकॉप का उपयोग बिल्कुल नहीं कर रहे थे - तो क्या यह होगा?
जॉब

@काम। जब तक कोई C # कोड नहीं लिखता है जब तक कि यह पुराना फोरट्रान (80 कॉलम तय लेआउट किसी का भी?) है, तब भी मुझे लगता है कि कोडिंग शैली का पालन करने के लिए कहा जा सकता है। यदि कोई महान डेवलपर है तो आप उन्हें अपनी शैली में सुधार करने के लिए याद दिला सकते हैं (या उन्हें हमारी शैली को औचित्य देने दें )। कोड समीक्षा क्या है। किसी भी कोड का तेजी से सुधार किया जा सकता है लेकिन कम से कम नामकरण सम्मेलनों का पालन किया जाना चाहिए। लेकिन यह किराए के लिए लाल झंडा नहीं है। नहीं होना चाहिए।
रॉबर्ट कोरिटनिक

3

निम्नलिखित बहुत अधिक महत्वपूर्ण विवरणों से नीचे:

  • टीम फिट
  • समस्याएँ सुलझाने की क्षमता
  • संचार

कोडिंग शैलियों को उन अधिकांश लोगों द्वारा सीखा जा सकता है जिनके पास ऊपर सूचीबद्ध अंतिम दो हैं।

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


मेरे मामले में इसकी अक्सर एक ही चीज़ जो मुझे लड़के से
दिखती है

@ArrenFaith - ठीक है, लेकिन आप इतनी कम जानकारी के आधार पर किसी को किराए पर लेने का निर्णय लेने वाले नहीं हैं, क्या आप हैं? आपसे बस एक राय मांगी जा रही है।
पीडीआर

सच। मैं तकनीकी दृष्टिकोण से अपनी राय देता हूं और सॉफ्ट स्किल्स भी महत्वपूर्ण हैं। और हम केवल उन लोगों का परीक्षण करते हैं जिन्होंने साक्षात्कार में कम से कम सॉफ्ट स्किल "टेस्ट" पास किया है। लेकिन मैं अपनी राय पर कोडिंग शैली के प्रभाव के बारे में उत्सुक हूं ...
WarrenFaith

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

मैं मूल रूप से सिर्फ प्रो और गर्भनिरोधक की एक सूची बनाता हूं और मैं अपने सीटीओ के लिए इसे समझाता हूं और इसे उचित ठहराता हूं। अंतिम निर्णय उस पर निर्भर है ...
WarrenFaith

3

जब तक शैली सुसंगत है और वह व्यक्ति किसी अन्य शैली को बदलने (बदलने) में सक्षम है, मुझे कोई समस्या नहीं दिखती है।

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

जैसे अन्य लोगों ने कहा, मुसीबत को झेलना ही एकमात्र समस्या हो सकती है।


0

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

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

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

(और हाँ, मैं एक कैफीन की दीवानी हूँ।)


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

?? "इस व्यक्ति के खिलाफ मजबूत तर्क" ... "कोडिंग शैली के बारे में वास्तव में चिंता न करें"। यह किसका है? इससे कोई फर्क पड़ता है या नहीं? आपकी सलाह क्या है, इसका उत्तर बताना कठिन है। क्या आप स्पष्ट कर सकते हैं, कृपया?
S.Lott

@ S.Lott: यह कौन सा है? - अच्छा, दोनों। खराब कोडिंग शैली एक बुरी आदत है, ज्यादातर लोग इसे बहा सकते हैं। यह तब है जब वे सीख नहीं सकते (या नहीं) कि आपको कोई समस्या है।
ट्रेब

0

मेरी राय में, प्रोग्रामर के साथ काम करने के लिए एक अच्छी कोड शैली आवश्यक है।

एक अच्छी कोड शैली का होना व्यक्तिगत विकास का सवाल है। यह एक संकेतक है कि यह प्रोग्रामर किस स्तर तक पहले ही पहुंच चुका है।

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

अगर वहाँ विकास के लिए जगह है और प्रोग्रामर के विकास के लिए आप बेहतर ढंग से तेजी से सीखने या रचनात्मक सोचने की क्षमता के बारे में ध्यान रखेंगे।

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