भारी समय सीमा के बावजूद कुशल कोड कैसे लिखें


28

मैं ऐसे माहौल में काम कर रहा हूं जिसमें डिलिवरेबल्स पर सख्त डेडलाइन के साथ हमारे कई प्रोजेक्ट हैं। हम ग्राहकों से सीधे बात भी करते हैं, ताकि काम जल्दी हो और तेजी से हो।

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

क्या कोई युक्तियां हैं जिनके द्वारा मैं अपने कोड को समय पर वितरित कर सकूं?


11
कुशल कोड पर ध्यान न दें , बल्कि सही कोड। जो कि कई मील और जाता है। बाद के रिलीज के लिए अपनी दक्षता को बचाएं।
जेसी सी। स्लाइसर

जवाबों:


23

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

अगर वे इस बारे में परवाह नहीं करते हैं, तो मुझे नहीं लगता कि आपको हर समय बेहतर होने के अलावा और कुछ भी अलग करने की ज़रूरत है, जब भी संभव हो आप सर्वोत्तम प्रथाओं को शामिल कर सकते हैं।


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

4
@EdS। काम कहीं और खोजना हमेशा एक विकल्प होता है ... इसे "अपना करियर बनाए रखना" कहा जाता है और ऐसा करने में समय और प्रयास लगता है।
Spoike

17

ठीक है, यह थोड़ा पागल लग सकता है लेकिन मुझे लगता है कि यह काम करता है। यह सिर्फ प्रोग्रामिंग के लिए नहीं है, यह रचनात्मकता, एकाग्रता और स्मृति बढ़ाने के लिए एक नुस्खा है:

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

इससे पहले कि आप इसे जानें, आपको अपनी प्रोग्रामिंग उत्पादकता और समाधानों की गुणवत्ता (अन्य क्षेत्रों में सुधार का उल्लेख नहीं करने) में एक उल्लेखनीय सुधार दिखाई देगा।

सूत्रों का कहना है:

  1. आपका चमत्कारी मस्तिष्क: अपनी दिमागी ताकत को अधिकतम करें, अपनी याददाश्त को बढ़ाएं, अपने मूड को बढ़ाएं, अपने बुद्धि और रचनात्मकता में सुधार करें, मानसिक एजिंग को रोकें और उलटें।
  2. मात्रात्मक स्व
  3. सेठ रॉबर्ट्स - वैज्ञानिक अमेरिकी में

6
आप भूल गए: कैफीन नहीं।
क्रिस्टोफर महान

आप भूल गए: कोडिंग करते समय PORN को न देखें! धन्यवाद!
अमीरहोसिन

9

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

यदि आपके ग्राहक विशिष्ट उद्योगों में क्लस्टर करते हैं, तो उन परियोजनाओं के निर्माण का प्रयास करें जिनमें पुन: उपयोग करने योग्य घटक हों। लिखने का कोड लिखने से ज्यादा तेज नहीं है।

आपके ग्राहक के दृष्टिकोण से, यह " तेज, अच्छा और सस्ता, दो उठाओ " जैसी थोड़ी सी खुशबू आ रही है । निश्चित रूप से, हम सभी चाहते हैं कि हम तुरंत क्या चाहते हैं, लेकिन आपके ग्राहकों को यह विचार करने की आवश्यकता है कि क्या यह दीर्घकालिक में सबसे अच्छा है। व्यापार नापसंद को स्पष्ट करने की कोशिश करें और उन्हें अच्छे निर्णय लेने में मदद करें।


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

8

दूसरी नौकरी की तलाश।

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

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

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


2
"मोस" से आपका क्या तात्पर्य है। ?
डेरियस .V

राज्यमंत्री। = महीने। जाने के लिए दो और पात्र ...
gnasher729

मैं आपको नहीं जानता लेकिन पर्सियन में "मॉस" का एक बुरा अर्थ है। इसका मतलब है बट। ;)
अमीरहोसिन

3

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

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

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

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

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

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


1

रॉबर्ट ने सबसे महत्वपूर्ण पहलुओं को कवर किया।

मैंने ऐसे वातावरण में काम किया है, जिसमें कोड छह महीने से अधिक नहीं रह सकता है। कुछ अंगूठे नियम हैं जो मैं सोच सकता हूं:

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

1

डिजाइन चरण में, सहयोगियों से बात करें

अपने डिजाइन पर चर्चा करें और आप इसे कैसे करना चाहते हैं, और उन्हें अपने निर्णयों की जांच करनी चाहिए। अगर और जब आप सभी इस बात पर सहमत हैं कि स्मार्ट क्या है, तो आपके पास बहुत अधिक साउंड डिज़ाइन है।


1

