டெவ் லாக்: சிஸ்டம் நேர்மை

உண்மையைச் சொல்லும் அமைப்புகளை உருவாக்குங்கள்.

ஒரு அமைப்பின் தரம் அதன் சிக்னல்களைப் (signals) பொறுத்தே அமையும். உங்கள் வினவல்கள் (queries) வீணான வேலைகளை மறைத்தாலோ, உங்கள் ஹெல்த் செக் (health checks) பொய் சொன்னாலோ அல்லது உங்கள் கருவிகள் மீண்டும் மீண்டும் ஒரே வேலையைச் செய்தாலோ, உங்கள் சிஸ்டம் நேர்மையற்றது என்று அர்த்தம்.

நான் இன்று நான்கு வெவ்வேறு தொழில்நுட்பத் தலைப்புகளில் பணியாற்றினேன். ஒவ்வொன்றும் ஒரே கருப்பொருளைப் பின்பற்றுகிறது: சிஸ்டத்தை நேர்மையாக்குவது.

  1. தரவுத்தள செயல்திறன் (Database Performance) நீங்கள் பயன்படுத்தாத தரவுகளைப் பெறுவதை நிறுத்துங்கள்.
  • உங்கள் மேம்பாட்டுச் சூழலில் (development environment) ஓர் N+1 டிடெக்டரைப் (detector) பயன்படுத்துங்கள். இது மறைந்திருக்கும் லேசி-லோட்களை (lazy-loads) ஒரு தெளிவான பணிப் பட்டியலாக மாற்றும்.
  • பயன்படுத்தப்படாத ஈகர் லோட்களை (eager loads) நீக்குங்கள். உங்கள் வியூவில் (view) ஒரு காலம் (column) பயன்படுத்தப்படவில்லை என்றால், அதைத் தேடிப் பெறாதீர்கள்.
  • ஒவ்வொரு கோரிக்கையின் (request) போதும் மாறிலிகளை மெமோயைஸ் (memoize) செய்யுங்கள். ஒரே சுழற்சியில் (cycle) ஒரே மதிப்பைத் திரும்பத் திரும்பக் கணக்கிடாதீர்கள்.
  • டேஷ்போர்டு வினவல்களைக் குழுவாக்குங்கள். இருபது சிறிய கவுண்ட் (count) அழைப்புகளுக்குப் பதிலாக, ஒரே குழு வினவலைப் (grouped query) பயன்படுத்துங்கள்.
  1. உண்மையான ஹெல்த் செக் (Real Health Checks) ஒரு கான்ஃபிக் (config) இருக்கிறதா என்று மட்டும் சரிபார்க்கும் முறை ஹெல்த் செக் அல்ல. அது ஒரு கான்ஃபிக் செக் மட்டுமே.
  • ஒரு உண்மையான ஹெல்த் செக், தொடர்பு கொள்ளும் திறனை (reachability) நிரூபிக்க வேண்டும்.
  • இலக்கு ஹோஸ்ட் (host) மற்றும் போர்ட்டிற்கு (port) ஒரு சாக்கெட்டைத் (socket) திறக்கவும்.
  • TCP, HTTP அல்லது TLS ப்ரோப்களுக்கு (probes) இடையே மாற ஒரு கான்ட்ராக்ட் (contract) அல்லது இன்டர்ஃபேஸைப் (interface) பயன்படுத்துங்கள்.
  • ஒவ்வொரு ப்ரோபையும் அதன் சொந்த இணைப்பில் இயக்கவும். ஒரு மெதுவான சேவை உங்கள் முழு கண்காணிப்பு கருவியையும் (monitoring tool) முடக்கிவிடக் கூடாது.
  1. பாதுகாப்பான AI கருவிகள் (MCP) ஒரு AI ஏஜென்ட்டிற்கு (agent) உங்கள் சிஸ்டத்தின் அணுகலை வழங்கும் போது, அது தவறுகளைச் செய்யும் என்று நீங்கள் கருதிச் செயல்பட வேண்டும்.
  • ஐடெம்போடென்சி கீகளைப் (idempotency keys) பயன்படுத்துங்கள். ஒரு ஏஜென்ட் ஒரு கோரிக்கையை மீண்டும் முயன்றால், சர்வர் ஒரு நகலை உருவாக்குவதற்குப் பதிலாக அதே முடிவைத் தர வேண்டும்.
  • வெளியாகும் வழியில் தனிப்பட்ட தரவுகளை நீக்குங்கள் (scrub). பதிலளிக்கும் பாதையை (response path) ஒரு பொது எல்லையாகக் கருதுங்கள்.
  • வகைப்படுத்தப்பட்ட பிழை குறியீடுகளைப் (typed error codes) பயன்படுத்துங்கள். வெறும் ஸ்ட்ரிங்குகளை (raw strings) அனுப்பாதீர்கள். ஒரு ஏஜென்ட் சரியாகச் செயல்பட "not_found" போன்ற கட்டமைக்கப்பட்ட குறியீடுகள் தேவை.
  1. அடையாளம் மற்றும் கடவுச்சொல் மீட்டமைப்பு (Identity and Password Resets) நீங்கள் பல சிஸ்டங்களைத் தொடும்போது வரிசை முறை முக்கியமானது.
  • கடவுச்சொல் மீட்டமைப்பு பல டைரக்டரிகளில் (directories) தாக்கத்தை ஏற்படுத்தினால், ஒரு உண்மையான ஆதாரத்தைத் (source of truth) தேர்ந்தெடுங்கள்.
  • அதிகாரப்பூர்வமான டைரக்டரியில் (authoritative directory) முதலில் எழுதுங்கள்.
  • வரிசை முறையை ஆவணப்படுத்துங்கள். "நான் முயன்றபோது இது வேலை செய்தது" என்பது ஒரு தோல்வியின் போது வெற்றி கிடைக்கும் என்பதற்கான உத்தரவாதம் அல்ல.

இலக்கு பகட்டான அம்சங்களை (flashy features) உருவாக்குவதல்ல. நீங்கள் பார்க்காத போதும் நம்பகத்தன்மையுடன் இருக்கும் ஒரு அமைப்பை உருவாக்குவதே இலக்காகும்.

மூலம்: https://dev.to/nasrulhazim/dev-log-2026-06-23-query-cleanups-real-health-checks-safer-mcp-tools-and-password-reset-12d0