সফটওয়‍্যার ইঞ্জিনিয়ারিং

ক‍্যাশিং অ‍্যালগরিদম: এল-আর-ইউ ক‍্যাশ

আজকে আমরা জানবো ক‍্যাশিং কি এবং এল-আর-ইউ ক‍্যাশ কিভাবে কাজ করে। তুমি যদি ক‍্যাশিং সম্পর্কে আগে থেকেই জানো তাহলে প্রথম অংশটা দ্রুত পড়ে পরের অংশে চলে যেতে পারো। ধরা যাক তুমি একটি অ‍্যান্ড্রয়েড অ‍্যাপ তৈরি করছো। অ‍্যাপের ইউজারদের তুমি ৩টা রকমের লেভেল অ‍্যাসাইন করেছো, প্লাটিনাম, গোল্ড আর সিলভার। যখনই কোনো ইউজার অ‍্যাপ চালু করে তখনই তোমার ডেটাবেসে ইউজারের লেভেল চেক করতে হয়। তোমার অ‍্যাপ এ ইউজার আছে এক লাখ এবং প্রতি ঘন্টায় কয়েক হাজার ইউজার অ‍্যাপটি ব‍্যবহার করে। একসময় তুমি দেখলে ডাটাবেজের রিকুয়েস্ট খুব বেশি বেড়ে যাচ্ছে এবং পেজ লোড স্লো হয়ে যাচ্ছে। এই সমস‍্যার সমাধান হলো কিছু ইউজারের ...
Read More

বাগ ফ্রি কোডিং – অপরিবর্তনীয় বা ইমিউটেবল ভ‍্যারিয়েবল

প্রতিটা বড় প্রজেক্টের কোডেই কম বেশি বাগ থাকে তবে কিছু নিয়ম মেনে কোড লিখলে বাগ কমিয়ে আনা যায়। সফটওয়‍্যার ইঞ্জিনিয়ারিং করতে গিয়ে সেরকম কিছু নিয়ম শিখেছি যেটা কনটেস্ট করতে গিয়ে শেখা হয় নি। এর মধ‍্যে সবথেকে গুরুত্বপূর্ণ আমার মনে হয়েছে অপরিবর্তনীয় বা ইমিউটেবল ভ‍্যারিয়েবল/অবজেক্টের ধারনাটা। এই লেখাটা সফটওয়‍্যার ইঞ্জিনিয়ার এবং অ‍্যাডভান্সড স্টুডেন্টদের জন‍্য, তুমি যদি এখনো বড় কোনো প্রজেক্টের কাজ না করে থাকো তাহলে ধারণাগুলো হয়তো ঠিকমতো বুঝতে পারবে না। আমি জাভা ব‍্যবহার করে কিছু উদাহরণ দিবো তবে ধারণাগুলো যেকোনো প্রোগ্রামিং ল‍্যাংগুয়েজের জন‍্য সত‍্য। কোডে বাগ থাকার অন‍্যতম কারণ হলো ভ‍্...
Read More