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