আপনি কি কখনও পুট স্টেটমেন্ট টাইপ করে আপনার কোড ডিবাগ করার চেষ্টা করেছেন এবং আশা করছেন যে তারা শেষ পর্যন্ত কোথায় দেখাবে? আপনি জানেন আমি কি বলতে চাই - আপনি টাইপ করুন:
puts “This worked!"
রাখে
কোডে প্রবেশ করুন এবং তারপরে এটিকে টার্মিনালে চালান, শুধুমাত্র কিছু দেখানোর জন্য। অথবা হয়ত আপনি রুবিস্টদের কাছে উপলব্ধ অভিনব ডিবাগিং সরঞ্জামগুলির কথা শুনেছেন তবে সেগুলি চেষ্টা করতে ভয় পেয়েছেন। তাই পরিবর্তে আপনি ডিবাগিং এর স্প্যাগেটি পদ্ধতিতে যান:আপনার টেক্সট এডিটর এ কোড নিক্ষেপ করুন এবং দেখুন কি লেগেছে। সমস্যা হল, এই পদ্ধতিটি একটি সমাধানের গ্যারান্টি দেয় না।
ডিবাগিং এমন কিছু যা আপনি আপনার বাকি কোডিং জীবনের জন্য করতে যাচ্ছেন। এটা শুধু জুনিয়র devs জন্য নয়! যত তাড়াতাড়ি আপনি আপনার কোডে বাগগুলি খুঁজে পেতে সহায়তা করে এমন সরঞ্জামগুলি শিখবেন, ততই ভাল হবেন আপনি দীর্ঘমেয়াদে।
তাহলে সেখানে কি টুল আছে? যদিও অনেকগুলি পছন্দ রয়েছে, আজ আমরা একটি দুর্দান্ত সরঞ্জামের মধ্যে একটি পরীক্ষা করতে যাচ্ছি যা প্রতিটি রুবিস্টের কীভাবে ব্যবহার করতে হয় তা জানা উচিত - প্রাই৷ এটি কীভাবে কাজ করে এবং কেন এটি গুরুত্বপূর্ণ তা আমরা শিখব।
প্রাই কি?
Pry আপনার প্রোগ্রামকে হিমায়িত করে যাতে আপনি আপনার কোডের ভিতরে যেতে পারেন এবং কী ঘটছে এবং কী ঠিক করা দরকার তা খুঁজে বের করতে পারেন। প্রাই প্রথমে বিভ্রান্তিকর দেখাতে পারে, কিন্তু একজন সহকর্মী জুনিয়র রুবি দেবের কাছ থেকে এটি গ্রহণ করুন - আপনি এটি যত বেশি ব্যবহার করবেন তত সহজ হবে এবং শীঘ্রই আপনি এটি ছাড়া প্রোগ্রাম করতে চাইবেন না।
প্রাই হল স্টেরয়েডের IRB এর মত
সম্ভাবনা হল, আপনি IRB (ইন্টারেক্টিভ রুবি শেল) ব্যবহার করে স্বাচ্ছন্দ্য বোধ করেছেন যেখানে আপনি আপনার কোডটি নিতে পারেন এবং কোনটি কাজ করে এবং কোনটি নয় তা খুঁজে বের করতে এটি একটি খেলার মাঠে চালাতে পারেন। এটি ডিবাগিংয়ের জন্য একটি দরকারী টুলও হতে পারে। Pry-এর অংশ একইভাবে কাজ করে, কিন্তু অতিরিক্ত বৈশিষ্ট্য সহ। IRB এবং Pry উভয়ই REPL কমান্ড ব্যবহার করে:পড়ুন, মূল্যায়ন করুন, মুদ্রণ করুন এবং লুপ করুন। কিন্তু Pry আপনাকে ডিবাগ করার সময় আরও যেতে দেয়। উদাহরণস্বরূপ, প্রাই আপনাকে রঙ-কোডেড সিনট্যাক্স দেয়, যা কোডটি কার্যকর করা হলে কী ঘটবে তা নির্ধারণ করার চেষ্টা করার সময় সহায়তা করে। এটি ভুলগুলি চিহ্নিত করা সহজ করে তোলে, যা আপনার কোডটি ঠিক করা সহজ করে তোলে।
নমুনা কোড
ডিবাগিং সম্পর্কে একটি নোট
এটি ইতিমধ্যেই বলা হয়েছে, তবে এটি আবার বলার মতো - ডিবাগিং এমন কিছু যা সমস্ত প্রোগ্রামাররা তাদের ক্যারিয়ার জুড়ে করে। এই সরঞ্জামগুলি শেখার বিষয়ে জুনিয়র কিছুই নেই! তাই আপনি যত তাড়াতাড়ি শিখবেন, ততই ভালো একজন প্রোগ্রামার হবেন।
প্রাই দিয়ে ব্রেকপয়েন্ট সেট করা
এখন আপনার কোডে ব্রেকপয়েন্ট সেট করা - Pry-এর সবচেয়ে সেরা বৈশিষ্ট্যগুলির মধ্যে একটি দেখার সময় এসেছে। ধরুন আপনি আপনার প্রত্যাশিতভাবে আপনার কোডটি পেতে খুব কঠিন সময় পার করছেন। (আমরা সবাই সেখানে ছিলাম, তাই না?)
আপনি যা করতে পারেন তা হল কোডের অংশে একটি ব্রেকপয়েন্ট সেট করা যা প্রত্যাশিতভাবে কাজ করছে না এবং তারপরে আপনি Pry-এর একটি সংস্করণে শেষ হবেন, কিন্তু একটি বিন্দুতে যা হিমায়িত হবে। এটি ব্যাখ্যা করার সর্বোত্তম উপায় হল একটি উদাহরণ দিয়ে।
ধরুন আমরা যে ব্যবহারকারীকে দেখতে চাই তা সঠিকভাবে সেট করা আছে কিনা তা খুঁজে বের করার চেষ্টা করছি। প্রথমত, আমরা কোডে আমাদের binding.pry যোগ করতে পারি। কোডের লাইনের ঠিক উপরে binding.pry সেট করুন যা সমস্যা সৃষ্টি করছে এবং তারপর কোডটি চালান।
এরপরে, আমরা সেই পৃষ্ঠায় আঘাত করার চেষ্টা করি যা এই কোডটি ট্রিগার করবে। যেহেতু আমরা স্থানীয়ভাবে রেল সার্ভার চালাচ্ছি, তাই আমরা এখানে যাওয়ার চেষ্টা করব:localhost:3000/users/1
আপনি দেখতে পাবেন যে আপনি একটি IRB-এর মতো কনসোলে অবতরণ করেছেন যেখানে আপনি আপনার কোড পরীক্ষা করতে এবং কী ঘটছে তা দেখতে পারেন।
এই মুহুর্তে, আমরা '@user' সঠিক ব্যবহারকারী আইডিতে সেট করা আছে কিনা তা পরীক্ষা করতে সক্ষম।
আমাদের ব্যবহারকারী লগ ইন করেছেন কিনা তাও আমরা পরীক্ষা করতে পারি:
কিছু না হলে কি হবে?
কখনও কখনও আপনি আপনার ব্রেকপয়েন্টগুলি স্থাপন করবেন, আপনার কোডটি চালাবেন এবং প্রির ভিতরে অবতরণ করার পরিবর্তে, কিছুই হবে বলে মনে হচ্ছে না। যদিও এটি হতাশাজনক হতে পারে, এটি একটি সূত্র দেয়। এর মানে হল যে আপনার কোড কখনই প্রাইকে ট্রিগার করেনি কারণ এটি কখনই এতদূর যায়নি। তো তুমি কি কর? আপনি কোডের আগে একটি নতুন ব্রেকপয়েন্ট সেট করুন এবং দেখুন যে এটি কাজ করে কিনা। যদিও এটি ক্লান্তিকর মনে হতে পারে, এটি আসলে আপনাকে গুরুত্বপূর্ণ তথ্য দিচ্ছে!
কখন সাহায্য চাইতে হবে
একজন জুনিয়র রুবিস্ট হিসাবে, কখনও কখনও আপনাকে সাহায্যের জন্য আরও সিনিয়র বিকাশকারীকে জিজ্ঞাসা করতে হবে। কখন ডিবাগিং চালিয়ে যেতে হবে এবং কখন সাহায্যের জন্য কল করতে হবে তা নির্ধারণ করা সমস্যা। ডিবাগ করার সময়, সমস্যাটি প্রতিলিপি করার চেষ্টা করা একটি ভাল ধারণা। Pry দিয়ে আপনার ব্রেকপয়েন্ট সেট করুন এবং কোডের গভীরে খনন করুন। যদি 20-30 মিনিটের পরে আপনি একটি সমাধান খুঁজে পাওয়ার কাছাকাছি না থাকেন তবে এটি সাহায্যের জন্য অনুরোধ করার সময় হতে পারে৷
প্রায় চেষ্টা করে দেখুন
আপনি যখন আপনার ডিবাগিং সরঞ্জামগুলির অস্ত্রাগারে প্রাই যোগ করতে প্রস্তুত হন, তখন আপনাকে কয়েকটি জিনিস করতে হবে। প্রথমত, আপনাকে রত্নটি ইনস্টল করতে হবে। আপনি এটিকে আপনার জেমফাইলে যোগ করে এবং একটি বান্ডেল ইনস্টল চালিয়ে এটি করতে পারেন:gem 'pry'
অথবা, আপনি ম্যানুয়ালি এটি ইনস্টল করতে পারেন:gem install pry
আপনাকে নিশ্চিত করতে হবে যে আপনার কোডটি Pry আশা করছে, তাই এই লাইনটি আপনার ফাইলে রাখুন:
require 'pry'
এবং এটাই! আপনি প্রির সাথে কাজ করছেন!