ডেভ লগ: সিস্টেমের সততা (System Honesty)

এমন সিস্টেম তৈরি করুন যা সত্য প্রকাশ করে।

একটি সিস্টেম তার সিগন্যালগুলোর মতোই উন্নত। যদি আপনার কুয়েরিগুলো অপচয় লুকিয়ে রাখে, আপনার হেলথ চেকগুলো মিথ্যা বলে, অথবা আপনার টুলগুলো একই কাজ বারবার করে, তবে আপনার সিস্টেমটি অসৎ।

আমি আজ দিনটি চারটি ভিন্ন প্রযুক্তিগত বিষয়ে কাজ করে কাটিয়েছি। প্রতিটিই একটি নির্দিষ্ট থিম অনুসরণ করে: সিস্টেমকে সৎ বা স্বচ্ছ করা।

১. ডাটাবেস পারফরম্যান্স (Database Performance)

যে ডেটা আপনার প্রয়োজন নেই তা ফেচ (fetch) করা বন্ধ করুন।

  • আপনার ডেভেলপমেন্ট এনভায়রনমেন্টে একটি N+1 ডিটেক্টর ব্যবহার করুন। এটি লুকানো lazy-loads গুলোকে একটি স্পষ্ট টাস্ক লিস্টে রূপান্তরিত করে।
  • অব্যবহৃত eager loads গুলো সরিয়ে ফেলুন। যদি আপনার ভিউ কোনো কলাম ব্যবহার না করে, তবে সেটি ফেচ করবেন না।
  • প্রতিটি রিকোয়েস্টের জন্য কনস্ট্যান্টগুলো মেমোইজ (Memoize) করুন। একটি সাইকেলের মধ্যে একই ভ্যালু বারবার পুনরায় গণনা করবেন না।
  • ড্যাশবোর্ড কুয়েরিগুলোকে গ্রুপ করুন। বিশটি ছোট count কলের পরিবর্তে একটি গ্রুপড কুয়েরি ব্যবহার করুন।

২. প্রকৃত হেলথ চেক (Real Health Checks)

যে চেকটি কেবল একটি কনফিগ (config) আছে কি না তা যাচাই করে, সেটি হেলথ চেক নয়। সেটি হলো একটি কনফিগ চেক।

  • একটি প্রকৃত হেলথ চেক অবশ্যই রিচেবিলিটি (reachability) বা সংযোগযোগ্যতা প্রমাণ করতে হবে।
  • টার্গেট হোস্ট এবং পোর্টে একটি সকেট (socket) ওপেন করুন।
  • TCP, HTTP, বা TLS প্রোবগুলোর মধ্যে পরিবর্তন করার জন্য একটি কন্ট্রাক্ট বা ইন্টারফেস ব্যবহার করুন।
  • প্রতিটি প্রোব তার নিজস্ব কানেকশনে চালান। একটি ধীরগতির সার্ভিস যেন আপনার পুরো মনিটরিং টুলটিকে আটকে না দেয়।

৩. নিরাপদ এআই টুলস (Safer AI Tools - MCP)

যখন আপনি কোনো এআই এজেন্টকে (AI agent) আপনার সিস্টেমের অ্যাক্সেস দেবেন, তখন ধরে নিতে হবে যে এটি ভুল করতে পারে।

  • আইডেমপোটেন্সি কী (idempotency keys) ব্যবহার করুন। যদি কোনো এজেন্ট একটি রিকোয়েস্ট পুনরায় করার চেষ্টা করে, তবে সার্ভারের উচিত ডুপ্লিকেট তৈরি না করে একই ফলাফল প্রদান করা।
  • ডেটা পাঠানোর সময় ব্যক্তিগত তথ্য মুছে ফেলুন (Scrub)। রেসপন্স পাথ-কে একটি পাবলিক বাউন্ডারি হিসেবে বিবেচনা করুন।
  • টাইপড এরর কোড (typed error codes) ব্যবহার করুন। সরাসরি র (raw) স্ট্রিং পাঠাবেন না। সঠিকভাবে কাজ করার জন্য একটি এজেন্টের "not_found"-এর মতো স্ট্রাকচার্ড কোডের প্রয়োজন।

৪. আইডেন্টিটি এবং পাসওয়ার্ড রিসেট (Identity and Password Resets)

যখন আপনি একাধিক সিস্টেম নিয়ে কাজ করেন, তখন কাজের ক্রম (order) গুরুত্বপূর্ণ।

  • যদি একটি পাসওয়ার্ড রিসেট একাধিক ডিরেক্টরিকে প্রভাবিত করে, তবে একটি সোর্স অফ ট্রুথ (source of truth) বেছে নিন।
  • প্রথমে অথরিটেটিভ (authoritative) ডিরেক্টরিতে লিখুন।
  • কাজের ক্রমটি ডকুমেন্ট করুন। "আমি যখন চেষ্টা করেছিলাম তখন কাজ করেছিল" — এটি কোনো ব্যর্থতার সময় সফলতার নিশ্চয়তা দেয় না।

লক্ষ্য চটকদার ফিচার তৈরি করা নয়। লক্ষ্য হলো এমন একটি সিস্টেম তৈরি করা যা আপনি যখন দেখছেন না, তখনও নির্ভরযোগ্য থাকে।

উৎস: https://dev.to/nasrulhazim/dev-log-2026-06-23-query-cleanups-real-health-checks-safer-mcp-tools-and-password-reset-12d0