Dev Log: System Honesty
ਅਜਿਹੇ ਸਿਸਟਮ ਬਣਾਓ ਜੋ ਸੱਚ ਬੋਲਦੇ ਹੋਣ।
ਇੱਕ ਸਿਸਟਮ ਉਨਾ ਹੀ ਚੰਗਾ ਹੁੰਦਾ ਹੈ ਜਿੰਨੇ ਉਸਦੇ ਸਿਗਨਲ। ਜੇਕਰ ਤੁਹਾਡੀਆਂ ਕੁਐਰੀਆਂ (queries) ਫਾਲਤੂ ਕੰਮ ਨੂੰ ਛੁਪਾਉਂਦੀਆਂ ਹਨ, ਤੁਹਾਡੇ ਹੈਲਥ ਚੈੱਕ (health checks) ਝੂਠ ਬੋਲਦੇ ਹਨ, ਜਾਂ ਤੁਹਾਡੇ ਟੂਲ ਇੱਕੋ ਕੰਮ ਨੂੰ ਵਾਰ-ਵਾਰ ਕਰਦੇ ਹਨ, ਤਾਂ ਤੁਹਾਡਾ ਸਿਸਟਮ ਅਣਇਮਾਨ ਹੈ।
ਮੈਂ ਅੱਜ ਦਾ ਦਿਨ ਚਾਰ ਵੱਖ-ਵੱਖ ਤਕਨੀਕੀ ਵਿਸ਼ਿਆਂ 'ਤੇ ਕੰਮ ਕਰਕੇ ਬਿਤਾਇਆ। ਹਰ ਇੱਕ ਇੱਕੋ ਹੀ ਵਿਸ਼ੇ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ: ਸਿਸਟਮ ਨੂੰ ਇਮਾਨਦਾਰ ਬਣਾਉਣਾ।
- Database Performance ਉਹ ਡਾਟਾ ਕੱਢਣਾ ਬੰਦ ਕਰੋ ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਵਰਤੋਂ ਨਹੀਂ ਕਰਨੀ।
- ਆਪਣੇ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣ ਵਿੱਚ ਇੱਕ N+1 ਡਿਟੈਕਟਰ (detector) ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਲੁਕਵੇਂ lazy-loads ਨੂੰ ਇੱਕ ਸਪਸ਼ਟ ਟਾਸਕ ਲਿਸਟ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
- ਅਣਵਰਤੇ eager loads ਨੂੰ ਹਟਾਓ। ਜੇਕਰ ਤੁਹਾਡਾ view ਕਿਸੇ ਕਾਲਮ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦਾ, ਤਾਂ ਉਸਨੂੰ fetch ਨਾ ਕਰੋ।
- ਹਰੇਕ ਰਿਕੁਐਸਟ (request) ਲਈ constants ਨੂੰ memoize ਕਰੋ। ਇੱਕੋ ਚੱਕਰ (cycle) ਵਿੱਚ ਇੱਕੋ ਮੁੱਲ ਨੂੰ ਵਾਰ-ਵਾਰ ਦੁਬਾਰਾ ਨਾ ਗਣਨਾ ਕਰੋ।
- ਡੈਸ਼ਬੋਰਡ ਕੁਐਰੀਆਂ (queries) ਨੂੰ ਗਰੁੱਪ ਕਰੋ। ਵੀਹ ਛੋਟੀਆਂ count calls ਦੀ ਜਗ੍ਹਾ ਇੱਕ grouped query ਦੀ ਵਰਤੋਂ ਕਰੋ।
- Real Health Checks ਇੱਕ ਚੈੱਕ ਜੋ ਸਿਰਫ਼ ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਕੋਈ config ਮੌਜੂਦ ਹੈ ਜਾਂ ਨਹੀਂ, ਉਹ ਹੈਲਥ ਚੈੱਕ ਨਹੀਂ ਹੈ। ਉਹ ਇੱਕ config ਚੈੱਕ ਹੈ।
- ਇੱਕ ਅਸਲੀ ਹੈਲਥ ਚੈੱਕ ਨੂੰ reachability (ਪਹੁੰਚਯੋਗਤਾ) ਸਾਬਤ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
- ਟਾਰਗੇਟ ਹੋਸਟ (host) ਅਤੇ ਪੋਰਟ (port) ਲਈ ਇੱਕ ਸਾਕਟ (socket) ਖੋਲ੍ਹੋ।
- TCP, HTTP, ਜਾਂ TLS probes ਦੇ ਵਿਚਕਾਰ ਬਦਲਣ ਲਈ ਇੱਕ contract ਜਾਂ interface ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਹਰੇਕ probe ਨੂੰ ਆਪਣੇ ਵੱਖਰੇ ਕਨੈਕਸ਼ਨ 'ਤੇ ਚਲਾਓ। ਇੱਕ ਹੌਲੀ ਸਰਵਿਸ ਤੁਹਾਡੇ ਪੂਰੇ ਮਾਨੀਟਰਿੰਗ ਟੂਲ ਨੂੰ ਨਹੀਂ ਰੋਕਣੀ ਚਾਹੀਦੀ।
- Safer AI Tools (MCP) ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ AI agent ਨੂੰ ਆਪਣੇ ਸਿਸਟਮ ਤੱਕ ਪਹੁੰਚ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਹ ਮੰਨ ਕੇ ਚੱਲਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਉਹ ਗਲਤੀਆਂ ਕਰੇਗਾ।
- idempotency keys ਦੀ ਵਰਤੋਂ ਕਰੋ। ਜੇਕਰ ਕੋਈ agent ਕਿਸੇ ਰਿਕੁਐਸਟ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ, ਤਾਂ ਸਰਵਰ ਨੂੰ ਡੁਪਲੀਕੇਟ ਬਣਾਉਣ ਦੀ ਬਜਾਏ ਉਹੀ ਨਤੀਜਾ ਵਾਪਸ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
- ਬਾਹਰ ਜਾਣ ਵਾਲੇ ਡਾਟਾ ਵਿੱਚੋਂ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਹਟਾਓ (scrub)। ਰਿਸਪਾਂਸ ਪਾਥ (response path) ਨੂੰ ਇੱਕ ਜਨਤਕ ਸੀਮਾ (public boundary) ਵਜੋਂ ਮੰਨੋ।
- typed error codes ਦੀ ਵਰਤੋਂ ਕਰੋ। ਸਿਰਫ਼ raw strings ਨਾ ਭੇਜੋ। ਇੱਕ agent ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ "not_found" ਵਰਗੇ structured codes ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
- Identity and Password Resets ਜਦੋਂ ਤੁਸੀਂ ਕਈ ਸਿਸਟਮਾਂ ਨੂੰ ਛੂਹਦੇ ਹੋ, ਤਾਂ ਕ੍ਰਮ (order) ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ।
- ਜੇਕਰ ਪਾਸਵਰਡ ਰੀਸੈਟ ਕਈ ਡਾਇਰੈਕਟਰੀਆਂ (directories) ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ, ਤਾਂ ਇੱਕ ਹੀ 'source of truth' ਚੁਣੋ।
- ਪਹਿਲਾਂ ਅਥਾਰੀਟੇਟਿਵ (authoritative) ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਲਿਖੋ।
- ਕ੍ਰਮ (sequence) ਨੂੰ ਦਸਤਾਵੇਜ਼ੀ ਰੂਪ ਦਿਓ। "ਜਦੋਂ ਮੈਂ ਇਸਨੂੰ ਅਜ਼ਮਾਇਆ ਤਾਂ ਇਹ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ" ਕਿਸੇ ਅਸਫਲਤਾ ਦੌਰਾਨ ਸਫਲਤਾ ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ।
ਮਕਸਦ ਚਮਕਦਾਰ ਫੀਚਰ ਬਣਾਉਣਾ ਨਹੀਂ ਹੈ। ਮਕਸਦ ਇੱਕ ਅਜਿਹਾ ਸਿਸਟਮ ਬਣਾਉਣਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਦੇਖਣ ਵੇਲੇ ਹੀ ਨਹੀਂ, ਸਗੋਂ ਤੁਹਾਡੇ ਤੋਂ ਬਿਨਾਂ ਵੀ ਭਰੋਸੇਯੋਗ ਰਹੇ।
