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