"कोड शैली और डिज़ाइन पैटर्न" पर एक प्रस्तुति देना [बंद]


9

मेरी कंपनी (छोटे, 3 कार्यालयों में लगभग 40 लोग) कभी-कभार "डेवलपर वर्कशॉप" ऑनलाइन करते हैं, जहाँ देवों में से कोई भी एक तकनीकी विषय के बारे में प्रस्तुति देता है। यह जरूरी नहीं कि हमारे काम के बारे में हो, बल्कि सभी को अपने कौशल और समझ को बेहतर बनाने में मदद करें।

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

मेरा पहला विचार एक उदाहरण के रूप में हमारे अपने कोड का उपयोग करना है, घर को ड्राइव करने के लिए "कृपया वास्तव में इसे अपने काम पर लागू करें।" लेकिन विषय इतना व्यापक है।

हमारे कोड (PHP) में कुछ चीजें गलत हैं:

  • न्यूनतम ओ.ओ. यह हाल ही में सुधार कर रहा है, लेकिन वैश्विक कार्यों के टन अभी भी हैं। मुझे चीजों को खोजने में थोड़ा समय लगता है।
  • ग्लोबल कॉन्फिग (राय मुझे लगता है)। आप हर फ़ाइल में लगभग $ GLOBALS ['blah'] बिखेर सकते हैं।
  • असंगत ब्रेस स्टाइल। कम से कम लगता है, लेकिन यह वास्तव में एक वाक्यविन्यास त्रुटि को पांच दिन पहले मूल में धकेल दिया गया था, जिसे अभी भी कल की तरह ठीक नहीं किया गया था।
  • अक्षम निर्माण। मैं कुछ बुनियादी सुधार करने में सक्षम था जो 70% तक कुछ क्षेत्रों में चल रहे समय में कटौती करता है।

मैं चाहता हूं कि यह बात यथासंभव उपयोगी हो, बिना अपने सहकर्मियों के कृपालु लगने के। तो मुझे "शैली" के किन पहलुओं पर ध्यान केंद्रित करना चाहिए, और समझाने के लिए कौन से डिज़ाइन पैटर्न सबसे उपयोगी हो सकते हैं?


1
यह ऐसा खुला विषय है कि किसी ठोस निष्कर्ष पर आना कठिन होगा। मैं यह स्पष्ट करने की कोशिश करूंगा कि प्रस्तुति का उद्देश्य अपने सहकर्मियों को वर्तमान मुद्दों से अवगत कराना है, न कि उन्हें किसी विशेष मानक का पालन करने के लिए राजी करना। आप अपने प्रश्न में किए गए बिंदुओं को सूचीबद्ध नहीं करते हैं, और इसका उदाहरण देते हैं कि यह एक बुरा अभ्यास और संभावित परिणाम अर्थात तकनीकी ऋण क्यों है। ReSharper और FxCop जैसे टूल का भी उल्लेख करें।
कोई नहीं

जवाबों:


8

इस कोड को लिखने वाले लोगों के सामने एक प्रेजेंटेशन में वास्तविक कोड का उपयोग करके अत्यधिक सावधानी बरतें।

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

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

अपने मूल प्रश्नों का उत्तर देने के लिए: सब कुछ जो पठनीयता के बारे में है: संभव के रूप में कुछ तर्कों के साथ funtions, OOP, लंबे और विस्तृत चर नाम और टिप्पणियां।


2
+1: कोड की समीक्षा एक नाजुक ऑपरेशन है जो कूटनीति, और विवेक लेता है, और इसका उपयोग प्रदर्शन उद्देश्य के लिए नहीं किया जाना चाहिए।
माथीउ

4

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

इस शोध को करने के लिए कुछ कठिन काम है, लेकिन यह घर चलाने का सबसे मजबूत तरीका है जो आप पेश कर रहे हैं वह वास्तव में काम करता है ।


2

"अभी भी वैश्विक कार्यों के टन"।

सबसे पहले, एक सूची प्राप्त करें। पूरा आदर्श है।

दूसरा, इस सूची को संभावित वर्गों में विभाजित करें। वर्ग परिभाषा के बारे में सोचें।

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

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

फिर, इस बिंदु पर चर्चा करने के बाद, जहां वे सिर्फ इस वर्ग को समझते हैं और आप सामग्री पर कैसे पहुंचे ...।

प्रोजेक्टर चालू करें।

टाइप करना शुरू करें।

कोड को ठीक करें। अपनी इकाई परीक्षणों का पुनर्मिलन करें।

