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

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

Englishবাংলা

Testing আর deployment - project-টাকে পৃথিবীর সামনে তোলা

Unit test-এর basic, environment variable-এর শৃঙ্খলা, production checklist, README

Capstone বানানো শেষ - কিন্তু নিজের machine-এ চলা আর সবার জন্য চালু থাকা এক কথা নয়। আজকের দিনটা সেই শেষ সেতুটা: কিছুটা test, যাতে ভবিষ্যতে কোড বদলালে পুরনোটা ভাঙল কিনা জানা যায়; আর deployment-এর শৃঙ্খলা, যাতে চালু করার সময় শেষ মুহূর্তের তাড়াহুড়া না হয়।

Testing - ন্যূনতম যা না হলেই নয়

সবকিছু test করতে হবে না। শুরু করুন সবচেয়ে মূল্যবান জায়গা দিয়ে - যেখানে হিসাব আর নিয়ম থাকে: দাম গণনা, status বদলের শৃঙ্খলা, validation। এই যুক্তি-ভিত্তিক (logic) অংশগুলো test করা সহজ, কারণ database ছাড়াই শুধু input-output মেলানো যায়।

// Vitest দিয়ে একটা ছোট্ট unit test
import { describe, it, expect } from "vitest";

describe("calculateTotal", () => {
  it("items-এর দাম আর delivery charge যোগ করে", () => {
    const total = calculateTotal(
      [{ price: 220, qty: 2 }, { price: 60, qty: 1 }],
      60 // delivery charge
    );
    expect(total).toBe(560);
  });
});

Environment variable আর production checklist

Database-এর ঠিকানা, JWT secret, API key - এগুলো কোডে নয়, environment variable-এ থাকে, পরিবেশ অনুযায়ী বদলায়। .env file কখনো Git-এ তুলবেন না; বদলে .env.example রাখুন, যেখানে শুধু নামগুলো আছে, মান নয়। Deploy-এর আগে এই তালিকাটা ধরে যান:

  • সব secret environment variable-এ, কোডে একটাও নয়
  • Database migration production-এ চালানো হয়েছে
  • CORS শুধু আসল frontend domain-এর জন্য, rate limit চালু
  • Error যেন user-কে ভিতরের বিবরণ (stack trace) না দেখায়
  • Logging চালু - কিছু ভাঙলে খুঁজে পাওয়া যাবে তো?
  • Health check endpoint আছে - server বেঁচে আছে কিনা বাইরে থেকে বোঝা যায়

শেষ কাজটা ছোট কিন্তু দামি: একটা ভালো README লিখুন। Project-টা কী, কী কী feature আছে, কীভাবে চালাতে হয়, কোন কোন সিদ্ধান্ত কেন নেওয়া হয়েছে। Interviewer GitHub খুলে প্রথমে README-ই পড়েন - এটাই আপনার project-এর মুখ।

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

Secret কোডে লিখে GitHub-এ তুলে দেওয়া - একবার উঠলে সেটা ইতিহাসে থেকে যায়, মুছে ফেললেও। আরেকটা ভুল: README ফাঁকা রেখে দেওয়া। দারুণ project-ও বোঝানো না গেলে সাধারণ project-এর সমান মূল্য পায়।

আজকের Practice

Capstone-এর হিসাবের অংশে কমপক্ষে ৩টা unit test লিখুন। উপরের checklist ধরে একবার যাচাই করুন। তারপর README-টা লিখুন - feature, চালানোর নিয়ম, আর সবচেয়ে গুরুত্বপূর্ণ তিনটা সিদ্ধান্তের কারণসহ।

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

নিজেকে যাচাই করুন: 'আমি মূল logic-গুলোতে unit test রাখি, সব secret environment variable-এ রাখি, আর deploy-এর আগে নির্দিষ্ট checklist ধরে যাই - migration, CORS, rate limit, logging, health check। README-তে সিদ্ধান্তগুলোর কারণও লিখে রাখি।'

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