SOLID Principles (সলিড প্রিন্সিপাল)
SOLID হলো পাঁচটি ডিজাইন প্রিন্সিপাল যা সফ্টওয়্যার ডিজাইনকে আরও ফ্লেক্সিবল, স্কেলেবল এবং মেইনটেইনেবল করে।
১. S - Single Responsibility (SRP)
একটি ক্লাসের শুধুমাত্র একটি নির্দিষ্ট কাজ থাকতে হবে। একাধিক দায়িত্ব একটি ক্লাসে রাখা যাবে না।
২. O - Open/Closed (OCP)
সফ্টওয়্যার এনটিটি (ক্লাস, মডিউল) নতুন ফিচার যোগ করার জন্য ওপেন থাকবে, কিন্তু তার অভ্যন্তরীণ কোড পরিবর্তন করার জন্য ক্লোজ থাকবে।
৩. L - Liskov Substitution (LSP)
একটি প্যারেন্ট ক্লাসের অবজেক্টকে তার চাইল্ড ক্লাসের অবজেক্ট দিয়ে রিপ্লেস করা সম্ভব হতে হবে, যেন প্রোগ্রামের কোনো লজিক ভেঙে না যায়।
৪. I - Interface Segregation (ISP)
ইউজারকে এমন কোনো ইন্টারফেস ব্যবহার করতে বাধ্য করা উচিত নয় যা তার প্রয়োজন নেই। বড় ইন্টারফেসের বদলে ছোট এবং নির্দিষ্ট ইন্টারফেস ব্যবহার করা ভালো।
৫. D - Dependency Inversion (DIP)
হাই-লেভেল মডিউলগুলো লো-লেভেল মডিউলের ওপর সরাসরি নির্ভর করবে না; উভয়েই অ্যাবস্ট্রাকশনের ওপর নির্ভর করবে।
কেন শিখবেন?
- কোড রিইউজেবিলিটি বাড়ে।
- বাগ ফিক্স করা সহজ হয়।
- বড় টিমে কাজ করার সময় কনফ্লিক্ট কমে।
TIP
প্রিন্সিপালগুলো প্রথমবার শুনে কঠিন মনে হতে পারে, কিন্তু রিয়েল কোডে ইম্প্লিমেন্ট করলে এগুলো আপনার কোডিং স্টাইলকে বদলে দেবে।