अभ्यास। अच्छा कोड लिखने का अभ्यास तब तक करें जब तक कि वह दूसरी प्रकृति न बन जाए। फिर तेजी से कोडिंग का अभ्यास करें। फिर कोडिंग का बेहतर अभ्यास करें। और जब आप कर रहे हैं ... कुछ और अभ्यास करें।


0

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

नहीं, यह आपका मुद्दा नहीं है। वह एक गुण है। यह सबसे सरल काम कर रहा है जो संभवतः काम कर सकता है। लेकिन यह केवल तब काम करता है जब रिफैक्टिंग के साथ संयुक्त हो। यह एक सतत प्रक्रिया है: अगली सरलतम चीज़ करना जो संभवतः, बार-बार काम कर सकता है, ताकि आपका सिस्टम हमेशा समाधान स्थान की आपकी वर्तमान समझ का एक अभिव्यक्ति हो।

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

अंत में: जैसा कि मैंने पहले कहा है *, आपको यह सीखने की जरूरत है कि कैसे नहीं कहना है

* कैसे एक बहुत तंग अनुसूची पर कोड करने के लिए?


0

यदि वे समय सीमा और समय तय करते हैं, तो आप समय सीमा समाप्त कर सकते हैं।

यदि संभव हो तो बाहरी गुणवत्ता को गिरा दें, हितधारकों को दिखाई दे, आंतरिक गुणवत्ता, सामान पर कोई समझौता न करें जो कोडबेस में आपकी आदत को नुकसान पहुंचाता है।

मुझे नहीं लगता कि इस स्थिति में कोई सुधार करने में आपकी मदद करने में आत्म सुधार हो रहा है। अगर कुछ भी हो, तो कहने के लिए क्षमा करें, आमतौर पर यह मुखरता है।

जब काम का अनुमान हो तो दरवाजे में पैर रखने की कोशिश करें। आपका बॉस कैसे अनुमान लगा सकता है कि आप कब तक-कुछ करने के लिए तैयार हैं?

अपने बॉस और / या ग्राहक के लिए विकल्प लाओ। बहुत बार यह स्वयं डेवलपर्स होते हैं जो बिना किसी संचार के गुणवत्ता को छोड़ने का विकल्प चुनते हैं। स्वर्गीय परियोजनाएँ / कार्य बहुत ही सामान्य हैं और आमतौर पर 'प्रबंधित' होते हैं। यदि आप किसी चूक की समय सीमा को देखते हैं, तो समय पर उस पर कार्रवाई करें।

यदि आप उन्हें कुछ नहीं बताते हैं तो वे गुंजाइश नहीं काट सकते हैं या समय सीमा नहीं बढ़ा सकते हैं।

यदि आप किसी भी रूप में गुणवत्ता से समझौता करने जा रहे हैं, तो यह निर्णय लेने का प्रयास करें। उन्हें एक दूसरे के खिलाफ वजन करने के लिए सामान दें।

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

कभी-कभी यह आपके काम का हिस्सा होता है, क्या आप अपने हाथों को धोए बिना एक मरीज को टांके लगा सकते हैं क्योंकि 'कोई समय नहीं है'?

सबसे ऊपर, याद रखें: बाद में नहीं है।


0

मैं एक .Net डेवलपर हूं जो वेब एप्लिकेशन पर काम कर रहा है।

मैंने जो कुछ करना शुरू किया है वह है -

यदि यह C # कोड है, तो मैं उस कोड को पहले LinqPad में लिखने का प्रयास करता हूं (यदि संभव हो तो)।

यदि यह जावास्क्रिप्ट कोड है, तो मैं पहली बार उस कोड को लिखता हूं और इसे jsfiddle / jsbin (यदि संभव हो) में परीक्षण करता हूं।

मैंने पाया कि यह कोड की गुणवत्ता के साथ मदद करता है, लेकिन मुझे धीमा नहीं करता है (और कई मामलों में, मैंने इसे तेज पाया)।


यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। आप आपत्ति तो नहीं है संपादित एक बेहतर आकार में यह ing?
gnat

@gnat - सुझाव के लिए धन्यवाद। यह डाउनवोट के साथ सुझाव प्राप्त करने में मदद करता है। मुझे उम्मीद है कि अब प्रारूपण बेहतर है।
user637563

पूर्ण वातावरण के बाहर समाधान खोजने से इसके लाभ हो सकते हैं। आपके पास कुछ ऐसा होगा जो काम करता है इसलिए आपको पता चल जाएगा कि अगर यह पूरी प्रणाली में काम नहीं करता है तो समस्या को बाकी सिस्टम के साथ संघर्ष करना पड़ता है। आप तब समाधान निकालने के लिए समाधान को संशोधित करने का प्रयास कर सकते हैं जब यह देखने में सक्षम हो कि क्या समाधान अभी भी पूर्ण वातावरण के बाहर काम करता है। इस लाइन के लिए आपकी पवित्रता आपको धन्यवाद दे सकती है।
बेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.