मैं "सर्वोत्तम प्रथाओं" से मानता हूं कि आपके पास नियमों की कुछ सूची है जो किसी ने एक किताब में लिखी है। बेशक यदि आप वाक्यांश का शाब्दिक अर्थ रखते हैं, तो निश्चित रूप से आपको हमेशा सबसे अच्छा कोड लिखना चाहिए जो आप कर सकते हैं।
मुझे यह बताने की आवश्यकता है कि "सर्वोत्तम प्रथाओं" का एक एकल, सार्वभौमिक रूप से स्वीकृत सेट नहीं है? एक विशेषज्ञ द्वारा पदोन्नत किसी भी नियम के लिए, आप लगभग हमेशा एक विशेषज्ञ को समान क्रेडेंशियल्स के साथ पा सकते हैं जो कुछ अलग कहता है।
लेकिन इस बिंदु पर: संक्षिप्त उत्तर: आमतौर पर, लेकिन हमेशा नहीं।
हर क्षेत्र की अपनी "सर्वोत्तम प्रथाओं" और "पाठ्यपुस्तक के समाधान" हैं। ये कई लोगों के संचित अनुभव और ज्ञान का प्रतिनिधित्व करते हैं, कई लोगों पर, कई वर्षों में, और इसे नजरअंदाज नहीं किया जाना चाहिए। परंतु! हमेशा विशेष परिस्थितियां, फ्रिंज मामले आदि होते हैं। किसी भी क्षेत्र में वास्तव में सक्षम व्यक्ति जानता है कि नियमों का पालन कब करना है और उन्हें कब तोड़ना है।
मैं सामान्य रूप से कहूंगा: पाठ्यपुस्तक के नियमों का पालन करके शुरुआत करें। पाठ्यपुस्तक के नियमों का पालन करते समय परेशानी होती है - अनावश्यक जटिलता, खराब प्रदर्शन, जो भी हो - इस पर विचार करें कि क्या इस एक नियम को तोड़ना एक बेहतर विचार नहीं हो सकता है।
यदि आप नियमों को अनदेखा करते हैं और उस समय कहीं भी जाते हैं, जहां आपका पलड़ा आपका नेतृत्व करता है, तो आपका कोड गड़बड़ होने की संभावना है। कोई फर्क नहीं पड़ता कि आप कितने स्मार्ट हैं, आप दुनिया के पहले प्रोग्रामर नहीं हैं। यह दूसरों के अनुभव से सीखने के लिए समझ में आता है। हमारे दैनिक जीवन में, यही कारण है कि हमारे पास माता-पिता और शिक्षक और उपदेशक हैं: इसलिए हमें यह जानने के लिए कि हर बेवकूफ गलती को स्वयं नहीं दोहराना है, यह एक मूर्खतापूर्ण गलती है।
लेकिन यदि आप किसी पुस्तक की 100% समय से नियमों की एक सूची का पालन करते हैं, तो आप अक्सर अपने आप को एक चौकोर छेद में एक चौकोर खूंटी पर टिकाते हुए पाएंगे। जिन लोगों ने नियम पुस्तिका लिखी है, वे आपके जैसे मामले में नहीं आए होंगे। और यहां तक कि अगर उनके पास है, अगर यह काफी दुर्लभ है, तो वे इसे अनदेखा कर सकते हैं। एक नियम जो 80% समय का काम करता है, वह एक उत्कृष्ट नियम है - जब तक आप समझते हैं कि यह समय का 80% काम करता है न कि 100% समय।
मैंने डेटाबेस डिज़ाइन पर एक पुस्तक लिखी है जिसमें कई नियम शामिल हैं जो मैं डेटाबेस डिजाइनरों को पालन करने की सलाह देता हूं। (मैं शीर्षक देने से बचना चाहूंगा ताकि मैं ऐसा न देखूं कि मैं बेशर्मी से आत्म-प्रचार में फिसल रहा हूं।) मैं निश्चित रूप से किसी को भी प्रोत्साहित करता हूं जो मेरी जैसी किताब पढ़ने के लिए एक डेटाबेस डिजाइन करना चाहता है और वह सब सीख सकता है जो वे कर सकते हैं। । लेकिन निश्चित रूप से ऐसे समय होते हैं जब आपको मेरे द्वारा सूचीबद्ध नियमों को तोड़ना चाहिए।
मैंने एक बार डेवलपर्स की एक टीम के लिए एक प्रोग्रामिंग मानकों दस्तावेज़ लिखा था, जिसे मैंने उस समय लीड किया था। और अंतिम नियम कुछ इस तरह से था: "यदि आपके पास उपरोक्त नियमों में से एक को तोड़ने का एक अच्छा कारण है, तो आगे बढ़ें, लेकिन क्या आपको अपने कोड में एक टिप्पणी शामिल करनी चाहिए जिसमें यह समझाया गया है कि आपने नियम क्यों तोड़ा। यदि आप नहीं आ सकते हैं। एक अच्छे कारण के साथ, फिर नियम का पालन करें। यदि टिप्पणी लिखना नियम का पालन करने से अधिक परेशानी है, तो नियम का पालन करें। " हमारे पास केवल कुछ ही समय थे कि किसी ने एक नियम को तोड़ने के लिए परेशान होने के लायक पाया कि क्यों।