ভাল কোম্পানি কি করে সফ্টওয়ার ডেভেলপ করে থাকে

একটি ভাল  কোম্পানি কি করে সফ্টওয়ার ডেভেলপ করে থাকে

একটা সময় যখন নতুন নতুন কোড শিখি এবং ছোট ছোট প্রজেক্ট করি তখন ভাবতাম যে কোড লিখাটাই সব কিছু, কিন্তু এখন দেখি পুরাই উল্টা।

একটা সফটওয়্যার এর লাইফ সাইকেল এ কোড এর ইম্পর্টেন্সি দেখি ২০% বা তার চেয়ে কিছু বেশি, কিন্তু সবচেয়ে বড় কাজ গুলা হল একটা সিস্টেম ডিজাইন করা। সিস্টেম ডিজাইনে আসলে দেখা যায় এটা আরেক বিশাল জগৎ, এখানে চিন্তা করা লাগে প্রত্যেক তা মডিউল অথবা মাইক্রোসার্ভিস নিয়ে। কোন মডিউল এর সাথে কিভাবে ইন্টারেক্ট করলে পারফর্মেন্স ভাল হবে এবং ইউজারদের বিরক্তিতাবোধ কমবে।

প্রথমেই আমাদের যেকোন একটা মেথডোলজি পছন্দ করে নিতে হয় এবং সেটা করা হয় ক্লায়েন্ট এর রিকোয়ারমেন্ট অথবা এপ্লিকেশনের উপর ভিত্তি করে। এছাড়াও আরো অনেক কারণ থাকতে পারে।

তারপর আছে ডাটাবেজ, এটা ডিজাইনের সময় অনেক পড়াশোনা শেষে চিন্তা করতে হয়ে কতগুলা পথ অবলম্বন করে ডাটা রিলেশনশীপ অথবা ডাটা ডিপেন্ডেন্সি কমানো যায়। কারণ যত রিলেশনশীপ অথবা ডাটা ডিপেন্ডেন্সি কমাতে পারব এপ্লিকেশনের পারফর্মেন্স এর জন্য ততই মঙ্গল (যদিও প্রয়োজনে অনেক সময় ডাটা রিলেশনশীপ অথবা ডাটা ডিপেন্ডেন্সি বেড়ে যায়, সেটা প্রয়োজনের উপর নির্র্ভরশীল, তবে আমি সবসময় রিলেশনশীপ অথবা ডিপেন্ডেন্সি কম রাখার চেষ্টা করি)।

তারপর আসে ডাটা ক্যাশিং ম্যাকানিজম, ক্যাশিং ম্যাকানিজম আমাদের ডেটা গুলো নির্দিষ্ট কিছু সময়ের জন্য RAM এ স্টোর করে রাখে তারপর প্রতি রিকোয়েস্ট এ চেক করে যদি ডাটা RAM এ স্টোর থাকে তাহলে সেখান থেকে রেসপন্স এ ডাটা পাঠায় আর না থাকলে ডাটাবেজ থেকে পাঠায়। এটার জন্য পুরো সিস্টেম নিয়ে আরো বেশি স্টাডি করা লাগে যে কখন ডাটা ক্যাশ করব আর কখন ডাটা ক্যাশ থেকে ডিলিট করে আবার পুনরায় ক্যাশ এ জমা রাখব। সেটা হতে পারে মনোলেটিক অথবা মাইক্রোসার্ভিস যেকোন টাইপের এপ্লিকেশনের জন্য।

তারপর আসে Queue ম্যাকানিজম, Queue ম্যাকানিজম যখন একটা এপ্লিকেশন অথবা মাইক্রোসার্ভিস এ একসাথে মিলিয়ন রিকোয়েস্ট পড়বে তখন ত আমাদের এপ্লিকেশন অথবা মাইক্রোসার্ভিস একসাথে এত রিকোয়েস্ট ম্যানেজ করতে পারবে না অথবা এটা সময় সাপেক্ষ। তো এত সময়ের জন্য ইউজারকে অপেক্ষায় রাখা এটা অবশ্যই ভাল কাজ না। আর এই সমস্যা সমাধান করার জন্যই আমরা Queue ম্যাকানিজম ব্যবহার করি। যে প্রথমে রিকোয়েস্ট গুলো Queue তে জমা রাখা হয় এবং সাথে সাথে ইউজারকে রেস্পন্স পাঠিয়ে দেওয়া হয়, তারপর Queue থেকে একটা একটা করে কাজ সম্পন্ন করা হয়। এভাবে এপ্লিকেশন অথবা মাইক্রোসার্ভিস এর পারফর্মেন্স অনেক গুন বেড়ে যায়। এগুলা ডিজাইন করার সময়ও অনেক স্টাডি করা লাগে যে কোন কোন রিকোয়েস্ট আমি Queue এর মাধ্যমে ম্যানেজ করব আর কোন গুলা Queue ছাড়া ম্যানেজ করব আরো অনেক কিছু।

এগুলা ছাড়াও আরো অনেক সিস্টেম ডিজাইন এবং আর্র্কিটেক্ট এর ধাপ আছে এইভাবে সবগুলা ডিজাইন এবং ডকুমেন্টেশন শেষ করে যাওয়া হয় কোড এ। আর তখন ই আমাদের এপ্লিকেশন হয় হাই পারফর্মেন্স এবং বেটার স্ক্যালেবেল। আর এভাবেই ভাল ভাল ইন্ড্রাস্টি গুলো সফ্টওয়ার ডেভেলপ করে থাকে।
 

মান সম্মত ওয়েব  সফ্টওয়ার  বানাতে চাইলে  Contact Us   যোগাযোগ করুন।

আপনি ও পছন্দ করতে পারেন