ধরুন আমার কাছে দীর্ঘ পদ্ধতি রয়েছে:
public void SomeLongMethod()
{
// Some task #1
...
// Some task #2
...
}
এই পদ্ধতির কোনও পুনরাবৃত্ত অংশ নেই যা পৃথক পদ্ধতি বা স্থানীয় ফাংশনে স্থানান্তরিত করা উচিত।
অনেক লোক আছে (আমাকে সহ) যারা মনে করেন যে দীর্ঘ পদ্ধতিগুলি কোড গন্ধ। এছাড়াও আমি #regionএখানে (গুলি) ব্যবহারের ধারণা পছন্দ করি না এবং এটি কেন খারাপ তা ব্যাখ্যা করার জন্য একটি খুব জনপ্রিয় উত্তর রয়েছে ।
তবে যদি আমি এই কোডটি পদ্ধতিতে আলাদা করি
public void SomeLongMethod()
{
Task1();
Task2();
}
private void Task1()
{
// Some task #1
...
}
private void Task2()
{
// Some task #1
...
}
আমি নিম্নলিখিত বিষয়গুলি দেখতে পাচ্ছি:
অভ্যন্তরীণভাবে একটি পদ্ধতি দ্বারা ব্যবহৃত হয় এমন সংজ্ঞাগুলি সহ শ্রেণীবদ্ধ সংজ্ঞা সুযোগকে দূষিত করে এবং যার অর্থ আমার কোথাও ডকুমেন্ট করা উচিত
Task1এবংTask2এটি কেবলমাত্র অভ্যন্তরস্থদের জন্যSomeLongMethod(বা আমার কোডটি পড়ার প্রত্যেক ব্যক্তিই এই ধারণাটি অনুমান করতে হবে)দূষণকারী আইডিই স্বতঃসম্পূর্ণ (যেমন ইন্টেলিসেন্স) এমন একক
SomeLongMethodপদ্ধতিতে যা একবারে ব্যবহৃত হত ।
সুতরাং যদি আমি স্থানীয় ফাংশন মধ্যে এই পদ্ধতি কোড পৃথক
public void SomeLongMethod()
{
Task1();
Task2();
void Task1()
{
// Some task #1
...
}
void Task2()
{
// Some task #1
...
}
}
তবে এর পৃথক পদ্ধতির ত্রুটিগুলি নেই তবে এটি মূল পদ্ধতির চেয়ে ভাল (কমপক্ষে আমার জন্য) দেখাচ্ছে না।
কোন সংস্করণ আপনার জন্য SomeLongMethodআরও রক্ষণাবেক্ষণযোগ্য এবং পাঠযোগ্য এবং কেন?