Chapters of Frontend Dev থেকে Full-Stack Backend

Week 4 - Capstone + NestJS + System Design + DrillChapter 22 of 282 min read

Englishবাংলা

Capstone শুরু - কোডের আগে requirement আর schema কাগজে

তিনটা option থেকে একটা বেছে নেওয়া, feature তালিকা, database schema নকশা, API তালিকা

আজ থেকে শেষ সপ্তাহ - আর শেষের এই সপ্তাহের ফলাফলটাই আপনার portfolio-তে যাবে, interview-তে গল্প হয়ে বলা যাবে। কিন্তু একটা সতর্কবাণী দিয়ে শুরু করি: ভালো developer-রা কোড খোলার আগে কাগজ ধরেন। Requirement অস্পষ্ট থাকলে কোড লিখতে লিখতে তিনবার বদলাতে হয় - আর সেই তাড়াহুড়ার project-ই শেষ হয় না।

প্রথম কাজ - একটা option বেছে লিখে ফেলা

এই পেজের উপরে তিনটা capstone option দেওয়া আছে - Khabar Dhandha order backend, job board API, real-time chat backend। যেটাই নিন, আজকের দিনে এই তিনটা জিনিস কাগজে বা একটা note-এ লিখে ফেলুন:

  • User কারা - role অনুযায়ী ভাগ (যেমন customer ও admin, কিংবা recruiter ও applicant)
  • Feature তালিকা - প্রতিটা role কী কী করতে পারবে, এক লাইনে করে
  • Database schema - কোন কোন টেবিল/collection, তাদের মধ্যে সম্পর্ক, embed না reference
// উদাহরণ: Khabar Dhandha-র schema-র খসড়া
users     (id, name, phone, passwordHash, role)
menus     (id, name, price, photoUrl, category, isAvailable)
orders    (id, userId, status, total, zone, address, createdAt)
orderItems(orderId, menuId, nameSnapshot, priceSnapshot, qty)
zones     (id, name, deliveryCharge)

এরপর API-র তালিকা বানান - method + URL + কার জন্য। এই তালিকাটাই পরের দুই দিনের কাজের মানচিত্র। সব feature একবারে চাইবেন না - প্রথমে মূল যাত্রাটা (Khabar Dhandha হলে: menu দেখা, order দেওয়া, status বদলানো) শেষ করার মতো ন্যূনতম তালিকা বানান, বাড়তি feature পরে। শেষ করা ছোট project, শেষ না হওয়া বড় project-এর চেয়ে সবদিক দিয়ে ভালো।

সবাই যে ভুলটা করে

সরাসরি কোডে ঝাঁপ দেওয়া। দুই দিন পরে দেখা যায় schema-তেই মূল সিদ্ধান্ত ভুল ছিল - তখন লেখা সব কোড ছুঁড়ে ফেলতে হয়। এক ঘণ্টা কাগজে ভাবা দুই দিনের পুনর্লিখন বাঁচায়। আরেকটা ভুল: প্রথম দিনেই সব feature ধরতে যাওয়া - শেষ পর্যন্ত কোনোটাই পুরো হয় না।

আজকের Practice

আপনার পছন্দের capstone-টা বেছে কাগজে তিনটা জিনিস লিখুন - role ও feature তালিকা, database schema, API তালিকা। তারপর মূল যাত্রাটা চিহ্ন বেছে আলাদা করুন - এই সপ্তাহে শুধু সেটুকুই লক্ষ্য।

Interview-এ কীভাবে বলবেন

নিজেকে যাচাই করুন: 'যেকোনো project শুরুর আগে আমি requirement, role, schema আর API তালিকা কাগজে সাজিয়ে নিই। এতে সিদ্ধান্তগুলো কোড লেখার আগেই পরীক্ষা হয়ে যায়, আর কাজটা মাপা গণ্ডির মধ্যে থাকে - কোনটা আগে, কোনটা পরে, সেটা পরিষ্কার থাকে।'

All chapters of Frontend Dev থেকে Full-Stack Backend