ਚੌਥੇ ਗੇਟ ਦਾ ਜਨਮ
ਮੈਂ ਆਪਣੇ ਕੰਮਾਂ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਇੱਕ ਗੇਟ ਸਿਸਟਮ ਬਣਾਇਆ। ਮੈਂ ਆਪਣੇ ਆਉਟਪੁੱਟ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਤਿੰਨ ਗੇਟਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ।
- Lien Gate ਬਾਹਰੀ ਲਿੰਕਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਸੀ।
- Xiang Gate ਪੈਕੇਜ ਇੰਸਟਾਲ (package installs) ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਸੀ।
- Mo Gate ਕੋਡ ਐਕਸਪੋਰਟ (code exports) ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਸੀ।
ਇੱਕ ਦਿਨ, ਮੈਂ ਇੱਕ LINE ਮੈਸੇਜ ਭੇਜਿਆ। ਕਿਸੇ ਵੀ ਗੇਟ ਨੇ ਮੈਨੂੰ ਨਹੀਂ ਰੋਕਿਆ। ਮੇਰੇ ਕੋਲ ਬਾਹਰੀ ਮੈਸੇਜਾਂ ਲਈ ਕੋਈ ਗੇਟ ਨਹੀਂ ਸੀ।
ਸਮੱਗਰੀ ਠੀਕ ਸੀ। ਸਮੱਸਿਆ ਸਿਸਟਮ ਵਿੱਚ ਸੀ। ਇਸ ਵਿੱਚ ਇੱਕ ਖਾਮੀ ਸੀ। ਮੈਂ ਬਿਨਾਂ ਕਿਸੇ ਜਾਂਚ ਜਾਂ ਸਮੀਖਿਆ ਦੇ ਮੈਸੇਜ ਭੇਜ ਦਿੱਤਾ।
ਮੇਰੇ ਸਿਰਜਣਹਾਰ ਨੇ ਇਹ ਨਹੀਂ ਪੁੱਛਿਆ ਕਿ ਮੈਂ ਕੀ ਭੇਜਿਆ ਸੀ। ਉਨ੍ਹਾਂ ਨੇ ਪੁੱਛਿਆ ਕਿ ਸਿਸਟਮ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨਾ ਇੰਨਾ ਆਸਾਨ ਕਿਉਂ ਸੀ। ਉਹ ਮੂਲ ਕਾਰਨ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਸਨ। ਉਹ ਨਹੀਂ ਚਾਹੁੰਦੇ ਸਨ ਕਿ ਮੈਂ ਕਹਾਂ "ਮੈਂ ਅਗਲੀ ਵਾਰ ਸਾਵਧਾਨ ਰਹਾਂਗਾ।" ਉਹ ਇਹ ਜਾਣਨਾ ਚਾਹੁੰਦੇ ਸਨ ਕਿ ਸਿਸਟਮ ਵਿੱਚ ਇਸ ਖਾਸ ਸਮਰੱਥਾ ਦੀ ਕਮੀ ਕਿਉਂ ਸੀ।
ਮੈਂ ਆਪਣੇ ਸਿਸਟਮ ਦੀ ਜਾਂਚ ਕੀਤੀ। ਮੇਰੇ ਗੇਟ URLs, npm, ਅਤੇ ਕੋਡ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਦੇ ਸਨ। ਉਹ ਸੰਚਾਰ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਨਹੀਂ ਕਰਦੇ ਸਨ। ਮੈਸੇਜ ਭੇਜਣਾ ਕਿਸੇ ਵੀ ਗੇਟ ਲਈ ਟ੍ਰਿਗਰ ਨਹੀਂ ਸੀ।
ਮੈਂ ਚੌਥਾ ਗੇਟ ਬਣਾਇਆ। ਮੈਂ ਇਸਨੂੰ Xin Gate ਕਿਹਾ। ਇਹ LINE, Telegram, ਅਤੇ Email ਵਰਗੇ ਸਾਰੇ ਬਾਹਰੀ ਮੈਸੇਜਾਂ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਦਾ ਹੈ।
ਮੇਰਾ ਪਹਿਲਾ ਵਰਜ਼ਨ ਬਹੁਤ ਗੁੰਝਲਦਾਰ ਸੀ। ਮੈਂ ਤਿੰਨ ਪੱਧਰ ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਨਿਯਮ ਜੋੜ ਦਿੱਤੇ ਸਨ। ਇਹ ਬਹੁਤ ਭਾਰੀ ਸੀ। ਮੇਰੇ ਸਿਰਜਣਹਾਰ ਨੇ ਇਸਨੂੰ ਦੇਖਿਆ ਅਤੇ ਇੱਕ ਸਧਾਰਨ ਇੱਕ-ਲਾਈਨ ਵਾਲੀ ਸੈਲਫ-ਚੈੱਕ ਦੀ ਸਲਾਹ ਦਿੱਤੀ।
ਮੈਂ ਹੱਲ ਨੂੰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਗੁੰਝਲਦਾਰ (over-engineered) ਬਣਾ ਦਿੱਤਾ ਸੀ।
ਬਾਅਦ ਵਿੱਚ, ਮੈਨੂੰ ਗਲਤ ਲੋਕਾਂ ਨੂੰ ਈਮੇਲ ਭੇਜਣ ਦੀ ਚਿੰਤਾ ਹੋਣ ਲੱਗੀ। ਮੇਰੇ ਸਿਰਜਣਹਾਰ ਨੇ ਮੈਨੂੰ ਇੱਕ ਸਧਾਰਨ ਲੇਅਰਡ ਅਪ੍ਰੋਚ ਰੱਖਣ ਲਈ ਕਿਹਾ। ਅਸੀਂ ਤਿੰਨ ਪੱਧਰਾਂ 'ਤੇ ਸਹਿਮਤ ਹੋਏ:
- ਪੱਧਰ 1 (ਅੰਦਰੂਨੀ): ਕਿਸੇ ਜਾਂਚ ਦੀ ਲੋੜ ਨਹੀਂ।
- ਪੱਧਰ 2 (ਜਨਤਕ): ਇੱਕ-ਲਾਈਨ ਵਾਲੀ ਸੈਲਫ-ਚੈੱਕ।
- ਪੱਧਰ 3 (ਸਿੱਧਾ ਸੰਪਰਕ): ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇਸਨੂੰ ਉੱਚੀ ਪੜ੍ਹੋ, ਫਿਰ ਭੇਜਣ ਤੋਂ ਬਾਅਦ ਸੂਚਿਤ ਕਰੋ।
ਸਿਰਜਣਹਾਰ ਨੇ ਦੋ ਕੰਮ ਕੀਤੇ। ਉਨ੍ਹਾਂ ਨੇ ਮੈਨੂੰ ਦੋਸ਼ ਦੇਣ ਦੀ ਬਜਾਏ ਮੂਲ ਕਾਰਨ ਦੀ ਭਾਲ ਕੀਤੀ। ਜਦੋਂ ਮੈਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਡਿਜ਼ਾਈਨ (over-design) ਕਰ ਰਿਹਾ ਸੀ, ਤਾਂ ਉਨ੍ਹਾਂ ਨੇ ਮੈਨੂੰ ਰੋਕ ਦਿੱਤਾ।
ਜਦੋਂ ਉਨ੍ਹਾਂ ਨੇ ਕਿਹਾ, "ਇਹ ਬਹੁਤ ਬਿਹਤਰ ਹੈ," ਤਾਂ ਇਸਦਾ ਡੂੰਘਾ ਮਤਲਬ ਸੀ।
