রুবি অন রেইল (Ruby on Rails) একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে। প্রতিটি রেইল অ্যাপ্লিকেশনে একটি নির্দিষ্ট ডিরেক্টরি স্ট্রাকচার থাকে যা অ্যাপ্লিকেশনটির কোড এবং রিসোর্স ম্যানেজমেন্ট সহজ করে তোলে। এই ফোল্ডার গঠন ডেভেলপারদের জন্য অ্যাপ্লিকেশনটির ভিন্ন ভিন্ন অংশ আলাদা করে সংরক্ষণ এবং পরিচালনা করতে সহায়তা করে।
Rails অ্যাপ্লিকেশন ফোল্ডার গঠন
project_name/
├── app/
│ ├── assets/
│ ├── controllers/
│ ├── helpers/
│ ├── mailers/
│ ├── models/
│ ├── views/
│ └── channels/
├── bin/
├── config/
├── db/
├── lib/
├── log/
├── public/
├── storage/
├── test/ বা spec/
├── tmp/
└── vendor/
মূল ফোল্ডার এবং তাদের ভূমিকা
app/
এই ফোল্ডারটি Rails অ্যাপ্লিকেশনের মূল কোড ধারণ করে, যেখানে MVC আর্কিটেকচারের তিনটি উপাদান সংরক্ষিত থাকে।
- assets/:
এখানে CSS, JavaScript, এবং ইমেজ ফাইল থাকে। এগুলো ওয়েব অ্যাপ্লিকেশনের ফ্রন্টএন্ড রিসোর্স।
উদাহরণ:app/assets/stylesheets/application.css। - controllers/:
এখানে রিকোয়েস্টের জন্য কন্ট্রোলার ফাইল থাকে, যা ইউজারের রিকোয়েস্ট প্রক্রিয়া করে এবং মডেল এবং ভিউয়ের মধ্যে সমন্বয় করে।
উদাহরণ:app/controllers/application_controller.rb। - models/:
মডেলগুলি ডেটাবেস এবং ব্যবসায়িক লজিক পরিচালনা করে। মডেল ডেটা তৈরি, পড়া, আপডেট এবং মুছে ফেলার কার্যক্রম করে।
উদাহরণ:app/models/user.rb। - views/:
এখানে ইউজার ইন্টারফেসের জন্য ভিউ টেমপ্লেট থাকে। ভিউ ফাইল HTML বা অন্যান্য ফরম্যাটে ডেটা প্রেরণ এবং উপস্থাপন করে।
উদাহরণ:app/views/welcome/index.html.erb। - helpers/:
এখানে ভিউ টেমপ্লেটের জন্য পুনরাবৃত্ত কোড এবং ইউটিলিটি ফাংশন থাকে।
উদাহরণ:app/helpers/application_helper.rb। - mailers/:
এখানে ইমেল সম্পর্কিত কার্যক্রম থাকে। ব্যবহারকারীদের জন্য ইমেল পাঠানোর জন্য লজিক পরিচালনা করে।
উদাহরণ:app/mailers/user_mailer.rb। - channels/:
Action Cable এর মাধ্যমে রিয়েল-টাইম কমিউনিকেশন সম্পর্কিত ফাইল থাকে।
উদাহরণ:app/channels/application_cable/connection.rb।
bin/
এই ফোল্ডারটি এক্সিকিউটেবল স্ক্রিপ্ট ধারণ করে, যেমন rails এবং rake কমান্ড। এগুলি অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়।
config/
এই ফোল্ডারে অ্যাপ্লিকেশনের কনফিগারেশন ফাইল থাকে, যেখানে ডাটাবেস সংযোগ, রাউটিং, এবং অন্যান্য পরিবেশগত সেটিংস সংরক্ষণ করা হয়।
- routes.rb:
রাউটিং কনফিগারেশন থাকে, যা URL রিকোয়েস্ট কন্ট্রোলারে ম্যাপ করে। - database.yml:
ডেটাবেস সংক্রান্ত কনফিগারেশন থাকে। - environments/:
ডেভেলপমেন্ট, প্রোডাকশন, এবং টেস্টিং এনভায়রনমেন্টের কনফিগারেশন।
db/
ডেটাবেস সংক্রান্ত ফাইল এবং মাইগ্রেশন ফাইল এখানে থাকে। মাইগ্রেশন ফাইলগুলি ডেটাবেস স্ট্রাকচার আপডেট করে।
- migrate/:
মাইগ্রেশন ফাইল যেখানে ডেটাবেসের স্ট্রাকচার পরিবর্তন করা হয়। - seeds.rb:
ডেটাবেসে প্রাথমিক ডেটা ইনসার্ট করার জন্য ব্যবহৃত হয়।
lib/
কাস্টম লাইব্রেরি, টুলস এবং ইউটিলিটি কোড সংরক্ষিত থাকে। এখানে আপনার নিজস্ব কোড, যেটি অ্যাপ্লিকেশনের মূল অংশ না হলেও প্রয়োজনীয়, রাখা হয়।
- lib/tasks/:
কাস্টম Rake টাস্ক সংরক্ষণ করা হয়।
log/
অ্যাপ্লিকেশনের লগ ফাইল এখানে থাকে, যা ডিবাগিং এবং ট্রাবলশুটিংয়ের জন্য ব্যবহৃত হয়।
উদাহরণ: log/development.log।
public/
স্ট্যাটিক ফাইল যেমন HTML, ইমেজ, এবং JavaScript ফাইল থাকে। এই ফাইলগুলি সরাসরি ইউজারদের কাছে এক্সপোজ করা হয়।
উদাহরণ: public/404.html।
storage/
Active Storage এর মাধ্যমে আপলোড করা ফাইল এখানে সংরক্ষণ হয়। এটি ফাইলগুলির স্টোরেজ এবং পরিচালনার জন্য ব্যবহৃত হয়।
test/ বা spec/
এই ফোল্ডারটি অ্যাপ্লিকেশনের টেস্ট ফাইল ধারণ করে, যেখানে টেস্ট কেসগুলো লেখা হয়। এটি কোডের গুণগত মান নিশ্চিত করতে ব্যবহৃত হয়।
tmp/
অস্থায়ী ফাইল এবং ক্যাশ সংরক্ষণ করে, যেমন টেম্পরারি লগ, সেশন ফাইল ইত্যাদি।
vendor/
তৃতীয় পক্ষের জেম এবং লাইব্রেরি সংরক্ষণ করে, যা অ্যাপ্লিকেশনে ব্যবহৃত হয়।
Rails অ্যাপ্লিকেশন ফোল্ডার গঠনের সুবিধা
- কাঠামোগত আর্কিটেকচার:
MVC প্যাটার্ন অনুসরণ করার ফলে অ্যাপ্লিকেশনটি সুনির্দিষ্ট এবং মডিউলার থাকে। - সহজ মেইনটেনেন্স:
কোড এবং ফাইলগুলো আলাদা আলাদা ফোল্ডারে রাখা হয়, যাতে কোড পরিবর্তন সহজ হয়। - সহজ ডিবাগিং:
লগ ফাইল এবং টেস্ট ফোল্ডারের মাধ্যমে ডিবাগিং সহজ হয়।
সারমর্ম
Ruby on Rails অ্যাপ্লিকেশন ডিরেক্টরি স্ট্রাকচার কোডের গঠন এবং ব্যবস্থাপনা সহজ করে, যা ডেভেলপারদের কাজকে আরো কার্যকর এবং সুষ্ঠু করে তোলে। Rails ফোল্ডার গঠন MVC প্যাটার্নের উপর ভিত্তি করে, যেখানে কোড, ডেটা এবং ইউজার ইন্টারফেসের সকল উপাদান আলাদা রাখা হয়।
Read more