byebug এবং pry দুটি জনপ্রিয় Ruby gem যা ডিবাগিং প্রক্রিয়া সহজ এবং কার্যকর করতে ব্যবহৃত হয়। তারা টেস্ট লেখার সময় বা কোড রান করার সময় প্রবাহকে থামাতে এবং ভেরিয়েবলগুলি পরীক্ষা করতে সাহায্য করে। Test debugging হল একটি গুরুত্বপূর্ণ প্রক্রিয়া যা কোডের ত্রুটি খুঁজে বের করতে সহায়ক এবং এই দুটি টুল ডেভেলপারদের সাহায্য করে ত্রুটি সনাক্ত করতে এবং কোডের আচরণ বুঝতে।
১. byebug এর মাধ্যমে Test Debugging
byebug হল একটি শক্তিশালী ডিবাগার যা Ruby কোডের মধ্যে ব্রেকপয়েন্ট সেট করতে এবং কোডের চলাচল থামাতে ব্যবহৃত হয়। এটি ডেভেলপারদের কোডের ভেতরে প্রবাহ পরীক্ষা করতে সহায়ক। byebug সাধারণত কোডের মধ্যে কোথাও binding.byebug ব্যবহার করা হয় যেখানে আপনি টেস্ট চলাকালে কোডের অবস্থা পরীক্ষা করতে চান।
byebug ইনস্টলেশন
byebug ব্যবহার করতে হলে, প্রথমে আপনাকে এটি ইনস্টল করতে হবে। Gemfile-এ এটি যোগ করুন:
group :development, :test do
gem 'byebug'
endতারপর, bundle install চালান:
bundle installbyebug ব্যবহার
টেস্টের মধ্যবর্তী কোন স্থানে ব্রেকপয়েন্ট সেট করতে, আপনি binding.byebug ব্যবহার করতে পারেন। এর মাধ্যমে কোড থেমে যাবে এবং আপনি ডিবাগিং করতে পারবেন।
উদাহরণ:
RSpec.describe User do
it "should have a valid email address" do
user = User.new(name: "John", email: "invalid_email")
binding.byebug # কোড এখানে থামবে
expect(user.valid?).to be_falsey
end
endএখানে, binding.byebug যোগ করার ফলে কোড যখন এই লাইনে পৌঁছাবে, তখন আপনি টার্মিনালে ইনপুট নিতে পারবেন এবং ভেরিয়েবলগুলি চেক করতে পারবেন।
byebug কমান্ডসমূহ
- n: পরবর্তী লাইনটি চালান (next line).
- c: কোড চালিয়ে যান (continue).
- s: ফাংশন/মেথডে প্রবেশ করুন (step into).
- p variable: ভেরিয়েবলের মান দেখুন (print value).
- q: ডিবাগিং সেশন থেকে বেরিয়ে আসুন (quit).
এগুলি ব্যবহার করে আপনি কোডের চলাচল এবং ভেরিয়েবলের মান পরীক্ষা করতে পারবেন।
২. pry এর মাধ্যমে Test Debugging
pry একটি আরও উন্নত Ruby ডিবাগিং টুল যা byebug এর থেকে অনেক বেশি ইন্টারঅ্যাকটিভ। এটি একটি রিচ ইন্টারপ্রেটার, যা ডিবাগিং, কোড ইনস্পেকশন এবং প্রোগ্রাম স্টেট পরীক্ষা করার জন্য ব্যবহার করা হয়। pry ডিবাগিং সেশনে ভেরিয়েবল পরীক্ষা করতে এবং কোডের প্রবাহ নিয়ন্ত্রণ করতে সাহায্য করে।
pry ইনস্টলেশন
প্রথমে, pry এবং pry-byebug ইনস্টল করতে হবে:
group :development, :test do
gem 'pry'
gem 'pry-byebug'
endতারপর, bundle install চালান:
bundle installpry ব্যবহার
pry ব্যবহার করতে, আপনি আপনার কোডে binding.pry লিখতে পারেন, যেখানে আপনি কোড থামাতে চান এবং ডিবাগিং শুরু করতে চান।
উদাহরণ:
RSpec.describe User do
it "should have a valid email address" do
user = User.new(name: "John", email: "invalid_email")
binding.pry # কোড এখানে থামবে
expect(user.valid?).to be_falsey
end
endএখানে, binding.pry এর মাধ্যমে কোড থেমে যাবে এবং আপনি ইন্টারেকটিভভাবে ভেরিয়েবলগুলির মান পরীক্ষা করতে পারবেন।
pry কমান্ডসমূহ
- exit: Pry সেশন বন্ধ করুন এবং কোড চালিয়ে যান।
- next: পরবর্তী লাইনটি চালান।
- step: মেথড/ফাংশনে প্রবেশ করুন।
- continue: কোড চালিয়ে যান।
- ls: বর্তমান স্কোপের সমস্ত ভেরিয়েবল দেখুন।
- cd: অন্য অবজেক্টের স্কোপে যান।
- show-method: একটি মেথডের কোড দেখুন।
এছাড়াও, আপনি pry সেশনে কাস্টম কমান্ডও লিখতে পারেন এবং ভেরিয়েবলগুলির পরিবর্তনও করতে পারেন।
৩. byebug এবং pry এর তুলনা
| ফিচার | byebug | pry |
|---|---|---|
| ইন্টারঅ্যাকটিভ | সীমিত (কেবল কমান্ড লাইন) | পূর্ণ ইন্টারঅ্যাকটিভ Ruby REPL |
| ডিবাগিং প্রক্রিয়া | সহজ, লাইন-বাই-লাইন ডিবাগিং | আরও শক্তিশালী, স্কোপ পরিবর্তন, মেথড ইন্সপেকশন |
| কাস্টমাইজেশন | কম কাস্টমাইজেশন | অনেক বেশি কাস্টমাইজেশন সুবিধা (কাস্টম কমান্ড) |
| ফাংশনালিটি | মেথড কল ট্র্যাকিং, ব্রেকপয়েন্ট | স্কোপ এক্সপ্লোর, কোড রান এবং ফাংশন ডেফিনেশন |
৪. Test Debugging টিপস
binding.byebugবাbinding.pryব্যবহার করে কোড থামান: আপনার কোডের কোন অংশে সমস্যা হচ্ছে তা নির্ধারণ করতে প্রোগ্রামের মধ্যে ব্রেকপয়েন্ট ব্যবহার করুন।- ভেরিয়েবলের মান চেক করুন:
pবাlsকমান্ড ব্যবহার করে ভেরিয়েবলের মান পরীক্ষা করুন। - স্টেপ থ্রু করুন:
nextবাstepব্যবহার করে কোডের প্রতিটি অংশ একে একে চালিয়ে দেখুন, যাতে সমস্যা কোথায় ঘটছে বুঝতে পারেন। - আউটপুট দেখতে
putsব্যবহার করুন: কখনও কখনওputsব্যবহার করে ইনপুট এবং আউটপুট দেখাও সাহায্য করতে পারে। - কোডের লগ আউটপুট পর্যবেক্ষণ করুন: কোডের বিভিন্ন অংশে
putsযোগ করে অ্যাপ্লিকেশনের চলাচল এবং ভেরিয়েবলের মান ট্র্যাক করুন।
সারাংশ
- byebug এবং pry হল দুটি জনপ্রিয় টুল যা Ruby কোড ডিবাগিং সহজ করে তোলে।
- byebug বেশি ব্যবহার হয় যখন সরল ব্রেকপয়েন্ট এবং স্টেপ-বাই-স্টেপ ডিবাগিং করতে হয়, যেখানে pry আরও ইন্টারঅ্যাকটিভ এবং স্কোপ পরিবর্তন, মেথড ইন্সপেকশন, এবং কাস্টম কমান্ডের জন্য উপযুক্ত।
- এই দুটি টুল ব্যবহার করে আপনি আপনার কোডের ত্রুটি চিহ্নিত করতে পারবেন এবং আরও কার্যকরীভাবে ডিবাগ করতে পারবেন।
Read more