Red-Green-Refactor চক্র হলো Test-Driven Development (TDD) এর একটি গুরুত্বপূর্ণ কৌশল। এটি সফটওয়্যার ডেভেলপমেন্টে একটি চক্র হিসেবে কাজ করে, যেখানে প্রথমে টেস্ট লেখা হয়, তারপর কোড লেখা হয় এবং অবশেষে কোড রিফ্যাক্টরিং করা হয়। এই চক্রটি ডেভেলপারকে নিশ্চিত করতে সাহায্য করে যে কোডটি সঠিকভাবে কাজ করছে এবং অপরিবর্তিত রাখার জন্য নিরাপদ।
এটি তিনটি প্রধান ধাপে বিভক্ত:
- Red (টেস্ট লেখা) – প্রথমে একটি ব্যর্থ টেস্ট লেখা হয়।
- Green (কোড লেখা) – কোড লেখা হয় যাতে টেস্টটি পাস করতে পারে।
- Refactor (কোড রিফ্যাক্টরিং) – কোডটি পরিষ্কার এবং উন্নত করতে রিফ্যাক্টর করা হয়।
এখন, আসুন প্রতিটি ধাপ বিস্তারিতভাবে আলোচনা করি:
১. Red (টেস্ট লেখা)
এই ধাপে, আপনি একটি নতুন বৈশিষ্ট্য বা ফিচারের জন্য একটি টেস্ট লেখেন। কিন্তু বর্তমানে সেই বৈশিষ্ট্যটি কোডে নেই, তাই টেস্টটি ব্যর্থ হবে, অর্থাৎ "Red" হবে। এটি আপনাকে একটি স্পষ্ট দিশা দেয়, যেটি হচ্ছে — কোডটি এখনো সেই ফিচারটি সম্পূর্ণ করে না।
উদাহরণ:
ধরা যাক, আপনি একটি Calculator ক্লাস তৈরি করতে চান, যা দুটি সংখ্যার যোগফল ফেরত দিবে।
# spec/calculator_spec.rb
describe Calculator do
it "দুটি সংখ্যার যোগফল সঠিকভাবে বের করে" do
calc = Calculator.new
expect(calc.add(2, 3)).to eq(5)
end
endএখন, আমরা জানি যে Calculator ক্লাস এবং add মেথড এখনও কোডে নেই। ফলে টেস্টটি ব্যর্থ হবে এবং আউটপুট হবে **"Red"**।
২. Green (কোড লেখা)
এই ধাপে, আপনি কোড লেখেন যাতে টেস্টটি সফলভাবে চলে (অর্থাৎ, "Green" হয়)। এটি কেবলমাত্র এমন কোড লেখা যাতে নির্দিষ্ট টেস্টটি পাস করে।
উদাহরণ:
এখন, আপনি Calculator ক্লাস এবং add মেথড তৈরি করেন যা দুটি সংখ্যার যোগফল ফেরত দেয়।
# calculator.rb
class Calculator
def add(a, b)
a + b
end
endএখন, যদি আপনি টেস্ট রান করেন, তাহলে এটি Green হবে, কারণ কোডটি কাজ করছে এবং টেস্টটি পাস করছে।
৩. Refactor (কোড রিফ্যাক্টরিং)
এখন, আপনি কোডটি রিফ্যাক্টর করেন। অর্থাৎ, আপনি কোডের গঠন বা স্টাইল উন্নত করেন, তবে কার্যকারিতায় কোনো পরিবর্তন আনেন না। এই ধাপটি শুধুমাত্র কোডের পরিষ্কারতা এবং ব্যবস্থাপনা উন্নত করার জন্য ব্যবহৃত হয়।
উদাহরণ:
ধরা যাক, আপনার কোড এখন সহজ, তবে আপনি একাধিক মেথড যোগ করতে চাইছেন, যেমন বিয়োগ, গুণন, ভাগফল। আপনি কোডটি আরও পরিষ্কার এবং মডুলার করতে চাইছেন।
# calculator.rb
class Calculator
def add(a, b)
a + b
end
def subtract(a, b)
a - b
end
def multiply(a, b)
a * b
end
def divide(a, b)
a / b
end
endএখানে, কোডের কার্যকারিতা পরিবর্তন না করে আমরা কোডের গঠন উন্নত করেছি, যাতে এটি আরও পরিষ্কার এবং পরিচালনাযোগ্য হয়।
পুরো চক্র
এখন, এই চক্রটি পুনরাবৃত্তি হতে থাকে। আপনি আরও নতুন বৈশিষ্ট্য বা ফিচারের জন্য টেস্ট লেখেন, তারপর কোড লেখেন এবং অবশেষে কোড রিফ্যাক্টর করেন।
সারাংশ
Red-Green-Refactor চক্র হলো TDD প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ, যা ডেভেলপারকে তার কোডের গুণগত মান এবং কার্যকারিতা যাচাই করতে সহায়তা করে। এটি আপনাকে প্রথমে টেস্ট লেখা, পরে কোড লেখা, এবং শেষে কোড রিফ্যাক্টরিং করার মাধ্যমে একটি পরিষ্কার, কার্যকর এবং ত্রুটিমুক্ত কোড তৈরি করতে সহায়ক। TDD এর এই চক্রটি সফটওয়্যার ডেভেলপমেন্টে বিশ্বাসযোগ্যতা এবং কোডের স্থায়িত্ব নিশ্চিত করে।
Read more