Ruby on Rails-এ দুইটি মূল ধারণা, DRY (Don’t Repeat Yourself) এবং Convention over Configuration, সফটওয়্যার ডেভেলপমেন্টের মূল ভিত্তি হিসেবে কাজ করে। এই দুটি প্র্যাকটিস কোডের গুণগত মান, পারফর্ম্যান্স এবং দ্রুত ডেভেলপমেন্ট নিশ্চিত করতে সাহায্য করে।
DRY (Don’t Repeat Yourself) কী?
DRY প্রিন্সিপলটির মূল ধারণা হল কোডের পুনরাবৃত্তি (duplication) এড়ানো। একাধিক জায়গায় একই কোড বা লজিক পুনরায় লিখে ফেলা প্রোগ্রামিং এর একটি খারাপ অভ্যাস, যা কোডের ম্যানটেনেন্স এবং রিডেবিলিটি (readability) কমিয়ে দেয়। DRY প্রিন্সিপল অনুসরণ করলে কোডের পুনরাবৃত্তি এড়ানো যায়, যার ফলে কোডে পরিবর্তন আনা, বাগ ফিক্সিং এবং নতুন ফিচার যোগ করা সহজ হয়।
DRY এর মূল সুবিধা
- কোডের পরিস্কারতা: কোড সহজে পড়ে এবং বুঝতে সুবিধা হয়।
- বাগ ফিক্সিং সহজ: যদি কোনো ভুল কোড থাকে, তবে একবার পরিবর্তন করলেই সব জায়গায় প্রভাব ফেলে, তাই বাগ দ্রুত সমাধান করা যায়।
- মেইনটেনেন্স সুবিধা: কোডের রিফ্যাক্টরিং করা সহজ হয়, কারণ প্রতিটি লজিক বা ফিচার এক জায়গায় থাকে।
DRY প্রিন্সিপল বাস্তবায়ন
Ruby on Rails-এ DRY বাস্তবায়ন করার জন্য কিছু গুরুত্বপূর্ণ কৌশল রয়েছে:
1. Model-View-Controller (MVC) আর্কিটেকচার:
Rails এর MVC আর্কিটেকচার কোডের পুনরাবৃত্তি কমাতে সহায়তা করে। এর মাধ্যমে ব্যবসায়িক লজিক (Business Logic) মডেলে রাখা হয়, ভিউতে শুধু ডেটা রেন্ডার করা হয় এবং কন্ট্রোলার কার্যক্রমের প্রবাহ নিয়ন্ত্রণ করে।
2. Helper Methods:
ভিউতে কোডের পুনরাবৃত্তি এড়াতে helper methods ব্যবহার করা হয়। ভিউ-এর মধ্যে একই লজিক বা কোড বারবার ব্যবহৃত হলে, তা একটি হেল্পার মেথডে রাখলে কোড আরও পরিষ্কার এবং পুনর্ব্যবহারযোগ্য হয়।
উদাহরণ:
module ApplicationHelper
def full_title(page_title = '')
base_title = "My Rails App"
page_title.empty? ? base_title : "#{page_title} | #{base_title}"
end
end
এখানে, একই টাইটেল গঠন ভিউতে বারবার ব্যবহার করার জন্য একটি হেল্পার মেথড তৈরি করা হয়েছে।
3. Partial Views:
একই HTML কোড ভিউ ফাইলগুলিতে বারবার ব্যবহার করার পরিবর্তে partials ব্যবহার করা যায়। Partials হল ছোট অংশবিশেষ, যেগুলো ভিউ ফাইলে একাধিক জায়গায় ব্যবহার করা যায়।
উদাহরণ:
<%= render 'shared/header' %>
এখানে, _header.html.erb নামে একটি পার্টিয়াল ফাইল ব্যবহার করা হচ্ছে।
Convention over Configuration কী?
Convention over Configuration হল Ruby on Rails-এর আরেকটি মূল ধারণা, যা ডেভেলপারদের কনফিগারেশন ফাইল কমিয়ে দেয় এবং কিছু স্ট্যান্ডার্ড কনভেনশন অনুসরণ করে কাজ করতে উৎসাহিত করে। এর মাধ্যমে অ্যাপ্লিকেশন ডেভেলপমেন্ট দ্রুত হয় এবং কোডের সঠিকতা নিশ্চিত করা সহজ হয়, কারণ Rails নিজেই কিছু প্রিপসেট কনভেনশন (যেমন ফাইল নামকরণ, ডিরেক্টরি স্ট্রাকচার) অনুসরণ করে।
Convention over Configuration এর সুবিধা
- কম কনফিগারেশন: ডেভেলপারকে বেশি কনফিগারেশন করতে হয় না, কারণ Rails কিছু স্ট্যান্ডার্ড কনভেনশন ধরে রাখে।
- গতি বাড়ানো: নতুন ফিচার তৈরি করতে সময় কম লাগে কারণ Rails-এ পূর্বনির্ধারিত কনভেনশন অনুযায়ী কাজ করা হয়।
- সহজ নেভিগেশন: Rails অ্যাপ্লিকেশনের ডিরেক্টরি স্ট্রাকচার এবং ফাইল নেমিং কনভেনশন অনুসরণ করলে কোড সহজে নেভিগেট করা যায়।
Convention over Configuration এর উদাহরণ
1. ফাইল এবং ফোল্ডার স্ট্রাকচার:
Rails কিছু নির্দিষ্ট কনভেনশন অনুসরণ করে ডিরেক্টরি স্ট্রাকচার তৈরি করে। উদাহরণস্বরূপ:
- মডেল ফাইলটি
app/models/user.rbনামে রাখা হয়। - কন্ট্রোলার ফাইলটি
app/controllers/users_controller.rbনামে রাখা হয়। - ভিউ ফাইলটি
app/views/users/index.html.erbনামে রাখা হয়।
2. নামকরণ কনভেনশন:
Rails ডাটাবেস টেবিল এবং মডেলের মধ্যে সম্পর্ক নির্ধারণে কনভেনশন অনুসরণ করে। যেমন:
- মডেল
Userএবং টেবিলের নামusers। - মডেল
Postএবং টেবিলের নামposts।
3. ডিফল্ট অ্যাকশন:
Rails কনভেনশন অনুসারে, যদি একটি কন্ট্রোলারে index, show, new, create, edit, update, destroy অ্যাকশন থাকে, তবে Rails নিজে থেকেই সেই অ্যাকশনগুলিকে ডিফল্ট পেজ হিসেবে চিহ্নিত করে।
DRY এবং Convention over Configuration এর মধ্যে সম্পর্ক
DRY এবং Convention over Configuration একে অপরের পরিপূরক। DRY কোডের পুনরাবৃত্তি এড়াতে সহায়তা করে, এবং Convention over Configuration ডেভেলপারকে স্ট্যান্ডার্ড কনভেনশন অনুসরণ করতে উৎসাহিত করে, যা কোডের ম্যানটেনেন্স সহজ করে এবং দ্রুত ডেভেলপমেন্টে সাহায্য করে। দুটো প্রিন্সিপল মিলে কোডের গুণগত মান নিশ্চিত করে এবং ডেভেলপমেন্ট প্রক্রিয়াকে আরও দক্ষ ও দ্রুত করে তোলে।
সারমর্ম
Ruby on Rails-এ DRY এবং Convention over Configuration দুটি গুরুত্বপূর্ণ ধারণা, যা কোডের গুণগত মান এবং ডেভেলপমেন্টের গতি বাড়াতে সহায়ক। DRY প্রিন্সিপল কোডের পুনরাবৃত্তি এড়ানোর মাধ্যমে কোড ক্লিন এবং মেইনটেনেবল রাখে, এবং Convention over Configuration ডেভেলপারকে স্ট্যান্ডার্ড কনভেনশন অনুসরণ করতে সহায়তা করে, যা কোডের সঠিকতা এবং দ্রুত ডেভেলপমেন্ট নিশ্চিত করে। এই দুটি প্রিন্সিপল একত্রে ব্যবহৃত হলে সফটওয়্যার ডেভেলপমেন্ট আরও কার্যকরী এবং দক্ষ হয়ে ওঠে।
Read more