जब आप भाषा से परिचित नहीं हैं तो कोड गुणवत्ता का मूल्यांकन कैसे करें? [बन्द है]


10

एक काल्पनिक के रूप में, अगर मैं किसी नए PHP डेवलपर स्थिति के लिए किसी का साक्षात्कार करने के लिए था, जब मेरा अनुभव .NET में है, तो मैं यह कैसे निर्धारित कर सकता हूं कि यदि उन्होंने मुझे जो कोड नमूना प्रदान किया है वह कुशल और अच्छी गुणवत्ता का है?

दूसरे शब्दों में, प्रोग्रामर के कोड का मूल्यांकन करने का सबसे अच्छा तरीका क्या है यदि आप भाषा से परिचित नहीं हैं?


1
मुझे आपसे इसे तोड़ने से नफरत है, लेकिन आप :-) साक्षात्कार में किसी ऐसे व्यक्ति को शामिल न करें, जो भाषा जानता हो या इसे स्वयं सीखता हो।
जॉपी

2
यही कारण है कि साक्षात्कार एक टीम प्रयास है। आप मूल्यांकन करते हैं कि आप किस चीज का मूल्यांकन करने में सक्षम हैं, और इस तरह के सामान को कुछ तकनीकी टीम की ओर ले जाते हैं, जो इससे परिचित हैं।
कज़

मेरे लिए सबसे अच्छा मीट्रिक कक्षाओं (फाइलों के आकार सहित) के कार्यों का आकार है।
m3th0dman

जवाबों:


20

मैं यह कैसे निर्धारित कर सकता हूं कि जो कोड नमूना उन्होंने मुझे प्रदान किया है वह कुशल और अच्छी गुणवत्ता का है?

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

आप क्या मूल्यांकन कर सकते हैं:

  • कोड कितना अच्छा लगता है
  • अच्छी तरह से नामित चर (आप चीजों की समझ बना सकते हैं)
  • अच्छी तरह से रचना कार्य / कोड की इकाइयाँ
  • कोड बेस में संगति

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

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


5
एक और महत्वपूर्ण: "क्या टिप्पणियां स्पष्ट, सार्थक और समझने में आसान हैं?" क्या आप इस बारे में थोड़ा जान सकते हैं कि टिप्पणियों से कोड का एक टुकड़ा क्या है, भले ही आपके पास भाषा के लिए बहुत कम जोखिम हो?
फ्रस्ट्रेटेडविथफॉर्म्सडिजाइनर

2
@FrustratedWithFormsDesigner - टिप्पणियाँ? वो क्या है? गंभीरता से हालांकि, कोड को स्व टिप्पणी होना चाहिए। खराब कोड के कारण या स्पष्टीकरण देने के लिए टिप्पणियाँ केवल होनी चाहिए।
ओड

6
मैं अत्यधिक सावधानी का आग्रह करता हूं: यह इस आधार पर चुनना बहुत आसान है कि आप उस कोड को सबसे अधिक लिखते हैं जैसे आप आदी हैं, जो उस भाषा का अपेक्षाकृत खराब उपयोग हो सकता है।
जेरी कॉफिन

@FrustratedWithFormsDesigner Oded शायद सोचता है कि आप इस पढ़ना चाहिए elegantcode.com/2010/04/18/...
जोएल

4

उन्हें इसे प्रवाहित करें या साक्षात्कार के भाग के रूप में आपके माध्यम से चलें। आपके पास पूछने के लिए एकदम सही बहाना है और यह काफी हद तक बताता है कि वे कैसे सोचते हैं कि वे कैसे समझाते हैं।

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

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


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

1

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

आप बिना किसी परिचित के भाषा सुविधाओं / वाक्यगत चीनी / सम्मेलनों के मुहावरेदार उपयोग का मूल्यांकन करने में सक्षम नहीं होंगे।

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

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

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


1

भाषा के बावजूद:

  • क्या चिंताओं के स्पष्ट अलगाव, कक्षाओं के उचित उपयोग (ओओ भाषाओं के लिए), या जानबूझकर कोड को पुन: प्रयोज्य, मॉड्यूलर 'विखंडू' में तोड़ने के प्रयासों के कोई संकेत हैं?
  • इसी तरह, परीक्षण का कोई सबूत - इकाई परीक्षण या अन्यथा?
  • यदि यह उत्पादन कोड है, तो क्या यह डिबग स्ट्रिंग्स के साथ बिखरा हुआ है जो विकास और तैनाती के बीच थोड़ा अलगाव का सुझाव दे सकता है?
  • क्या कोड किसी भी प्रकार के नामकरण सम्मेलन का अनुसरण करता है (आप उस सम्मेलन को पसंद करते हैं या नहीं, यह भी सारहीन है!)।
  • यदि आपके पास फ़ाइल है, तो प्रिंटआउट के बजाय, फ़ाइल में प्रत्येक फ़ंक्शन / वर्ग संबंधित है (इसलिए यदि यह एक फ़ाइल है जिसे data_access_layer कहा जाता है , तो फ़ंक्शंस के साक्ष्य जो छवियों को संसाधित करने वाले स्थान से संभवतः बाहर होंगे)।
  • उपयोगकर्ता इनपुट के लिए विश्वास की कमी के किसी भी संकेत बहुत अच्छे हैं, खासकर PHP जैसी वेब-आधारित भाषाओं के लिए। इसलिए इनपुट = एस्केप (इनपुट) जैसी संरचनाएं कम से कम आपको दिखाती हैं कि वे इस मुद्दे से अवगत हैं।
  • टिप्पणियाँ या स्व-वर्णन कोड हमेशा अच्छा होता है। टिप्पणी की मात्रा पर विचार के कई स्कूल हैं जो मौजूद होने चाहिए, लेकिन टिप्पणियों की पूर्ण अनुपस्थिति
  • निंदक होने की कीमत पर, मैं साक्षात्कार से पहले कुछ कोड भी Google को भेजूंगा। यह आसानी से एक कॉपी और पेस्ट काम हो सकता है, दुख की बात है।

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

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

सौभाग्य, अच्छे लोगों को काम पर रखना आपके संगठन में सबसे महत्वपूर्ण भूमिकाओं में से एक है;)


हेंडसाइट में, यह बहुत कुछ डुप्लिकेट करता है, जिसमें @ (और टिप्पणियां) कहा गया है।
frackham

0

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

क्या उम्मीदवार एक टीम में काम करने वाला है? टीम के सदस्यों को उनसे मिलने दें और उनके कौशल के बारे में सवाल पूछें।


-2

उनसे भाषा का उपयोग करते समय उनकी सीमाओं के बारे में पूछें। उन्हें आपसे एक सरल SQL क्वेरी दिखाने के लिए कहें। किसी भी hoot के लायक कोई भी php dev बहुत अधिक प्रयास के बिना एक मूल चयन / अपडेट / डिलीट क्वेरी को धमाका करने में सक्षम होना चाहिए।

डौग

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