ਮੈਂ ਕੋਡ ਸ਼ਿਪ (Ship) ਕਰਨ ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਦਾ ਹਾਂ
ਚਲਾਕ ਪ੍ਰੋਂਪਟ (prompts) ਲਿਖਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਛੱਡੋ। ਕੰਟੈਕਸਟ (context) ਇੰਜੀਨੀਅਰਿੰਗ ਸ਼ੁਰੂ ਕਰੋ।
ਜ਼ਿਆਦਾਤਰ ਲੋਕ AI ਦੀ ਵਰਤੋਂ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਕਰਦੇ ਹਨ। ਉਹ ਇੱਕ ਵਾਕ ਵਿੱਚ ਕਿਸੇ ਫੀਚਰ ਦੀ ਮੰਗ ਕਰਦੇ ਹਨ। AI ਅਜਿਹਾ ਕੋਡ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੋ ਗਲਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਤੁਹਾਡੇ ਨਾਮਕਰਨ ਦੇ ਨਿਯਮਾਂ (naming conventions) ਨੂੰ ਤੋੜਦਾ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਬੱਗ (bugs) ਨੂੰ ਦੁਬਾਰਾ ਲੈ ਆਉਂਦਾ ਹੈ। ਤੁਸੀਂ ਆਪਣੀ ਦੁਪਹਿਰ ਉਸ ਖਿਲਾਰ ਨੂੰ ਠੀਕ ਕਰਨ ਵਿੱਚ ਬਿਤਾ ਦਿੰਦੇ ਹੋ।
ਕੰਟੈਕਸਟ ਤੋਂ ਬਿਨਾਂ ਇੱਕ AI ਇੱਕ ਜੂਨੀਅਰ ਡਿਵੈਲਪਰ ਵਾਂਗ ਹੈ ਜਿਸਨੇ ਕਦੇ ਤੁਹਾਡਾ ਕੋਡਬੇਸ (codebase) ਨਹੀਂ ਪੜ੍ਹਿਆ। ਇਹ ਕੱਲ੍ਹ ਦੀ ਹਰ ਚੀਜ਼ ਭੁੱਲ ਜਾਂਦਾ ਹੈ। ਤੁਸੀਂ ਕਿਸੇ ਨਵੇਂ ਕਰਮਚਾਰੀ ਨੂੰ ਇੱਕ ਲਾਈਨ ਵਾਲੀ ਟਿਕਟ ਨਹੀਂ ਦੇਵੋਗੇ ਅਤੇ ਸੰਪੂਰਨ ਕੋਡ ਦੀ ਉਮੀਦ ਨਹੀਂ ਕਰੋਗੇ। ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਆਨਬੋਰਡਿੰਗ ਦਸਤਾਵੇਜ਼ (onboarding document) ਦਿਓਗੇ।
ਮੈਂ ਆਪਣੇ ਰੈਪੋ (repo) ਵਿੱਚ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਮੈਮੋਰੀ ਫਾਈਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ। ਇਹ ਫਾਈਲ ਇੱਕ ਆਨਬੋਰਡਿੰਗ ਦਸਤਾਵੇਜ਼ ਵਜੋਂ ਕੰਮ ਕਰਦੀ ਹੈ ਜਿਸ ਨੂੰ AI ਹਰ ਵਾਰ ਪੜ੍ਹਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ-ਵਿਸ਼ੇਸ਼ ਨਿਯਮ ਹੁੰਦੇ ਹਨ ਜੋ ਕੋਈ ਬਾਹਰੀ ਵਿਅਕਤੀ ਨਹੀਂ ਜਾਣੇਗਾ:
• ਗੈਰ-ਸਮਝੌਤਾਯੋਗ (Non-negotiables): URL ਕਿਵੇਂ ਦੇ ਦਿਖਣੇ ਚਾਹੀਦੇ ਹਨ ਅਤੇ ਸਲੱਗ (slugs) ਪ੍ਰੋਡਕਸ਼ਨ ਨਾਲ ਕਿਵੇਂ ਮੇਲ ਖਾਂਦੇ ਹਨ। • ਲੌਜਿਕ ਨਿਯਮ: ਨੰਬਰਾਂ ਨੂੰ ਹਾਰਡਕੋਡ (hardcoding) ਕਰਨ ਦੀ ਬਜਾਏ ਕੌਨਫਿਗਸ (configs) ਤੋਂ ਮੁੱਲ (values) ਕੱਢਣਾ। • ਐਜ ਕੇਸ (Edge cases): ਖਾਸ CDN ਸੈਟਿੰਗਾਂ ਜਾਂ ਫਾਈਲ ਪਾਥ ਜੋ ਚੁੱਪਚਾਪ ਹੋਣ ਵਾਲੀਆਂ ਖਰਾਬੀਆਂ ਨੂੰ ਰੋਕਦੇ ਹਨ।
ਮੇਰੇ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਹਰ ਗਲਤੀ ਇਸ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਬਣ ਜਾਂਦੀ ਹੈ। ਇਹ ਫਾਈਲ ਨੂੰ ਇੱਕ ਵਧਦੇ ਹੋਏ ਸਰੋਤ (compounding asset) ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। AI ਆਉਟਪੁੱਟ ਦੀ ਗੁਣਵੱਤਾ ਸਮੇਂ ਦੇ ਨਾਲ ਸੁਧਰਦੀ ਜਾਂਦੀ ਹੈ ਕਿਉਂਕਿ ਮੈਂ ਆਪਣੀਆਂ ਗੱਲਾਂ ਨੂੰ ਦੁਹਰਾਉਣਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹਾਂ।
ਮੇਰਾ ਵਰਕਫਲੋ (workflow) ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
- ਕੰਟੈਕਸਟ ਨੂੰ ਬੂਟਸਟਰੈਪ (Bootstrap) ਕਰੋ: AI ਨੂੰ ਤੁਹਾਡੇ ਕੋਡ ਤੋਂ ਮੈਮੋਰੀ ਫਾਈਲ ਦਾ ਡਰਾਫਟ ਤਿਆਰ ਕਰਨ ਲਈ ਕਹੋ, ਫਿਰ ਤੁਸੀਂ ਇਸਨੂੰ ਐਡਿਟ ਕਰੋ।
- ਕੰਮ ਨੂੰ ਦੁਬਾਰਾ ਦੱਸੋ: ਕੋਡ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ AI ਨੂੰ ਟੀਚੇ ਦਾ ਸਾਰ (summarize) ਪੁੱਛੋ। ਇਹ ਗਲਤੀਆਂ ਨੂੰ ਜਲਦੀ ਫੜ ਲੈਂਦਾ ਹੈ।
- ਪ੍ਰੋਂਪਟ ਨੂੰ ਸੁਧਾਰੋ: AI ਨੂੰ ਪੁੱਛੋ ਕਿ ਤੁਹਾਡੀ ਬੇਨਤੀ ਵਿੱਚ ਕੀ ਅਸਪਸ਼ਟ (ambiguous) ਹੈ।
ਇਹਨਾਂ ਕੰਮਾਂ ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਰੋ:
- ਬੁਆਇਲਰਪਲੇਟ (boilerplate) ਅਤੇ ਸਕੈਫੋਲਡਿੰਗ (scaffolding) ਲਿਖਣ ਲਈ।
- ਪੈਟਰਨ-ਫਾਲੋਇੰਗ ਰੈਫੈਕਟਰ (refactors) ਲਈ।
- ਅਣਜਾਣ ਕੋਡ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਲਈ।
- ਇੱਕ ਰੈਪੋ ਵਿੱਚ ਮਕੈਨੀਕਲ ਸਵੀਪ (mechanical sweeps) ਕਰਨ ਲਈ।
- ਟੈਸਟ ਅਤੇ ਫਿਕਸਚਰ (fixtures) ਲਿਖਣ ਲਈ।
ਇਹਨਾਂ ਕੰਮਾਂ ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਬਚੋ:
- ਨਵੇਂ ਆਰਕੀਟੈਕਚਰ ਫੈਸਲੇ ਲੈਣ ਲਈ।
- ਪਸੰਦ ਜਾਂ ਪ੍ਰੋਡਕਟ ਨਾਲ ਸਬੰਧਤ ਫੈਸਲੇ ਲੈਣ ਲਈ।
- ਕੋਈ ਵੀ ਅਜਿਹਾ ਕੰਮ ਜਿੱਥੇ ਗਲਤ ਹੋਣਾ ਮਹਿੰਗਾ ਹੋ ਸਕਦਾ ਹੈ।
- ਸੁਰੱਖਿਆ-ਅਹਿਮ (Security-critical) ਡਿਜ਼ਾਈਨ ਲਈ।
- ਸ਼ਿਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਆਖਰੀ ਰਿਵਿਊ ਲਈ।
ਅਨੁਸ਼ਾਸਨ ਸਰਲ ਹੈ:
- ਕੰਮਾਂ ਦਾ ਦਾਇਰਾ ਛੋਟਾ ਰੱਖੋ। ਇਹ ਨਾ ਕਹੋ "ਇਹ ਫੀਚਰ ਬਣਾਓ।" ਕਹੋ "ਇਹ ਖਾਸ ਤਬਦੀਲੀ ਕਰੋ।"
- ਪਹਿਲਾਂ ਹੀ ਕੰਟੈਕਸਟ ਦਿਓ।
- ਹਰ ਆਉਟਪੁੱਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਬਿਲਡ (build) ਚਲਾਓ ਅਤੇ ਡਿਫ (diff) ਪੜ੍ਹੋ।
- ਇਸਦੀ ਇੱਕ ਜੂਨੀਅਰ ਡਿਵੈਲਪਰ ਦੇ PR ਵਾਂਗ ਸਮੀਖਿਆ ਕਰੋ। ਕਿਸੇ ਇਨਸਾਨ ਦੁਆਰਾ ਪੜ੍ਹੇ ਬਿਨਾਂ ਕਦੇ ਕੋਡ ਕਮਿਟ (commit) ਨਾ ਕਰੋ।
- ਸਿੱਖਿਆਵਾਂ ਨੂੰ ਵਾਪਸ ਆਪਣੀ ਕੰਟੈਕਸਟ ਫਾਈਲ ਵਿੱਚ ਪਾਓ।
ਲੀਵਰੇਜ (leverage) ਪ੍ਰੋਂਪਟ ਵਿੱਚ ਨਹੀਂ ਹੈ। ਲੀਵਰੇਜ ਉਸ ਕੰਟੈਕਸਟ ਵਿੱਚ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਬਣਾਈ ਰੱਖਦੇ ਹੋ।
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi
