Design Patterns কি এবং কেন শিখবো ?

একটি কাল্পনিক সফটওয়্যার আর্কিটেকচার । শুধু নজর করে দেখুন আর নিজেরটা কল্পনা করুন।
শুরুতেই বলি Design Pattern কোন স্পেসিফিক Programming language এর টপিক না । এটা কিছু স্ট্যান্ডার্ড সফটওয়্যার Designing Concept প্রেজেন্ট করে। যেকোনো জটিল সিস্টেম সঠিক Design pattern ফলো করে Design করলে সেটা ডেভেলপ করা সহজ হয়, ভাল পারফর্মেন্স পাওয়া যায়, এবং সবচেয়ে গুরুত্বপূর্ণ সিস্টেম মেইন্টেইন, এক্সটেনশন করা আরো সহজ হয়। সোজা কথায় Design pattern হচ্ছে সফটওয়্যার সিস্টেম আর্কিটেকচার ।

ঢাকার রাস্তার কথা চিন্তা করতে পারেন, সঠিক প্ল্যানিং ছাড়া রাস্তা বানিয়ে জ্যামে বসিয়ে যাত্রীদের ঘাম ছুটিয়ে ছাড়ছেন। নতুন করে অত্যাধুনিক এতো লেন, ওতো কিলোমিটার, অমুক তলা, তমুক টার্নের ফ্লাইওভার বানিয়েও খুব একটা কাজে আসছে না । কারণ পূর্বের ভুল প্ল্যানিং। গোঁড়ার গলদ মাথায় চড়ে সংস্কার করা কঠিন, অনেকসময় সংস্কারের থেকে আবার গোঁড়া থেকে শুরু করা সহজ।

যায় হোক আমি ঢাকার রাস্তা ঠিক করবো না সেটা নগরপিতারা বুঝবে। আমি আমার কথাই আসি, আমরা কোন সফটওয়্যার সিস্টেম তৈরি করার জন্য কিন্তু শুরুতেই Create New Project খুলে কোড করতে বসে যাবো না । আমরা সিস্টেমের রিকোয়ারমেন্ট বুঝবো, কাজ গুলো ছোট ছোট মডিউলে ভাগ করবো, ডিপেন্ডেন্সি এনালাইসিস করে Intra module এবং Inter module উপযুক্ত Design Pattern ফলো করে খসড়া UML ডিজাইন করবেন। তখন UML দেখলেই আপনি খালি চোখে দেখতে পারবেন কাকে Interface বানাতে হবে, কোনটা Abstract না Concrete Class হবে, কাকে কার থেকে বা কোথায় Extends বা Implement করতে হবে, কাকে কার মধ্যে Associate করতে হবে, কাকে কোন Access Modifier দিবেন । এখন আপনি মডিউল ধরে ধরে কোড লিখবেন এবং অনেক দ্রুত প্রোজেক্ট সম্পন্ন করতে পারবেন। গ্রেট প্রোগ্রামাররা কোডিং এর থেকে সিস্টেম ডিজাইনিং এ বেশি সময় দিয়ে থাকে । এর মহত্ত্ব Eoin Woods এর কথা থেকেই বোঝা যায় -
Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled ― Eoin Woods
এটা এতোই গুরুত্বপূর্ণ যে ৩ মাস আর কিছু না করে এগুলা আয়ত্ত করলে নিঃসন্দেহে বলা যায় সময়ের সঠিক ব্যবহার হয়েছে । আর কেউ যদি সুস্পষ্ট ভাবে OOP বুঝতে চাই তার জন্য এটা ফরয । তা সে Design Patterns দিয়েই শুরু করুক আর Class, Object দিয়েই শুরু করুক ।
এই আর্টিকেলে তেমন বিশেষ কিছু দেখাবো না, তাও Design Pattern এর প্রাথমিক বিষয় দিয়েই শেষ করি, Design patterns ৩ ধরনের
  1. Creational | কার অবজেক্ট কিভাবে কখন তৈরি হবে এবং কিভাবে ব্যবহার হবে সেটা নির্ধারণ করে।
  2. Structural | ক্লাস এবং অবজেক্ট একের অপরের সাথে সংযুক্ত হয়ে বড় স্ট্রাকচার দাঁড় করাবে।
  3. Behavioral | ক্লাস এবং অবজেক্ট কার সাথে কিভাবে connected হয়ে কিভাবে কাজ করবে ।  
Design Patterns Classification
Creational এর মধ্যে আছে Singleton, Prototype, Factory Method, Abstract Factory, Builder এই পাঁচটা । অনুরুপ ভাবে Structural এর মধ্যে আছে ৭ টা এবং Behavioral এর মধ্যে আছে আরো ১১ টা ।

অতএব সময়ের উপযুক্ত ব্যবহার শুরু করে দিন সহজতম Singleton Pattern দিয়েই ।


THE END

Design Patterns কি এবং কেন শিখবো ? Design Patterns কি এবং কেন শিখবো ? Reviewed by hnjaman on June 21, 2018 Rating: 5

No comments:

Powered by Blogger.