इसके अलावा: मैंने इसे डैलिन के सवाल (अब बंद) के जवाब में लिखा था, लेकिन मुझे अभी भी लगता है कि यह किसी के लिए मददगार हो सकता है इसलिए वह यहां आता है
मुझे लगता है कि एटमाइजिंग कार्यों का कारण 2 गुना है, और @jozefg उल्लेख के रूप में इस्तेमाल की जाने वाली भाषा पर निर्भर है।
चिंताओ का विभाजन
ऐसा करने का मुख्य कारण कोड के अलग-अलग टुकड़ों को अलग-अलग रखना है, इसलिए कोड का कोई भी ब्लॉक जो सीधे फ़ंक्शन के वांछित परिणाम / इरादे में योगदान नहीं करता है, एक अलग चिंता है और इसे निकाला जा सकता है।
मान लें कि आपके पास एक बैकग्राउंड टास्क है जो एक प्रगति बार को अपडेट करता है, प्रगति बार अपडेट सीधे लंबे चलने वाले कार्य से संबंधित नहीं है, इसलिए इसे निकाला जाना चाहिए, भले ही यह कोड का एकमात्र टुकड़ा हो जो प्रगति बार का उपयोग करता है।
जावास्क्रिप्ट में कहें कि आपके पास एक फ़ंक्शन getMyData () है, जो 1) मापदंडों से एक साबुन संदेश बनाता है, 2) एक सेवा संदर्भ को प्रारंभ करता है, 3) साबुन संदेश के साथ सेवा को कॉल करता है, 4) परिणाम को पार्स करता है, 5) परिणाम देता है। उचित लगता है, मैंने इस सटीक फ़ंक्शन को कई बार लिखा है - लेकिन वास्तव में इसे 3 निजी कार्यों में विभाजित किया जा सकता है जिसमें केवल 3 और 5 के लिए कोड शामिल है (यदि ऐसा है) तो अन्य कोड में से कोई भी सेवा से डेटा प्राप्त करने के लिए सीधे जिम्मेदार नहीं है। ।
बेहतर डिबगिंग अनुभव
यदि आपके पास पूरी तरह से परमाणु कार्य हैं, तो आपका स्टैक ट्रेस एक कार्य सूची बन जाता है, सभी सफलतापूर्वक निष्पादित कोड को सूचीबद्ध करता है, अर्थात:
- मेरा डेटा प्राप्त करें
- पार्स की गई सेवा प्रतिक्रिया - ERROR
अधिक दिलचस्प होगा तो यह पता लगाना कि डेटा प्राप्त करते समय कोई त्रुटि थी। लेकिन कुछ उपकरण विस्तृत कॉल ट्री को डीबग करने के लिए और भी उपयोगी होते हैं, उदाहरण के लिए, Microsofts Debugger Canvas को लें ।
मैं आपकी चिंताओं को भी समझता हूं कि इस तरह से लिखे गए कोड का पालन करना मुश्किल हो सकता है क्योंकि दिन के अंत में, आपको एक एकल फ़ाइल में फ़ंक्शन का एक क्रम चुनने की आवश्यकता होती है, जहां आपका कॉल-ट्री अधिक जटिल होगा, तब । लेकिन अगर कार्यों को अच्छी तरह से नामित किया जाता है (इंटेलीसेन्स मुझे किसी भी फ़ंक्शन में 3-4 कैमल केस शब्दों का उपयोग करने की अनुमति देता है, तो कृपया मुझे किसी को धीमा किए बिना) और फ़ाइल के शीर्ष पर सार्वजनिक इंटरफ़ेस के साथ संरचित, आपका कोड छद्म-कोड की तरह पढ़ा जाएगा कोडबेस की उच्च स्तरीय समझ प्राप्त करने का अब तक का सबसे आसान तरीका है।
FYI करें - यह उन लोगों में से एक है "जैसा कि मैं कहता हूं कि मैं ऐसा नहीं करता हूं", कोड को परमाणु रखना तब तक बेकार है जब तक कि आपका निर्दयतापूर्वक यह IMHO के अनुरूप नहीं है, जो मैं नहीं हूं।