इसलिए पहले के आस-पास देखने पर मुझे कुछ तरीकों के बारे में ध्यान आया जिसमें लंबे तरीकों के खराब होने के बारे में बताया गया था।
मुझे यकीन नहीं है कि मैं हमेशा मानता हूं कि लंबे तरीके खराब हैं (और दूसरों से राय चाहते हैं)।
उदाहरण के लिए मेरे पास कुछ Django के विचार हैं जो उन्हें दृश्य में भेजने से पहले वस्तुओं के प्रसंस्करण का एक सा करते हैं, एक लंबी विधि कोड की 350 पंक्तियाँ हैं। मेरे पास मेरा कोड लिखा गया है ताकि यह क्वेरीज़ को छांटने / फ़िल्टर करने के लिए मापदंडों के साथ काम करता है - फिर बिट द्वारा कुछ वस्तुओं पर कुछ प्रसंस्करण होता है जो मेरी क्वेरी वापस आ गई है।
तो प्रसंस्करण मुख्य रूप से सशर्त एकत्रीकरण है, जिसमें जटिल पर्याप्त नियम हैं जो आसानी से डेटाबेस में नहीं हो सकते हैं, इसलिए मेरे पास मुख्य लूप के बाहर घोषित कुछ चर हैं फिर लूप के दौरान बदल जाते हैं।
variable_1 = 0
variable_2 = 0
for object in queryset :
if object.condition_condition_a and variable_2 > 0 :
variable 1+= 1
.....
...
.
more conditions to alter the variables
return queryset, and context
इसलिए सिद्धांत के अनुसार मुझे सभी कोड को छोटे तरीकों में बदलना चाहिए, ताकि मेरे पास अधिकतम एक पृष्ठ लंबा होने के रूप में दृश्य विधि हो।
हालाँकि अतीत में विभिन्न कोड आधारों पर काम करते हुए, मुझे कभी-कभी लगता है कि यह कोड को कम पठनीय बनाता है, जब आपको अपने सिर के सबसे बाहरी तरीके को ध्यान में रखते हुए इसके सभी भागों में लगातार एक विधि से छलांग लगाने की आवश्यकता होती है।
मुझे पता है कि एक लंबी विधि जो अच्छी तरह से स्वरूपित है, आप तर्क को अधिक आसानी से देख सकते हैं, क्योंकि यह आंतरिक तरीकों से दूर नहीं छिप रहा है।
मैं कोड को छोटे तरीकों में बदल सकता हूं, लेकिन अक्सर एक आंतरिक लूप होता है जिसका उपयोग दो या तीन चीजों के लिए किया जाता है, इसलिए इसका परिणाम अधिक जटिल कोड या उन तरीकों से होगा जो दो या तीन नहीं करते हैं (वैकल्पिक रूप से मैं प्रत्येक कार्य के लिए आंतरिक छोरों को दोहरा सकता था, लेकिन फिर एक प्रदर्शन हिट होगा)।
तो क्या ऐसा मामला है कि लंबे तरीके हमेशा खराब नहीं होते हैं? लेखन विधियों के लिए हमेशा एक मामला होता है, जब वे केवल एक ही स्थान पर उपयोग किए जाएंगे?
अद्यतन: लगता है जैसे मैंने यह सवाल एक साल पहले पूछा था।
इसलिए मैंने यहाँ (मिश्रित) प्रतिक्रिया के बाद कोड को रीक्रिएट किया, इसे विधियों में विभाजित किया। यह डेटाबेस से संबंधित वस्तुओं के जटिल सेटों को पुनर्प्राप्त करने वाला एक Django ऐप है, इसलिए परीक्षण तर्क बाहर है (परीक्षण मामलों के लिए प्रासंगिक ऑब्जेक्ट बनाने के लिए संभवत: अधिकांश वर्ष लगेंगे। मेरे पास "कल की गई यह आवश्यकताएं" प्रकार हैं। किसी से शिकायत होने से पहले काम का माहौल)। कोड के उस हिस्से में कीड़े को ठीक करना अब थोड़ा आसान है, लेकिन बड़े पैमाने पर ऐसा नहीं है।
इससे पहले :
#comment 1
bit of (uncomplicated) code 1a
bit of code 2a
#comment 2
bit of code 2a
bit of code 2b
bit of code 2c
#comment 3
bit of code 3
अभी:
method_call_1
method_call_2
method_call_3
def method_1
bit of (uncomplicated) code 1a
bit of code 2a
def method_2
bit of code 2a
bit of code 2b
bit of code 2c
def method_3
bit of code 3