Python:
রিফ্যাক্টরিং
কিভাবে:
ধরুন, আপনার একটি কোডের খণ্ড আছে যা একটি আয়তক্ষেত্রের দৈর্ঘ্য এবং প্রস্থ প্রদত্ত এর ক্ষেত্রফল এবং পরিধি হিসেব করে এবং মুদ্রণ করে। এটি কাজটি করে, কিন্তু এটি পুনরাবৃত্তিমূলক এবং একটু অগোছালো।
# মূল সংস্করণ
দৈর্ঘ্য = 4
প্রস্থ = 3
# ক্ষেত্রফল এবং পরিধি হিসাব
ক্ষেত্রফল = দৈর্ঘ্য * প্রস্থ
পরিধি = 2 * (দৈর্ঘ্য + প্রস্থ)
print("ক্ষেত্রফল:", ক্ষেত্রফল)
print("পরিধি:", পরিধি)
আমরা এটি ফাংশনে কার্যকারিতা ক্যাপসুলেট করে এই কোডটি রিফ্যাক্টর করতে পারি, যা কোডকে আরও সংগঠিত এবং পুনঃব্যবহারযোগ্য করে তোলে:
# রিফ্যাক্টরড সংস্করণ
def calculate_area(দৈর্ঘ্য, প্রস্থ):
return দৈর্ঘ্য * প্রস্থ
def calculate_perimeter(দৈর্ঘ্য, প্রস্থ):
return 2 * (দৈর্ঘ্য + প্রস্থ)
# ব্যবহার
দৈর্ঘ্য = 4
প্রস্থ = 3
print("ক্ষেত্রফল:", calculate_area(দৈর্ঘ্য, প্রস্থ))
print("পরিধি:", calculate_perimeter(দৈর্ঘ্য, প্রস্থ))
উভয় স্নিপেট একই ফলাফল প্রদর্শন করে:
ক্ষেত্রফল: 12
পরিধি: 14
তবে রিফ্যাক্টর সংস্করণটি পরিষ্কার এবং উদ্বেগ পৃথক করে, একটি হিসাব আপডেট করা অন্যটি প্রভাবিত না করে সহজ করে তোলে।
গভীর ডুব
রিফ্যাক্টরিং এর মূল হলো সফটওয়্যার ইঞ্জিনিয়ারিংয়ের প্রাথমিক দিনগুলিতে, যখন প্রোগ্রামাররা উপলব্ধি করেছিল যে কোডে উন্নতি করা সম্ভব—এবং উচিত—এমনকি যদি তা “কাজ” করতে থাকে। মার্টিন ফাউলারের মৌলিক বই “রিফ্যাক্টরিং: বিদ্যমান কোডের নকশা উন্নতি” অনেক মৌলিক নীতি এবং কৌশল ব্যাখ্যা করেছে। তিনি বিখ্যাত বলেছিলেন, “যে কোনো বোকা এমন কোড লিখতে পারে যা একটি কম্পিউটার বুঝতে পারে। ভালো প্রোগ্রামাররা এমন কোড লিখে যা মানুষ বুঝতে পারে।”
রিফ্যাক্টরিংয়ের বিকল্পগুলি অন্তর্ভুক্ত হতে পারে কোডরে পুনরায় লিখন বা পদ্ধতিগত উন্নতি ছাড়াই সামান্য পরিবর্তন। তবে, পুনরায় লিখনের তুলনায় রিফ্যাক্টরিং সাধারণত কম ব্যয়বহুল এবং অধ্যায় মোডিফিকেশনের চেয়ে কম ঝুঁকির। বাস্তবায়নের বিবরণ প্রতিটি প্রোগ্রামিং প্যারাডাইমে বিশেষ হতে পারে; তবে, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং বিশেষত রিফ্যাক্টরিংের জন্য বিশেষভাবে উপযোগী, বিশেষ করে মেথড (যেমন আমাদের calculate_area
এবং calculate_perimeter
ফাংশনগুলি) এক্সট্র্যাক্টিং, ইনলাইন, অবজেক্টের মধ্যে বৈশিষ্ট্য সরানো, এবং স্পষ্টতা জন্য মেথড বা ভেরিয়েবলগুলির নাম পরিবর্তন করা যেমন পদ্ধতিগুলির সাথে নিজেকে ভালভাবে প্রকাশ করে।
পাইথনে রিফ্যাক্টরিং প্রায়শই PyCharm
, যা রিফ্যাক্টরিং ক্ষমতাসম্পন্ন বিলট-ইন সাথে আসে, অথবা rope
, রিফ্যাক্টরিংের জন্য বিশেষভাবে ডিজাইন করা একটি পাইথন লাইব্রেরি ব্যবহার করে। রিফ্যাক্টরিংের সময় পরিবর্তনগুলি ধাপে ধাপে অনুসরণ করার জন্য git
এর মতো সংস্করণ নিয়ন্ত্রণের সাবধানবান ব্যবহার খুবই প্রস্তাবিত।
আরও দেখুন
যারা আরও জানতে আগ্রহী, নিম্নলিখিত সম্পদগুলির মধ্যে ডুব দিন:
- মার্টিন ফাউলারের বই: রিফ্যাক্টরিং: বিদ্যমান কোডের নকশা উন্নতি
- পাইথন রিফ্যাক্টরিং সাথে
rope
: GitHub - rope - পাইচার্ম রিফ্যাক্টরিং ডকুমেন্টেশন: Jetbrains PyCharm Refactoring Source Code
- Refactoring.guru: রিফ্যাক্টরিং এবং ডিজাইন প্যাটার্ন
- আঙ্কেল বব (রবার্ট সি. মার্টিন) এর ক্লিন কোড লেকচার: ক্লিন কোড - আঙ্কেল বব / লেসন 1