डिजाइन पैटर्न और कोडिंग शैली और काम हो रहा है। सभी एक पैकेज में।


2

1 घंटे में आप बुनियादी बातों की एक न्यूनतम-न्यूनतम समझ प्राप्त करने के लिए अच्छा कर रहे हैं।

मेरा सुझाव है कि प्रत्येक विषय से 3 चीजें चुनें और उन पर ध्यान केंद्रित करें; स्लाइड को 5-7 शब्दों तक सीमित करें ताकि लोग स्लाइड पढ़ने के बजाय आपको सुनें; बने-बनाए उदाहरणों का उपयोग करें (ताकि आप दूसरों के सुझावों के अनुसार लोगों के पैर की उंगलियों पर कदम न रखें); उन लोगों के लिए एक अभ्यास के रूप में अंत में संदर्भ दें (URL पुस्तकों से बेहतर हैं) जो अधिक सीखना चाहते हैं; अपनी प्रस्तुति के बाद अपने इंट्रानेट पर अपनी स्लाइड पोस्ट करें । (ब्रेसिज़ मुद्दे के लिए, कोड फ़ॉर्मेटर का उपयोग करें; यह शायद लड़ाई के लायक नहीं है)

सुझाए गए विषय:

  • कोडिंग स्टाइल

    • PHP में OOP का ज़ेन: स्टाइल के साथ कोडिंग!
    • 5 कारण क्यों ग्लोबल फ़ंक्शंस कॉज़ कोड कैंसर
    • नाम में क्या है? कन्वेंशन और कॉमन सेंस (या मेक मी मेक थिंक!)
  • डिजाइन पैटर्न्स

    • हमारे कोड में कुछ GoF पैटर्न; एक परिचय
    • पैटर्न सिर्फ उपकरण हैं, सुसमाचार नहीं
    • सबसे अच्छा और सबसे बुरा: पैटर्न और विरोधी पैटर्न

नोट: वैश्विक विन्यास कभी-कभी मुश्किल से बचते हैं; एक आसान उपाय यह है कि सभी संदर्भों को इनिट फ़ंक्शन में रखा जाए

चेतावनी: मुझे पता है कि वर्डप्रेस को तोड़ने और मामूली वेब साइट को ठीक करने के लिए केवल पीएचपी पर्याप्त है


1

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


0

कोडिंग स्टाइल बुरी आदतें हैं। से छुटकारा पाना मुश्किल है। किसी को बुरी आदत छोड़ने का सबसे अच्छा तरीका? उसे पहले यह देखने दें कि वह कितना बदसूरत, घृणित या हानिकारक है।

उन्हें बुरा कोड दिखाएं, उनसे पूछें कि इसके बारे में क्या बुरा है। उन्हें एक सेकंड के लिए इसके बारे में सोचने दें, फिर उन्हें "आआआआआहह!" उन्हें एक किनारे का मामला (फ़ेंसपोस्ट समस्या, शायद?) या एक ऐसा मामला दिखा कर, जिसमें उनका बुरा डिज़ाइन सब कुछ ढह जाता है।

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

उन्हें उकसाने के बजाय, उन्हें उकसाने या उन्हें रक्षात्मक पद लेने के लिए मज़ाकिया तरीके से करें (जो हमारी आलोचना करने के लिए यह लड़का है?); उदाहरण के लिए, उन्हें एक ऐसा कार्य दिखाते हैं जो दो चरणों में अपना काम करता है (१- पत्नी का नाम दर्ज करें) (२-इसे वैश्विक में संग्रहीत करें) (३-पति के नाम दर्ज करें और वैश्विक रूप से डेटाबेस में स्टोर करने के लिए पत्नी का नाम लें) (४- हंसी के रूप में) 'नई' पत्नियों वाले पुरुषों में खराब सिंक्रोनाइज़ेशन का परिणाम होता है, क्योंकि एक मजाक के रूप में एक तलाक के आंकड़े फ़ंक्शन लिखते हैं।

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

अपने बुरे कार्यों पर ले जाएं, इसे कुछ परिवर्तनों के साथ छिपाएं ताकि कोड के मालिक को शर्मिंदा न करें, और इसे सुधारने के लिए दर्शकों के साथ काम करें और बातचीत करें। परिणाम: अगली सुबह आपका स्रोत कोड नियंत्रण प्रणाली इतनी व्यस्त हो जाएगी, इसलिए परिवर्तन लॉग पर एक कॉफी और मुस्कान पकड़ो।

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