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 ভিত্তিক উপাদানগুলিকে আলাদা করে রাখে।
- controllers/:
ব্যবহারকারীর রিকোয়েস্ট প্রক্রিয়াকরণ এবং মডেল ও ভিউয়ের মধ্যে সমন্বয় করে।
উদাহরণ:app/controllers/application_controller.rb। - models/:
ডেটাবেস এবং ব্যবসায়িক লজিক সংক্রান্ত কার্যক্রম পরিচালনা করে।
উদাহরণ:app/models/user.rb। - views/:
অ্যাপ্লিকেশনের ইউজার ইন্টারফেস। এটি ব্যবহারকারীদের জন্য HTML পৃষ্ঠাগুলি তৈরি করে।
উদাহরণ:app/views/welcome/index.html.erb। - assets/:
CSS, JavaScript, এবং ইমেজসহ স্ট্যাটিক ফাইল সংরক্ষণ করে।
উদাহরণ:app/assets/stylesheets/application.css। - helpers/:
ভিউতে ব্যবহৃত পুনরাবৃত্ত কোডগুলো সংরক্ষণ করে।
উদাহরণ:app/helpers/application_helper.rb। - mailers/:
ইমেল সংক্রান্ত লজিক পরিচালনার জন্য ব্যবহৃত হয়।
উদাহরণ:app/mailers/user_mailer.rb। - channels/:
রিয়েল-টাইম ফিচারের জন্য ActionCable ব্যবহার করে।
উদাহরণ:app/channels/application_cable/connection.rb।
bin/
Rails সার্ভার এবং অন্যান্য স্ক্রিপ্ট চালানোর জন্য এক্সিকিউটেবল ফাইল সংরক্ষণ করে।
উদাহরণ: bin/rails।
config/
অ্যাপ্লিকেশনের কনফিগারেশন ফাইল এবং রাউটিং তথ্য এখানে থাকে।
- routes.rb:
অ্যাপ্লিকেশনের রাউটিং সংজ্ঞায়িত করে। - database.yml:
ডেটাবেস সংক্রান্ত কনফিগারেশন সংরক্ষণ করে। - environments/:
ডেভেলপমেন্ট, প্রোডাকশন, এবং টেস্টিং এনভায়রনমেন্টের সেটিংস।
db/
ডেটাবেস সংক্রান্ত ফাইল এবং মাইগ্রেশন স্ক্রিপ্ট সংরক্ষণ করে।
- schema.rb:
ডেটাবেসের বর্তমান স্ট্রাকচার সংরক্ষণ করে। - migrate/:
মাইগ্রেশন ফাইল সংরক্ষণ করে।
lib/
কাস্টম কোড এবং মডিউল সংরক্ষণ করার জন্য ব্যবহৃত হয়।
- lib/tasks/:
কাস্টম Rake টাস্ক সংরক্ষণ করে।
log/
অ্যাপ্লিকেশনের লগ ফাইল সংরক্ষণ করে।
উদাহরণ: log/development.log।
public/
স্ট্যাটিক ফাইল যেমন HTML এবং অ্যাসেট সংরক্ষণ করে, যা সরাসরি ব্রাউজার অ্যাক্সেস করতে পারে।
উদাহরণ: public/404.html।
storage/
Active Storage এর মাধ্যমে আপলোড করা ফাইল সংরক্ষণ করে।
test/ বা spec/
Rails এর টেস্টিং কাঠামো (Minitest বা RSpec) এর ফাইল সংরক্ষণ করে।
tmp/
অস্থায়ী ফাইল এবং ক্যাশ সংরক্ষণ করে।
vendor/
তৃতীয় পক্ষের জেম এবং প্যাকেজ সংরক্ষণ করে।
ডিরেক্টরি স্ট্রাকচারের সুবিধা
- অ্যাপ্লিকেশন সংগঠিত থাকে।
- ডেভেলপাররা সহজে কাজ ভাগ করতে পারে।
- ডিরেক্টরি ভিত্তিক কাঠামো মডিউলার কোডিং নিশ্চিত করে।
Rails এর এই ডিরেক্টরি স্ট্রাকচার অ্যাপ্লিকেশন ডেভেলপমেন্টকে দ্রুত এবং কার্যকর করে তোলে।
Read more