KoderKoder.ai
ਕੀਮਤਾਂਐਂਟਰਪ੍ਰਾਈਜ਼ਸਿੱਖਿਆਨਿਵੇਸ਼ਕਾਂ ਲਈ
ਲੌਗ ਇਨਸ਼ੁਰੂ ਕਰੋ

ਉਤਪਾਦ

ਕੀਮਤਾਂਐਂਟਰਪ੍ਰਾਈਜ਼ਨਿਵੇਸ਼ਕਾਂ ਲਈ

ਸਰੋਤ

ਸਾਡੇ ਨਾਲ ਸੰਪਰਕ ਕਰੋਸਹਾਇਤਾਸਿੱਖਿਆਬਲੌਗ

ਕਾਨੂੰਨੀ

ਗੋਪਨੀਯਤਾ ਨੀਤੀਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂਸੁਰੱਖਿਆਸਵੀਕਾਰਯੋਗ ਵਰਤੋਂ ਨੀਤੀਦੁਰਵਰਤੋਂ ਦੀ ਰਿਪੋਰਟ ਕਰੋ

ਸੋਸ਼ਲ

LinkedInTwitter
Koder.ai
ਭਾਸ਼ਾ

© 2026 Koder.ai. ਸਾਰੇ ਅਧਿਕਾਰ ਰਾਖਵੇਂ ਹਨ।

ਹੋਮ›ਬਲੌਗ›ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ: ਵੱਡੀਆਂ ਐਪ ਬਦਲਾਵਾਂ ਲਈ ਸੇਵ-ਪਾਇੰਟ
08 ਜਨ 2026·8 ਮਿੰਟ

ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ: ਵੱਡੀਆਂ ਐਪ ਬਦਲਾਵਾਂ ਲਈ ਸੇਵ-ਪਾਇੰਟ

ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਸਿੱਖੋ ਤਾਂ ਜੋ auth rewrites, ਸਕੀਮਾ ਅਪਡੇਟਾਂ ਅਤੇ UI ਰੀਡਿਜ਼ਾਈਨਾਂ ਵਾਂਗ ਵੱਡੇ ਬਦਲਾਅ ਦੌਰਾਨ ਸੁਰੱਖਿਅਤ ਸੇਵ-ਪਾਇੰਟ ਬਣਾਏ ਜਾ ਸਕਣ — ਸਪਸ਼ਟ ਲੇਬਲਿੰਗ ਅਤੇ ਚੈੱਕਸ ਸਮੇਤ।

ਜਦੋਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧ ਰਹੇ ਹੋ ਤਾਂ ਸਨੈਪਸ਼ਾਟ ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦੇ ਹਨ

ਸਨੈਪਸ਼ਾਟ ਤੁਹਾਡੇ ਐਪ ਦੀ ਇੱਕ ਸੰਭਾਲੀ ਹੋਈ ਹਾਲਤ ਹੁੰਦੀ ਹੈ ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਵਾਪਸ ਆ ਸਕਦੇ ਹੋ। ਇਸਨੂੰ ਇਕ ਖੇਡ ਦੇ ਸੇਵ-ਪਾਇੰਟ ਵਾਂਗ ਸੋਚੋ: ਤੁਸੀਂ ਕੋਈ ਖਤਰਨਾਕ ਕੰਮ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਜੇ ਗਲਤ ਹੋਵੇ ਤਾਂ ਤੁਸੀਂ ਉਸ ਵਕਤ ਤੇ ਵਾਪਸ ਆ ਸਕਦੇ ਹੋ ਜਦੋਂ ਸਭ ਚੀਜ਼ਾਂ ਠੀਕ ਕੰਮ ਕਰ ਰਹੀਆਂ ਸਨ।

ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਣਾ ਆਮ ਤੌਰ 'ਤੇ ਵੱਡੇ ਬਦਲਾਅ ਅਤੇ ਵੱਧ ਵਾਰਤੋਂ ਦਾ ਮਤਲਬ ਹੁੰਦਾ ਹੈ। ਇਹ ਗਤੀ ਫਾਇਦੇਮੰਦ ਹੈ, ਪਰ ਇਸ ਨਾਲ ਇਸ ਗੱਲ ਦਾ ਖਤਰਾ ਵੀ ਵਧ ਜਾਂਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਅਜੇਹੀ ਅਵਸਥਾ ਵਿੱਚ ਪਹੁੰਚ ਜਾਓ ਜਿੱਥੇ ਅਧ-ਟੁੱਟੇ ਹਾਲਤਾਂ ਹੋਣ ਅਤੇ “ਆਖਰੀ ਚੰਗਾ ਵਰਜ਼ਨ” ਕੁਝ ਸਮਝ ਨਾ ਆਵੇ। ਸਨੈਪਸ਼ਾਟ ਤੁਹਾਨੂੰ ਇੱਕ ਸਾਫ਼ ਰਾਹ-ਬਚਾਵ ਦਿੰਦੇ ਹਨ। ਤੁਸੀਂ ਘਬਰਾਏ ਬਿਨਾਂ ਅੱਗੇ ਵਧ ਸਕਦੇ ਹੋ ਕਿਉਂਕਿ ਤੁਹਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਤੁਸੀਂ ਬਿਨਾਂ ਅਨੁਮਾਨ ਲਗਾਉਣ ਦੇ ਕਿਸੇ ਜਾਣੇ-ਪਹਚਾਣੇ ਚੰਗੇ ਪੁਆਇੰਟ 'ਤੇ ਵਾਪਸ ਆ ਸਕਦੇ ਹੋ।

ਇਹ ਵਧੇਰੇ ਅਹਿਮ ਹੋ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਅਜਿਹੇ ਬਦਲਾਅ ਹੋ ਰਹੇ ਹੋਣ ਜੋ ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਨਾਲ ਪੂਰੇ ਐਪ 'ਤੇ ਪ੍ਰਭਾਵ ਪਾ ਸਕਦੀਆਂ ਹਨ। ਇੱਕ auth rewrite (ਨਵਾਂ ਲੌਗਿਨ ਫਲੋ, ਨਵੇਂ ਰੋਲ, ਨਵੀਂ ਟੋਕੇਨ ਹੈਂਡਲਿੰਗ), ਡੇਟਾਬੇਜ਼ ਸਕੀਮਾ ਬਦਲਾਅ (ਟੇਬਲਾਂ ਦਾ ਨਾਮ ਬਦਲਣਾ, ਕਾਲਮ ਵੰਡਣਾ, ਸੰਬੰਧਾਂ ਨੂੰ ਬਦਲਣਾ), ਜਾਂ UI ਰੀਡਿਜ਼ਾਈਨ (ਨਵੇਂ ਲੇਆਊਟ ਕੰਪੋਨੈਂਟ, ਨਵੀਂ ਰਾਊਟਿੰਗ, ਨਵੀਂ ਸਟੇਟ ਲਾਜਿਕ) ਇੱਕ ਜਗ੍ਹਾ 'ਤੇ ਠੀਕ ਦਿਸ ਸਕਦੇ ਹਨ ਪਰ ਚਪਕੇ-ਚਪਕੇ ਪੰਜ ਹੋਰ ਥਾਵਾਂ 'ਤੇ ਟੂਟ-ਫੁਟ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਅਜਿਹੇ ਨਹੀਂ ਚੈੱਕ ਕੀਤੀਆਂ।

ਰੋਲਬੈਕ ਇਸ ਵਿਚਾਰ ਦਾ ਦੂਜਾ ਹਿੱਸਾ ਹੈ। ਰੋਲਬੈਕ "ਆਖਰੀ ਕਲਿਕ ਰੱਦ ਕਰੋ" ਨਹੀਂ ਹੈ। ਇਹ "ਜਾਣੇ-ਪਹਚਾਣੇ ਚੰਗੇ ਹਾਲਤ 'ਤੇ ਵਾਪਸ ਆਓ" ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਜਾਂਚ ਕਰਦੇ ਹੋਏ ਸ਼ਿਪ ਕਰਨਾ ਜਾਰੀ ਰੱਖ ਸਕੋ।

ਜੇ ਤੁਸੀਂ Koder.ai ਵਰਗੇ ਪਲੇਟਫਾਰਮ 'ਤੇ ਚੈਟ ਰਾਹੀਂ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਉਂਦੇ ਹੋ, ਤਾਂ ਰਫਤਾਰ ਹੋਰ ਵੀ ਤੇਜ਼ ਹੋ ਸਕਦੀ ਹੈ। ਇਸ ਨਾਲ ਸਨੈਪਸ਼ਾਟ ਦੀ ਕੀਮਤ ਹੋਰ ਵਧ ਜਾਂਦੀ ਹੈ: ਤੁਸੀਂ ਵੱਡਾ ਬਦਲਾਅ ਮੰਗ ਸਕਦੇ ਹੋ, ਟੈਸਟ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਜੇ ਠੀਕ ਨਹੀਂ ਤਾਂ ਰੋਲਬੈਕ ਕਰਕੇ ਇੱਕ ਹੋਰ ਤਰੀਕੇ ਨਾਲ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ ਬਿਨਾਂ ਆਪਣਾ ਕੰਮ ਖੋਏ।

ਕਦੋਂ ਸਨੈਪਸ਼ਾਟ ਲੈਣੇ (ਅਤੇ ਕਦੋਂ ਨਹੀਂ)

ਸਨੈਪਸ਼ਾਟ ਸਭ ਤੋਂ ਵੱਧ ਕੀਮਤੀ ਹੁੰਦਾ ਹੈ ਓਸ ਵੇਲੇ ਜਦੋਂ ਤੁਸੀਂ ਉਸ ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ ਹੋ ਜੋ ਵਾਪਸ ਕਰਨਾ ਔਖਾ ਹੈ। "ਪਹਾਂ ਜ਼ਿੰਮੇਵਾਰੀ ਦੀ ਲਾਈਨ" ਤੋਂ ਪਹਿਲਾਂ ਲੈਣੇ ਦੀ ਸੋਚੋ। ਅਮਲ ਵਿੱਚ, ਸਨੈਪਸ਼ਾਟ ਆਮ ਤੌਰ 'ਤੇ ਚਾਰ ਪਰਿਸਥਿਤੀਆਂ ਵਿੱਚ ਆਪਣੇ ਆਪ ਨੂੰ ਸਾਬਿਤ ਕਰਦੇ ਹਨ:

  • ਓਸ ਸਮੇਂ ਦੇ ਬਿਲਕੁਲ ਪਹਿਲਾਂ ਜਦੋਂ ਕੋਈ ਖਤਰਨਾਕ ਬਦਲਾਅ ਕਈ ਫਾਇਲਾਂ ਨੂੰ ਛੂਹਦਾ ਹੋਵੇ।
  • ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਸਥਿਰ ਮਾਈਲਸਟੋਨ ਤੱਕ ਪਹੁੰਚਦੇ ਹੋ ਜੋ ਤੁਸੀਂ ਖੋਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ।
  • ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ majeur dependency ਜਾਂ ਸਰਵਿਸ ਨੂੰ ਅਪਗਰੇਡ ਜਾਂ ਬਦਲਦੇ ਹੋ।
  • ਜਦੋਂ ਤੁਸੀਂ ਕਈ ਬਦਲਾਵਾਂ ਨੂੰ ਇੱਕ ਰਿਲੀਜ਼ ਵਿੱਚ ਮਰਜ ਕਰਨ ਜਾ ਰਹੇ ਹੋ।

ਜੇ ਤੁਸੀਂ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਹੋ ਕਿ ਕੁਝ ਕਿੰਨਾ ਖਤਰਨਾਕ ਹੈ, ਤਾਂ ਇਸ ਭਾਵ ਨੂੰ ਦੇਖੋ: “ਬਹੁਤ ਕੁਝ ਬਦਲ ਰਿਹਾ ਹੈ ਅਤੇ ਮੈਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਸਰਾਂ ਦੀ ਭਵਿੱਖਬਾਣੀ ਨਹੀਂ ਕਰ ਸਕਦਾ।” ਅਸਪੱਸ਼ਟ ਮੰਗਾਂ, ਨਵੀਆਂ ਲਾਇਬਰੇਰੀਆਂ, ਵਿਆਪਕ ਰਿਫੈਕਟਰ, ਅਤੇ ਡੈਡਲਾਈਨ ਦਾ ਦਬਾਅ — ਇਹ ਸਾਰੇ ਸਨੈਪਸ਼ਾਟ ਲਈ ਚੰਗੇ ਕਾਰਨ ਹਨ। ਜਦੋਂ ਕਈ ਲੋਕ ਇੱਕੇ ਹੀ ਖੇਤਰ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਹੋਣ ਤਾਂ ਵੀ ਸਨੈਪਸ਼ਾਟ ਲੈਣਾ ਵਾਜਬ ਹੁੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਪ੍ਰਗਤੀ ਹੋਰਾਂ ਨੂੰ ਰੋਕਣੀ ਨਹੀਂ ਚਾਹੀਦੀ।

ਇੱਕ-ਦਿਸ਼ਾ ਵਾਲੇ ਫੈਸਲੇ

ਕਿਸੇ ਵੀ ਚੀਜ਼ ਤੋਂ ਪਹਿਲਾਂ ਜੋ "ਇੱਕ-ਦਿਸ਼ਾ ਦਰਵਾਜ਼ਾ" ਜਿਵੇਂ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਸਨੈਪਸ਼ਾਟ ਲਵੋ, ਖਾਸ ਕਰਕੇ:

  • ਡਾਟਾ ਮਾਈਗ੍ਰੇਸ਼ਨ
  • auth ਅਤੇ session ਲਾਜਿਕ
  • ਭੁਗਤਾਨ ਸਕੀਮ

ਜੇ ਕੋਈ ਬਦਲਾਅ ਯੂਜ਼ਰਾਂ ਨੂੰ ਲੌਗ ਆਊਟ ਕਰ ਸਕਦਾ ਹੈ, ਡਬਲ-ਚਾਰਜ ਕਰ ਸਕਦਾ ਹੈ, ਜਾਂ ਡਾਟਾ ਖਰਾਬ ਕਰ ਸਕਦਾ ਹੈ, ਤਾਂ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਮੂਲ ਫਲੋ ਸਹੀ ਚੱਲਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇੱਕ ਹੋਰ ਸਨੈਪਸ਼ਾਟ ਲਵੋ ਤਾਂ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ "ਨਵਾਂ ਜਾਣਿਆ-ਪਹਚਾਣਾ ਚੰਗਾ" ਪੁਆਇੰਟ ਹੋਵੇ।

ਕਦੋਂ ਸਨੈਪਸ਼ਾਟ ਨਾ ਲਵੋ

ਹਰ ਛੋਟੀ-ਛੋਟੀ ਸੋਧ ਲਈ ਸਨੈਪਸ਼ਾਟ ਲੈਣਾ ਉਹਨਾਂ ਨੂੰ ਸ਼ੋਰ ਬਣਾਉਂਦਾ ਹੈ। ਛੋਟੇ, ਘੱਟ-ਖਤਰਨਾਕ ਸੋਧਾਂ ਲਈ ਉਨ੍ਹਾਂ ਨੂੰ ਛੱਡ ਦਿਓ ਜੋ ਤੁਸੀਂ ਮਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਕਾਪੀ-ਸੰਪਾਦਨ ਜਾਂ ਛੋਟੀ-ਜਗ੍ਹਾ-ਸੰਬੰਧੀ ਸੁਧਾਰ।

ਇਸ ਤੋਂ ਬਚੋ ਕਿ ਐਪ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਖਰਾਬ ਹੋਣ 'ਤੇ ਸਨੈਪਸ਼ਾਟ ਲੈ ਲਈ ਜਾਵੇ, ਜਦ ਤੱਕ ਤੁਸੀਂ ਉਸਨੂੰ 'broken' ਵਜੋਂ ਲੇਬਲ ਨਾ ਕਰੋ। ਨਹੀਂ ਤਾਂ ਤੁਸੀਂ ਅੰਤ ਵਿੱਚ ਇੱਕ ਗੁੰਝਲਦਾਰ ਹਾਲਤ 'ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹੋ ਅਤੇ ਸਮਾਂ ਬਰਬਾਦ ਕਰਦੇ ਹੋ ਕਿ ਕਿਉਂ।

ਇੱਕ ਸਾਦਾ ਨਿਯਮ: ਹਰ ਅਰਥਪੂਰਨ ਚੈੱਕਪੋਇੰਟ 'ਤੇ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਜੇ ਤੁਸੀਂ ਆਖਰੀ 30 ਤੋਂ 60 ਮਿੰਟ ਦਾ ਕੰਮ ਖੋ ਦੇਣਾ ਦੁਖਦਾਈ ਹੋਵੇਗਾ, ਜਾਂ ਅਗਲਾ ਕਦਮ ਪ੍ਰੋਡਕਸ਼ਨ ਬਿਹੇਵਿਅਰ ਨੂੰ ਤੋੜ ਸਕਦਾ ਹੈ, ਤਾਂ ਇਹ ਤੁਹਾਡੀ ਇਸ਼ਾਰਾ ਹੈ।

ਸਨੈਪਸ਼ਾਟਾਂ ਨੂੰ ਲੇਬਲ ਕਰਨਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਠੀਕ ਇੱਕ ਬੁਝ ਸਕੋ

ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਸਿਰਫ਼ ਉਸ ਵੇਲੇ ਹੀ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਦੋ ਸੈਕਿੰਡਾਂ ਵਿੱਚ ਉਸਨੂੰ ਪਹਚਾਣ ਸਕੋ। ਦਬਾਅ 'ਤੇ ਹੋਣ ਸਮੇਂ ਲੇਬਲ ਤਿੰਨ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਤੇਜ਼ੀ ਨਾਲ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ:

  • ਕੀ ਬਦਲਿਆ ਸੀ?
  • ਕਿਉਂ ਬਦਲਿਆ ਸੀ?
  • ਕੀ ਇਸਨੂੰ ਵਾਪਸ ਲੈ ਆਉਣਾ ਸੁਰੱਖਿਅਤ ਹੈ?

ਇਕ ਪੜ੍ਹਨਯੋਗ ਨਾਂਕਰਨ ਪੈਟਰਨ

ਇੱਕ ਫਾਰਮੈਟ ਚੁਣੋ ਅਤੇ ਉਸਦਾ ਪਾਲਣ ਕਰੋ। ਇੱਕ ਮਜ਼ਬੂਤ ਡਿਫੌਲਟ ਹੈ:

YYYY-MM-DD - area - intent - status

ਤਾਰੀਖ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਸਾਰਟ ਕਰਦੀ ਹੈ, ਇਲਾਕਾ ਖੋਜ ਘੱਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਰਾਦਾ ਕਹਾਣੀ ਦੱਸਦਾ ਹੈ।

ਹਫ਼ਤਿਆਂ ਬਾਅਦ ਵੀ ਮੈਨੇਅਰ ਰੱਖਣ ਵਾਲੇ ਉਦਾਹਰਣ:

  • 2026-01-09 - auth - switch to email links - draft
  • 2026-01-09 - db - add invoices table - ready
  • 2026-01-10 - ui - new dashboard layout - release
  • 2026-01-11 - api - fix pagination bug - hotfix

ਯੋ ਜਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਤੋਂ ਬਚੋ: "v2", "test", "try again", ਜਾਂ "johns-fix" ਵਰਗੇ ਲੇਬਲ। ਉਹ ਲਮ੍ਹੇ ਲਈ ਤੇਜ਼ ਲੱਗਦੇ ਹਨ ਪਰ ਬਾਅਦ ਵਿੱਚ ਅਨੁਮਾਨ ਦਾ ਖੇਡ ਬਣ ਜਾਂਦੇ ਹਨ।

ਲੇਬਲ ਵਿੱਚ “ਕਿਉਂ” ਰੱਖੋ (ਸਿਰਫ਼ “ਕੀ” ਨਹੀਂ)

ਦੋ ਸਨੈਪਸ਼ਾਟ ਇੱਕੋ ਖੇਤਰ ਨੂੰ ਛੂਹ ਸਕਦੇ ਹਨ ਪਰ ਵੱਖ-ਵੱਖ ਕਾਰਨਾਂ ਲਈ। "auth - refactor" ਢੀਲਾ ਹੈ, ਪਰ "auth - refactor to support SSO" ਸਾਫ਼ ਹੈ। ਮਕਸਦ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਇਹ ਸੰਕੇਤ ਦਿੰਦਾ ਹੈ ਕਿ ਰੀਸਟੋਰ ਕਰਨ ਉਤੇ ਕੀ ਕੰਮ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ।

ਜੇ ਲੇਬਲ ਬਹੁਤ ਲੰਬਾ ਹੋ ਰਿਹਾ ਹੈ, ਤਾਂ ਲੇਬਲ ਨੂੰ ਸੰਗਠਿਤ ਰੱਖੋ ਅਤੇ ਜੇ ਤੁਹਾਡੇ ਟੂਲ ਵਿੱਚ ਨੋਟਸ ਸਹਾਇਤਾ ਹੋਵੇ ਤਾਂ ਇੱਕ ਵਾਕ ਵਿੱਚ ਲਿਖੋ: ਤੁਸੀਂ ਕੀ ਕੀਤਾ, ਕਿਉਂ ਕੀਤਾ, ਅਤੇ ਰੀਸਟੋਰ ਤੋਂ ਬਾਅਦ ਕੀ ਚੈੱਕ ਕਰਨਾ ਹੈ।

ਕੋਈ ਗਲਤ ਰੀਸਟੋਰ ਨਾ ਕਰੇ — ਸਟੇਟਸ ਟੈਗ ਵਰਤੋਂ

ਛੋਟੇ ਟੈਗ ਦ accidents ਬਚਾਉਂਦੇ ਹਨ:

  • draft - ਕੰਮ ਮੱਧ 'ਚ, ਚਲ ਸਕਦਾ/ਨਹੀਂ
  • ready - ਬੁਨਿਆਦੀ ਚੈਕ ਪਾਸ ਕਰਦਾ, ਇਸ ਤੋਂ ਅੱਗੇ ਤੋਂ ਲਿਆ ਜਾ ਸਕਦਾ
  • release - ਜੋ ਰਿਲੀਜ਼ ਕੀਤਾ ਗਿਆ ਉਸਦਾ ਮੇਲ
  • hotfix - ਪ੍ਰੋਡਕਸ਼ਨ ਮੁੱਦੇ ਲਈ ਬਣਾਇਆ ਗਿਆ

ਜੇ ਤੁਸੀਂ ਸਿਰਫ ਇੱਕ ਨਿਯਮ ਅਪਨਾਉਂਦੇ ਹੋ, ਤਾਂ ਇਹ ਇਹੋ: ਕੁਝ ਵੀ release ਨਾ ਚਿੰਨ੍ਹੋ ਜਦ ਤੱਕ ਤੁਸੀਂ ਬੇਚਰਚਾ ਉਸਨੂੰ ਰੀਸਟੋਰ ਕਰਨ ਵਿੱਚ ਸੁਖੀ ਨਹੀਂ ਹੋ।

ਸਧਾਰਨ ਅਧਿਕਾਰ ਨਾਲ ਭ੍ਰਮ ਤੋਂ ਬਚੋ

ਫੈਸਲਾ ਕਰੋ ਕਿ ਕੌਣ ਸਨੈਪਸ਼ਾਟ ਦਾ ਨਾਮ ਬਦਲ ਸਕਦਾ ਜਾਂ ਮਿਟਾ ਸਕਦਾ ਹੈ। ਨਾਂ ਬਦਲਣਾ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਜਦੋਂ ਬਦਲਾਅ ਸਮਝ ਆਉਂਦਾ ਹੈ ਤਾਂ ਲੇਬਲ ਅਕਸਰ ਸੁਧਰ ਜਾਂਦੇ ਹਨ, ਪਰ ਇਹ ਗੜਬੜ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ।

ਇੱਕ ਅਮਲੀ ਤਰੀਕ: ਕੋਈ ਵੀ ਸਨੈਪਸ਼ਾਟ ਬਣਾ ਸਕਦਾ ਹੈ, ਪਰ ਸਿਰਫ ਇੱਕ ਛੋਟੀ ਮਾਲਕ ਗਰੁੱਪ ਨਾਮ ਬਦਲਣ ਜਾਂ ਮਿਟਾਉਣ ਲਈ ਹੋਵੇ, ਅਤੇ ਟੀਮ ਦੀ ਸਹਿਮਤੀ ਤੋਂ ਬਾਅਦ। ਇਸ ਨਾਲ ਟਾਈਮਲਾਈਨ ਪੜ੍ਹਨਯੋਗ ਰਹਿੰਦੀ ਹੈ ਖਾਸ ਕਰਕੇ ਵੱਡੇ ਬਦਲਾਅ ਜਿਵੇਂ auth rewrite, schema change, ਜਾਂ UI redesign ਦੌਰਾਨ।

ਇਸ ਨੂੰ ਗੰਦੇ ਟਾਈਮਲਾਈਨ ਤੋਂ ਬਚਾਉਣ ਲਈ ਸੰਗਠਨ ਕਰਨਾ

ਸਨੈਪਸ਼ਾਟ ਤਦ ਹੀ ਲਾਭਦਾਇਕ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਪੁੱਛ ਸਕੋ: "ਮੈਂ ਕਿਸੇ ਨੂੰ ਰੋਲਬੈਕ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ ਤਾਂ ਮੈਂ ਕਿਸੇ ਨੂੰ ਚੁਣਾਂ?" ਇੱਕ ਸਾਫ਼ ਟਾਈਮਲਾਈਨ ਘੱਟ ਸਨੈਪਸ਼ਾਟ ਲੈਣ ਬਾਰੇ ਨਹੀਂ, ਬਲਕਿ ਇੱਕੋ ਸਧਾਰਨ ਪ੍ਰਣਾਲੀ ਦੇ ਉਪਯੋਗ ਬਾਰੇ ਹੈ।

ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਸਨੈਪਸ਼ਾਟਾਂ ਨੂੰ ਥੀਮ ਦੇ ਅਨੁਸਾਰ ਗਰੁੱਪ ਕਰੋ, ਭਾਵੇਂ ਕਿ Auth, Database, UI, ਅਤੇ Release candidates ਵਰਗੀਆਂ bucket। ਜੇ ਤੁਸੀਂ ਇਹ buckets ਸਥਿਰ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਭਵਿਖ ਦਾ ਤੁਸੀਂ ਆਪਣੇ ਆਪ ਨੂੰ "try-3-final-final" ਨੂੰ ਡੀਕੋਡ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਵੇਗੀ।

ਤੁਸੀਂ ਊਪਰ ਦਿੱਤੇ ਨਾਂਕਰਨ ਪੈਟਰਨ ਨੂੰ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹੋ, ਜਾਂ ਸਾਰਣੀ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਸਕੈਨ ਕਰਨ ਲਈ CAPS ਥੀਮ ਪ੍ਰੀਫਿਕਸ ਵਰਤ ਸਕਦੇ ਹੋ। ਉਦਾਹਰਨ:

  • AUTH-2026-01-09 - session rewrite - pre
  • DB-2026-01-09 - schema v2 - known good

ਜੇ ਤੁਹਾਡਾ ਪਲੇਟਫਾਰਮ ਨੋਟਸ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਤਾਂ ਓਹਨਾ ਨੂੰ ਸੰਯਮ ਨਾਲ ਵਰਤੋਂ। ਦੋ-ਤਿੰਨ ਲਾਈਨਾਂ ਕਾਫ਼ੀ ਹਨ:

  • Goal: ਕੀ ਤੁਸੀਂ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਸੀ
  • Risk: ਕੀ ਟੁਟ ਸਕਦਾ ਹੈ (login, migrations, payments)
  • Rollback safety: known good ਜਾਂ ਸਿਰਫ਼ ਸੁਝਾਅ ਲਈ

ਇਹ ਵੀ ਸਹਾਇਕ ਹੁੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਦੋ "ਟੀਅਰ" ਸਨੈਪਸ਼ਾਟ ਰੱਖੋ:

  • Milestones: ਉਹ ਛੋਟੀ ਸੈਟ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਭਰੋਸਾ ਕਰਦੇ ਹੋ
  • Workbench: ਪ੍ਰਯੋਗ ਦੌਰਾਨ ਤੁਰੰਤ ਸੇਵ ਪੁਆਇੰਟ

ਜਦੋਂ ਕੋਈ ਤਜਰਬਾ ਖਤਮ ਹੋ ਜਾਵੇ, ਤਾਂ ਉਸਨੂੰ ਹਟਾਓ ਜਾਂ ਆਰਕਾਈਵ ਕਰੋ ਅਤੇ ਲੇਬਲ ਦਿਓ ਜੋ ਸਵੀਕਾਰ ਕਰਦਾ ਹੋ ਕਿ ਇਹ ਟੈਸਟ ਸੀ। ਟਾਈਮਲਾਈਨ ਉਸ ਵੇਲੇ ਹੀ ਉਪਯੋਗੀ ਰਹਿੰਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਹਰ ਸਨੈਪਸ਼ਾਟ ਨੂੰ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਮੰਨਦੇ।

ਆਖਿਰਕਾਰ, "ਜਾਣਿਆ-ਪਹਚਾਣਾ ਚੰਗਾ" ਸਨੈਪਸ਼ਾਟ ਜਾਣ-ਬੂਝ ਕੇ ਨਿਸ਼ਾਨ ਲਗਾਓ। ਇਹ ਸਿਰਫ਼ ਛੋਟੇ sanity ਚੈੱਕ ਤੋਂ ਬਾਅਦ ਕਰੋ (ਐਪ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਮੁੱਖ ਫਲੋ ਕੰਮ ਕਰਦਾ ਹੈ, ਕੋਈ ਅਸਪੱਸ਼ਟ ਜ਼ਰੂਰੀ ਤਰੁਟੀਆਂ ਨਹੀਂ)। ਜੇ ਬਾਅਦ ਵਿੱਚ ਸਭ ਕੁਝ ਟੁੱਟ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਸਮਾਂ ਬਰਬਾਦ ਨਹੀਂ ਕਰੋਗੇ ਕਿ ਕਿਹੜਾ ਸਨੈਪਸ਼ਾਟ ਸੁਰੱਖਿਅਤ ਹੈ।

ਕਦਮ-ਬ-कਦਮ: ਵੱਡੇ ਬਦਲਾਅ ਦੌਰਾਨ ਸੇਵ-ਪਾਇੰਟ ਵਜੋਂ ਸਨੈਪਸ਼ਾਟ ਵਰਤਣਾ

ਕੋਡ ਤੋਂ ਪਹਿਲਾਂ ਬਦਲਾਵ ਦੀ ਯੋਜਨਾ ਬਣਾਓ
ਪਹਿਲਾਂ ਆਪਣਾ auth ਜਾਂ schema ਬਦਲਾਅ ਰੂਪਰੇਖਾ ਬਣਾ ਲਵੋ, ਫਿਰ ਸੋਧਾਂ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਪਾਇੰਟ ਸੈੱਟ ਕਰੋ।
ਪਲਾਨਿੰਗ ਵਰਤੋ

ਵੱਡੇ ਬਦਲਾਅ ਖਤਰਨਾਕ ਮਹਿਸੂਸ ਹੁੰਦੇ ਹਨ ਕਿਉਂਕਿ ਤੁਸੀਂ ਨਵੇਂ ਕੋਡ ਨੂੰ ਅਣਪਛਾਤੇ ਸਾਈਡ-ਇਫੈਕਟਸ ਨਾਲ ਮਿਲਾ ਰਹੇ ਹੋ। ਸੁਧਾਰ ਬੋoring ਪਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੈ: ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਨੂੰ ਸੇਵ-ਪਾਇੰਟ ਵਜੋਂ ਇੰTreat ਕਰੋ। ਛੋਟੇ, ਵਾਪਸੀਯੋਗ ਕਦਮਾਂ ਵਿੱਚ ਅੱਗੇ ਵਧੋ।

ਇਕ ਦੁਹਰਾਏ ਜਾਣ ਯੋਗ ਵਰਕਫਲੋ

ਇੱਕ ਸਾਫ਼ "ਜਾਣਿਆ-ਪਹਚਾਣਾ" ਲੈਂਡਮਾਰ্ক ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਇਕ ਭਰੋਸੇਯੋਗ ਟਰੇਲ ਛੱਡੋ।

  1. ਮਹੱਤਵਪੂਰਨ چیزਾਂ ਨੂੰ ਛੇੜਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਬੇਸਲਾਈਨ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਇਸ ਨੂੰ ਸਪੱਸ਼ਟ ਨਾਂ ਦਿਓ, ਉਦਾਹਰਨ: KNOWN-GOOD main 2026-01-09.
  2. ਇੱਕ ਛੋਟਾ ਚੰਕ ਬਦਲਾਅ ਕਰੋ (ਇਕ ਫਾਇਲ ਗਰੁੱਪ, ਇਕ ਫੀਚਰ ਸਲਾਈਸ, ਇਕ ਮਾਈਗ੍ਰੇਸ਼ਨ ਕਦਮ)।
  3. ਤੁਰੰਤ ਤੇਜ਼ ਚੈਕ ਚਲਾਓ, ਜਦ ਕਿ ਬਦਲਾਅ ਹਾਲੇ ਤਾਜ਼ਾ ਹੋਵੇ।
  4. ਜੇ ਚੰਕ ਪਾਸ ਹੁੰਦਾ ਹੈ ਤਾਂ ਫਿਰ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਜੇ ਫੇਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਰੋਲਬੈਕ ਕਰੋ ਅਤੇ ਚੰਕ ਨੂੰ ਛੋਟਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕਰੋ।
  5. ਸਭ ਤੋਂ ਵਧੀਆ ਰਾਹ ਆਗੇ ਰੱਖੋ ਅਤੇ ਉਹ ਤਜਰਬੇ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਵਾਪਸ ਨਹੀਂ ਜਾਣਾ ਚਾਹੁੰਦੇ ਉਹਨਾਂ ਨੂੰ ਮਿਟਾ ਦਿਓ ਜਾਂ ਆਰਕਾਈਵ ਕਰੋ।

ਜਿੱਥੇ ਸਨੈਪਸ਼ਾਟ ਸਸਤੇ ਹਨ ਅਤੇ ਰੋਲਬੈਕ ਤੇਜ਼ ਹੈ (Koder.ai ਸਮੇਤ), ਇਹ ਚੰਗੀਆਂ ਆਦਤਾਂ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ "ਮੈਂ ਬਾਅਦ ਵਿੱਚ ਠੀਕ ਕਰ ਲਵਾਂਗਾ" ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਰਹਿੰਦੇ ਕਿਉਂਕਿ ਸਹੀ ਢੰਗ ਨਾਲ ਰਿਕਵਰੀ ਦਰਦਨਾਕ ਨਹੀਂ ਹੁੰਦੀ।

ਹਰ ਚੰਕ ਤੋਂ ਬਾਅਦ ਕੀ ਚੈੱਕ ਕਰਨਾ

ਚੈੱਕ ਛੋਟੇ ਅਤੇ ਦੁਹਰਾਏ ਜਾ ਸਕਣ ਯੋਗ ਰੱਖੋ। ਤੁਸੀਂ ਹਰ ਵਾਰ ਪੂਰੀ QA ਨਹੀਂ ਕਰ ਰਹੇ — ਤੁਸੀਂ ਸਾਦਾ ਰਾਹ ਵਿੱਚ ਵੱਡੀਆਂ ਖਾਮੀਆਂ ਫੜ ਰਹੇ ਹੋ।

  • ਕੀ ਤੁਸੀਂ ਲੌਗ ਇਨ ਅਤੇ ਲੌਗ ਆਊਟ ਕਰ ਸਕਦੇ ਹੋ (ਜਾਂ ਮੁੱਖ auth ਫਲੋ ਪੂਰਾ ਹੋ ਰਿਹਾ ਹੈ)?
  • ਕੀ ਮੁੱਖ ਸਕਰੀਨ ਲੋਡ ਹੁੰਦੇ ਹਨ (ਹੋਮ, ਸੈਟਿੰਗਜ਼, ਇੱਕ ਕੋਰ ਫੀਚਰ ਪੇਜ)?
  • ਕੀ ਮੁੱਖ ਡਾਟਾ ਲਈ ਇੱਕ ਬੁਨਿਆਦੀ create-read-update ਫਲੋ ਅਜੇ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ?
  • ਕੀ ਕਿਸੇ ਜ਼ੋਰਦਾਰ ਤਰੁਟੀਆਂ ਹਨ (ਖਾਲੀ ਪੰਨੇ, ਫੇਲ ਹੋ ਰਹੀਆਂ API ਕਾਲਾਂ, ਟੁੱਟੀ ਰਾਉਟਿੰਗ)?

ਅਸਲ ਵੱਡੇ-ਬਦਲਾਅ ਕੰਮ ਦੌਰਾਨ ਇਹ ਕਿਵੇਂ ਦਿਖਦਾ ਹੈ

ایک auth rewrite ਲਈ, ਕੰਮ ਨੂੰ ਸਲਾਈਸਾਂ ਵਿੱਚ ਤੋੜੋ: ਨਵੀਂ auth config ਪੇਸ਼ ਕਰੋ, ਇੱਕ ਰੂਟ ਨੂੰ ਨਵੇਂ ਗਾਰਡ 'ਤੇ ਸਵਿੱਚ ਕਰੋ, ਫਿਰ ਬਾਕੀ ਹਿਲਾਓ। ਹਰ ਸਵਿੱਚ ਤੋਂ ਬਾਅਦ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਜੇ session ਹੈਂਡਲਿੰਗ ਟੁੱਟੇ, ਤਾਂ ਆਖਰੀ ਜਾਣੇ-ਪਹਚਾਣੇ ਚੰਗੇ ਸਨੈਪਸ਼ਾਟ 'ਤੇ ਰੋਲਬੈਕ ਕਰੋ ਅਤੇ ਛੋਟੀ ਸਲਾਈਸ ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।

ਸਕੀਮਾ ਬਦਲਾਅ ਲਈ, ਫੇਜ਼ਾਂ ਵਰਤੋ: ਪਹਿਲਾਂ ਨਵੀਆਂ ਟੇਬਲਾਂ ਜਾਂ ਕਾਲਮਾਂ ਜੋੜੋ (ਕੋਈ ਵਿਹੇਵਿਆ ਬਦਲਾਅ ਨਹੀਂ), ਸਨੈਪਸ਼ਾਟ ਲਵੋ, ਫਿਰ ਪੜ੍ਹਨ-ਲਿਖਨ ਅਪਡੇਟ ਕਰੋ, ਸਨੈਪਸ਼ਾਟ ਲਵੋ, ਅਤੇ ਫਿਰ ਹੀ ਪੁਰਾਣੇ ਫੀਲਡ ਹਟਾਓ। ਜੇ ਡਾਟਾ ਲਿਖਾਈ ਟੁੱਟਦੀ ਹੈ ਤਾਂ ਰੋਲਬੈਕ ਤੁਹਾਨੂੰ ਅਣਜਾਣੇ ਬਦਲਾਅ ਤੋਂ ਬਚਾਏਗਾ।

UI ਰੀਡਿਜ਼ਾਈਨ ਲਈ, ਇੱਕ ਵਾਰੀ ਸਾਰੀਆਂ ਪੇਜਾਂ ਬਦਲਣ ਤੋਂ ਰੋਕੋ। ਇੱਕ ਮੁੱਖ ਸਕਰੀਨ redesign ਕਰੋ, ਸਨੈਪਸ਼ਾਟ ਲਵੋ, ਫਿਰ ਇੱਕੋ ਪੈਟਰਨ ਅਗਲੇ 'ਤੇ ਲਗਾਓ। UI header+nav, UI dashboard v2, ਅਤੇ UI forms cleanup ਵਰਗੇ ਲੇਬਲ ਬਾਅਦ ਵਿੱਚ "ਕਿਹੜਾ ਸਨੈਪਸ਼ਾਟ ਚੰਗਾ ਸੀ?" ਦੇ ਸਵਾਲ ਨੂੰ ਰੋਕਦੇ ਹਨ।

auth, schema, ਅਤੇ UI ਕੰਮ ਲਈ ਪ੍ਰੈਕਟਿਕਲ ਸਨੈਪਸ਼ਾਟ ਪੈਟਰਨ

ਵੱਡੇ ਬਦਲਾਅ ਬਹੁਤ ਹੀ ਆਮ ਤੌਰ 'ਤੇ ਨਿਰਾਸ਼ ਕਰਨ ਵਾਲੇ ਤਰੀਕੇ ਨਾਲ ਫੇਲ ਹੁੰਦੇ ਹਨ: ਇੱਕ ਗੁੰਮ ਹੋਇਆ ਰੀਡਾਇਰੈਕਟ, ਅੱਧੇ ਚੱਲੇ ਮਾਈਗ੍ਰੇਸ਼ਨ, ਇੱਕ ਲੇਆਊਟ ਜੋ ਡੈਸਕਟਾਪ 'ਤੇ ਠੀਕ ਲੱਗਦਾ ਪਰ ਮੋਬਾਈਲ 'ਤੇ ਟੁੱਟ ਜਾਂਦਾ। ਸਭ ਤੋਂ ਆਸਾਨ ਸੇਫਟੀ ਨੈੱਟ ਉਹ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਉਹਨਾਂ ਮੋਮੈਂਟਾਂ 'ਤੇ ਸਨੈਪਸ਼ਾਟ ਲਵੋ ਜਿੱਥੇ ਤੁਸੀਂ ਇੱਕ ਰੇਖਾ ਕੱਟਦੇ ਹੋ ਜੋ ਆਸਾਨੀ ਨਾਲ ਵਾਪਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।

Auth rewrite: ਯੂਜ਼ਰ ਫਲੋ ਬਦਲਾਅ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਸੇਵ-ਪਾਇੰਟ

Auth ਕੰਮ ਖਤਰਨਾਕ ਹੈ ਕਿਉਂਕਿ ਇੱਕ ਛੋਟਾ ਬਦਲਾਅ ਸਭ ਨੂੰ ਲੌਗ ਆਊਟ ਕਰ ਸਕਦਾ ਹੈ۔ ਲੌਗਿਨ ਰਾਹ ਦੇ ਰੂਪ-ਬਦਲਾਅ 'ਤੇ ਸਨੈਪਸ਼ਾਟ ਲਵੋ:

  • ਫਲੋ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ: auth | baseline | current login+signup works | status: ready
  • ਨਵਾਂ provider (Google, email magic link, SSO) ਜੋੜਨ ਤੋਂ ਬਾਅਦ: auth | add provider X | status: draft
  • ਡਿਫੌਲਟ ਸਵਿੱਚ ਕਰਨ ਤੋਂ ਬਾਅਦ: auth | switch default | status: ready

ਪੁਰਾਣੇ ਅਤੇ ਨਵੇਂ ਵਰਜ਼ਨ ਨੂੰ ਤੁਲਨਾਤਮਕ ਬਣਾਈ ਰੱਖਣ ਲਈ ਹਰ ਵਾਰੀ ਉਹੀ ਟੈਸਟ ਪਾਥ ਵਰਤੋ: ਨਵਾਂ ਉਪਭੋਗੀ ਸਾਈਨਅੱਪ, ਲੌਗਆਊਟ, ਲੌਗਿਨ, ਪਾਸਵਰਡ ਰੀਸੈੱਟ (ਜੇ ਹੈ), ਅਤੇ ਇੱਕ ਪ੍ਰੋਟੈਕਟਡ ਪੇਜ ਦੀ ਯਾਤਰਾ।

Schema change: ਅਣਵਾਪਸੀਯੋਗ ਡਾਟਾ ਕਦਮਾਂ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਸਨੈਪਸ਼ਾਟ

ਡੇਟਾਬੇਜ਼ ਬਦਲਾਅ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਰੋਲਬੈਕ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਅਹਿਮ ਹੁੰਦਾ ਹੈ। ਇੱਕ ਸਾਫ਼ ਪ੍ਰਵਾਹ ਹੈ:

  • ਮਾਈਗ੍ਰੇਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ: db | pre-migration | status: ready
  • ਮਾਈਗ੍ਰੇਸ਼ਨ ਤੋਂ ਬਾਅਦ (ਸੰਰਚਨਾ ਬਦਲੀ, ਐਪ ਹਿਸੇ ਤੌਰ 'ਤੇ ਟੁੱਟ ਸਕਦੀ ਹੈ): db | post-migration | status: draft
  • ਬੈਕਫਿਲ ਤੋਂ ਬਾਅਦ (ਡਾਟਾ ਕਾਪੀ ਜਾਂ ਰੂਪਾਂਤਰਨ ਹੋਇਆ): db | post-backfill | status: ready
  • ਐਪ ਅਪਡੇਟ ਤੋਂ ਬਾਅਦ (ਕੋਡ ਹੁਣ ਨਵੀਂ ਸਕੀਮਾ ਵਰਤਦਾ ਹੈ): db | app updated | status: ready

ਯਾਦ ਰਹੇ ਕਿ ਰੋਲਬੈਕ ਤੁਹਾਨੂੰ ਹੈਰਾਨ ਕਰ ਸਕਦਾ ਹੈ ਜਦੋਂ “ਸਮੱਸਿਆ” ਸਿਰਫ਼ ਕੋਡ ਨਹੀਂ ਹੁੰਦੀ। ਜੇ ਤੁਹਾਡੀ ਸਕੀਮਾ ਅੱਗੇ ਮਾਈਗ੍ਰੇਟ ਹੋ ਗਈ, ਕੋਈ env ਵੈਰੀਏਬਲ ਬਦਲ ਗਿਆ, ਜਾਂ config ਡ੍ਰਿਫਟ ਹੋਇਆ, ਤਾਂ ਸਿਰਫ਼ ਕੋਡ ਰੀਸਟੋਰ ਕਰਨਾ ਬਰਤਾਅ ਮੁੜ ਨਹੀਂ ਲਿਆਉਂਦਾ। ਬਾਹਰੀ ਬਦਲਾਅ ਨੂੰ ਨਾਂ ਜਾਂ ਨੋਟਸ ਵਿੱਚ ਦਰਜ ਕਰੋ।

UI redesign: ਹਰ ਦਿੱਖਣਯੋਗ ਮੀਲ-ਪਥ 'ਤੇ ਸਨੈਪਸ਼ਾਟ

UI ਕੰਮ ਵਾਪਸੀਯੋਗ ਲੱਗਦਾ ਹੈ ਤਾਂ ਜੋ ਨਹੀਂ ਹੋ। ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਸਪਸ਼ਟ ਵੇਖਣ ਮੀਲ-ਸਟੋਨ ਹਾਸਲ ਕਰੋ ਤਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ:

  • ਲੇਆਊਟ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ: ui | baseline | status: ready
  • ਨਵੇਂ ਕੰਪੋਨੈਂਟ ਲੈਂਡ ਹੋਣ ਤੋਂ ਬਾਅਦ: ui | new header+cards | status: draft
  • ਰਿਸਪਾਂਸਿਵ ਫਿਕਸਾਂ ਤੋਂ ਬਾਅਦ: ui | responsive pass | status: ready

ਵਰਜ਼ਨਾਂ ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ ਇੱਕੋ ਤੇਜ਼ ਡੈਮੋ ਸਕ੍ਰਿਪਟ ਵਰਤੋ: ਤਿੰਨ ਮੁੱਖ ਸਕਰੀਨ ਖੋਲੋ, ਮੋਬਾਈਲ ਚੌੜਾਈ ਦੇ ਲਈ ਰੀਸਾਈਜ਼ ਕਰੋ, ਅਤੇ ਇੱਕ ਪ੍ਰਮੁੱਖ ਕਾਰਵਾਈ ਪੂਰੀ ਕਰੋ (ਜਿਵੇਂ "ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ" ਜਾਂ "ਚੈਕਆਊਟ")।

ਇੱਕ ਹਕੀਕਤੀ ਉਦਾਹਰਣ: ਇਕ ਵੀਕਐਂਡ ਰਿਲੀਜ਼ ਜੋ ਲਗਭਗ ਟੁੱਟ ਗਈ ਸੀ

ਵੱਡੇ ਰਿਫੈਕਟਰਸ, ਘੱਟ ਡਰ
ਮਿੰਟਾਂ ਵਿੱਚ ਵੱਡੇ ਸੋਧ ਕਰੋ, ਅਤੇ ਜਦੋਂ ਲੋੜ ਹੋਵੇ ਤਾਂ ਜਾਣੇ-ਪਹਚਾਨੇ ਸਰੂਪ ਤੇ ਵਾਪਿਸ ਆਓ।
Koder ai ਫ਼ਰਮਾਓ

ਇੱਕ ਇਕੱਲਾ ਨirmaata ਇੱਕ ਛੋਟੀ subscription ਐਪ 'ਤੇ ਸ਼ਨੀਵਾਰ ਨੂੰ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ। ਯੋਜਨਾ ਸਧਾਰਨ ਲੱਗੀ: ਲੌਗਿਨ ਫਲੋ ਨੂੰ ਨਵੇਂ ਟੋਕੇਨ ਫਾਰਮੈਟ ਨਾਲ ਸਵਪ ਕਰਨਾ, ਅਤੇ Settings ਪੇਜ ਨੂੰ ਮੋਬਾਈਲ 'ਤੇ ਚੰਗਾ ਦੇਖਣ ਲਈ ਰੀਫਰੇਸ਼ ਕਰਨਾ।

ਉਹਨਾਂ ਨੇ ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਨੂੰ ਸੇਵ-ਪਾਇੰਟ ਵਾਂਗ ਵਰਤਿਆ। ਬੜੀ ਗੱਲ ਕਰਦੇ ਹੋਏ ਵੀ ਉਨ੍ਹਾਂ ਨੇ ਪਹਿਲਾਂ ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਬਣਾਇਆ ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਨਿਸ਼ਾਨ ਦੇਆ ਜੋ ਉਹ ਭਰੋਸਾ ਕਰ ਸਕਦੇ ਸਨ।

ਉਹਨਾਂ ਨੇ ਹਫਤੇ ਦੇ ਦੌਰਾਨ ਇਹ ਕੈਪਚਰ ਕੀਤਾ:

  • fri-1900_main_green (ਸਭ ਕੁਝ ਕੰਮ ਕਰ ਰਿਹਾ ਸੀ, ਆਖਰੀ ਸ਼ਾਂਤ ਪਾਇੰਟ)
  • sat-1030_auth_token_v2_start (auth ਬਦਲਣ ਤੋਂ ਬਿਲਕੁਲ ਪਹਿਲਾਂ)
  • sat-1400_settings_redesign_start (UI ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ)
  • sat-1730_pre_merge_smoke_pass (ਤੇਜ਼ ਮੈਨੂਅਲ ਚੈੱਕ ਤੋਂ ਬਾਅਦ)

ਨੁਕਸਾਨ ਸ਼ਨੀਵਾਰ ਰਾਤ ਨੂੰ ਆਇਆ। auth ਬਦਲਾਅ ਅਤੇ Settings ਰੀਡਿਜ਼ਾਈਨ ਮਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਉਪਭੋਗੀ ਲੌਗਿਨ ਕਰ ਸਕਦੇ ਸਨ ਪਰ ਫਿਰ ਲੌਗਿਨ ਸਕਰੀਨ 'ਤੇ ਲੂਪ ਕਰ ਰਹੇ ਸਨ। ਕਾਰਨ ਛੋਟਾ ਸੀ: ਨਵੇਂ ਟੋਕੇਨ ਨੂੰ ਇੱਕ ਵੱਖਰੇ ਕੀ ਅਧੀਨ ਸਟੋਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ ਜੋ ਬਾਕੀ ਐਪ ਉਮੀਦ ਕਰਦੀ ਨਹੀਂ ਸੀ, ਇਸ ਲਈ ਹਰ ਪੇਜ ਲੋਡ "ਲੌਗ ਆਊਟ" ਵਰਗਾ ਲੱਗਦਾ।

ਟੈਨਸ਼ਨ ਤੇਜ਼ੀ ਨਾਲ ਵਧੀ ਕਿਉਂਕਿ Settings ਰੀਡਿਜ਼ਾਈਨ ਨੇ ਵੀ ਯੂਜ਼ਰ ਪ੍ਰੋਫਾਈਲ ਫੀਲਡ ਛੇੜੀਆਂ ਅਤੇ ਇਕ ਕਿਊਰੀ ਖਾਲੀ ਡਾਟਾ ਵਾਪਸ ਕਰ ਰਹੀ ਸੀ। ਅਚਾਨਕ ਇਹ ਅਸਪਸ਼ਟ ਹੋ ਗਿਆ ਕਿ ਮਸਲਾ auth ਹੈ, ਡੀਬੀ ਕਾਲ ਹੈ, ਜਾਂ UI ਸਟੇਟ ਹੈ।

ਰੋਲਬੈਕ ਨੇ ਸਭ ਕੁਝ ਬੋਰਿੰਗ ਬਣਾ ਦਿੱਤਾ। ਉਸਨੇ sat-1030_auth_token_v2_start 'ਤੇ ਵਾਪਸ ਕੀਤਾ, ਪੁਰਾਣੀ ਲੌਗਿਨ ਪੁਸ਼ਟੀ ਕੀਤੀ, ਫਿਰ ਸਿਰਫ auth ਬਦਲਾਅ ਪ ਲਾਗੂ ਕੀਤਾ ਜਦ ਤੱਕ ਲੂਪ ਖ਼ਤਮ ਨਾ ਹੋ ਗਿਆ। ਫਿਰ ਉਹ sat-1400_settings_redesign_start ਤੋਂ ਅੱਗੇ ਵਧੇ ਅਤੇ Settings ਪੇਜ 'ਤੇ ਗੁੰਮ ਹੋਇਆ ਸਟੇਟ ਠੀਕ ਕੀਤਾ ਬਿਨਾਂ auth ਡੀਬੱਗਿੰਗ ਨਾਲ ਮਿਲਾਉਂਦੇ ਹੋਏ।

ਐਤਵਾਰ ਨੂੰ ਉਸਨੇ ਇਕ ਆਦਤ ਬਦਲੀ: ਹਰ ਸਨੈਪਸ਼ਾਟ ਨਾਮ ਵਿੱਚ (1) ਕੀ ਬਦਲ ਰਿਹਾ ਸੀ, (2) ਜੋਖਮ ਸਤਰ, ਅਤੇ (3) ਇੱਕ ਛੋਟਾ "last known good" ਟੈਸਟ ਸ਼ਾਮِل ਕੀਤਾ, ਜਿਵੇਂ ..._green_smoke। ਉਹਨਾਂ ਨੇ ਹਰ ਨਿandਕਲੀਆਂ ਟੈਸਟ ਤੋਂ ਬਾਅਦ ਇੱਕ ਵਾਧੂ ਸਨੈਪਸ਼ਾਟ ਲੈਣਾ ਸ਼ੁਰੂ ਕੀਤਾ, ਨਾ ਕਿ ਸਿਰਫ਼ ਖਤਰਨਾਕ ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ। ਇਹ ਇਕ ਨਿਯਮ ਅਗਲੇ ਰਿਲੀਜ਼ ਦੇ ਪੈਨਿਕ ਨੂੰ ਅੱਧਾ ਘਟਾ ਦਿੱਤਾ।

ਆਮ ਗਲਤੀਆਂ ਜੋ ਗੁੰਝਲ ਜਾਂ ਨਾੜਾ ਕੰਮ ਨੂੰ ਜਨਮ ਦਿੰਦੀਆਂ ਹਨ

ਜ਼ਿਆਦਾਤਰ ਸਨੈਪਸ਼ਾਟ ਸਮੱਸਿਆਵਾਂ ਟੂਲ ਦੀ ਬਜਾਏ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਹੁੰਦੀਆਂ ਹਨ। ਜਦੋਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਦੇ ਹੋ, ਵਿਆਪਕ ਸੋਧ ਕਰਦੇ ਹੋ, ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਯਾਦ ਨਹੀਂ ਰੱਖਦੇ ਕਿ ਕੀ ਸਥਿਰ ਸੀ ਅਤੇ ਕੀ ਤਜਰਬੇਵੀ, ਤਾਂ ਸਮੱਸਿਆ ਆਉਂਦੀ ਹੈ।

ਇਕ ਆਮ ਗਲਤੀ ਆਖਰੀ ਜਾਣੇ-ਪਹਚਾਣੇ ਚੰਗੇ ਸਨੈਪਸ਼ਾਟ ਨੂੰ ਛੱਡ ਦੇਣਾ ਹੈ। ਲੋਕ auth rewrite ਸ਼ੁਰੂ ਕਰਦੇ ਹਨ, ਰੂਟ, ਮਿਡਲਵੇਅਰ, ਅਤੇ session ਸਟੋਰੇਜ ਛੇੜਦੇ ਹਨ, ਅਤੇ ਫਿਰ ਹੀ ਸੇਵ ਕਰਨ ਬਾਰੇ ਸੋਚਦੇ ਹਨ। ਜੇ ਬਦਲਾਅ ਵਧ ਗਿਆ ਤਾਂ ਮੁੜ ਵਾਪਸੀ ਲਈ ਕੋਈ ਸਾਫ਼ ਥਾਂ ਨਹੀਂ ਰਹਿੰਦੀ।

ਉਸਦਾ ਉਲਟ ਵੀ ਦਰਦਨਾਕ ਹੈ: ਹਰ ਕੁਝ ਮਿੰਟ ਵਿੱਚ "test", "fix", ਜਾਂ "ok" ਵਰਗੇ ਨਾਮਾਂ ਨਾਲ ਸਨੈਪਸ਼ਾਟ ਲੈਣ। ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰੇ ਸੇਵ-ਪਾਇੰਟ ਹੋ ਜਾਂਦੇ ਹਨ ਪਰ ਕੋਈ ਵੀ ਇਹ ਨਹੀਂ ਦਸਦਾ ਕਿ ਕੀ ਬਦਲਿਆ ਜਾਂਦਾ ਹੈ ਜਾਂ ਕਿਹੜਾ ਸੁਰੱਖਿਅਤ ਹੈ।

ਰੋਲਬੈਕ ਲੋਕਾਂ ਨੂੰ ਹੈਰਾਨ ਵੀ ਕਰਦਾ ਹੈ ਜਦੋਂ ਉਹ ਭੁੱਲ ਜਾਂਦੇ ਹਨ ਕਿ ਕੀ ਚੀਜ਼ ਕੋਡ ਤੋਂ ਬਾਹਰ ਹੈ। ਜੇ ਤੁਸੀਂ ਐਪ ਸਥਿਤੀ ਰੀਸਟੋਰ ਕਰਦੇ ਹੋ ਪਰ ਤੁਹਾਡੀ ਡੇਟਾਬੇਜ਼ ਸਕੀਮਾ ਪਹਿਲਾਂ ਹੀ ਅੱਗੇ ਮਾਈਗ੍ਰੇਟ ਹੋ ਚੁੱਕੀ ਹੈ, ਜਾਂ env/config ਬਦਲਿਆ ਗਿਆ ਹੈ, ਤਾਂ ਕੇਵਲ ਕੋਡ ਰੀਸਟੋਰ ਕਰਨਾ ਵਰਹੀ ਬਰਤਾਅ ਮੁੜ ਨਹੀਂ ਲਿਆਉਂਦਾ।

ਇਕ ਹੋਰ ਆਮ ਧਾਰਨਾ ਹੈ ਫੇਲ ਸਨੈਪਸ਼ਾਟਾਂ ਨੂੰ "ਸੰਭਾਲ ਕੇ ਰੱਖਣਾ" ਫਿਰ ਭੁੱਲ ਜਾੳਣਾ ਕਿ ਉਹ ਕਦੇ ਕੰਮ ਹੀ ਨਹੀਂ ਕਰਦੇ। ਦਿਨਾਂ ਬਾਅਦ ਕੋਈ "UI ਅਪਡੇਟ ਤੋਂ ਪਹਿਲਾਂ" ਰੀਸਟੋਰ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਖਰਾਬ ਬਿਲਡ 'ਤੇ ਲੈਂਡ ਕਰਦਾ ਹੈ।

ਅੰਤ ਵਿੱਚ, ਟੀਮਾਂ ਕਈ ਵਾਰੀ ਰੋਲਬੈਕ ਕਰਕੇ ਓਥੇ ਰੁਕ ਜਾਂਦੀਆਂ ਹਨ। ਉਹ ਮੰਨ ਲੈਂਦੇ ਹਨ ਕਿ ਸਮੱਸਿਆ ਠੀਕ ਹੋ ਗਈ, ਪਰ ਮੁੱਖ smoke ਟੈਸਟ ਨਹੀਂ ਦੁਬਾਰਾ ਚਲਾਉਂਦੇ। ਇੰਝ ਤੁਸੀਂ "ਸੇਵ" ਕਰਨ ਤੋਂ ਬਾਅਦ ਇੱਕ ਵੱਖਰਾ ਬੱਗ ਜਾਰੀ ਕਰ ਦਿੰਦੇ ਹੋ।

ਕੁਝ ਗਾਰਡਰੇਲਸ ਜ਼ਿਆਦਾਤਰ ਗੁੰਝਲ ਰੋਕ ਦਿੰਦੀਆਂ ਹਨ:

  • ਖਤਰਨਾਕ ਕਦਮ (migration, auth switch, big redesign) ਤੋਂ ਬਿਲਕੁਲ ਪਹਿਲਾਂ ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਲਵੋ।
  • ਸਨੈਪਸ਼ਾਟਾਂ ਨੂੰ ਨਾਮ ਦਿਓ ਕਿ ਕੀ ਬਦਲਿਆ ਅਤੇ ਕੀ ਚੈੱਕ ਪਾਸ ਹੋਇਆ (ਉਦਾਹਰਨ: auth-v2-login-ok).
  • ਬਾਹਰੀ ਬਦਲਾਅ (env, config, DB migration) ਨੂੰ ਨਾਮ ਜਾਂ ਨੋਟਸ ਵਿੱਚ ਦਰਜ ਕਰੋ।
  • ਜੇ ਕੋਈ ਸਨੈਪਸ਼ਾਟ ਕਦੇ ਵੀ ਕੰਮ ਨਹੀਂ ਕੀਤਾ ਤਾਂ ਉਸਨੂੰ ਮਿਟਾ ਦਿਓ ਜਾਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਚਿੰਨ੍ਹੋ।
  • ਰੋਲਬੈਕ ਤੋਂ ਬਾਅਦ, ਉਨ੍ਹਾਂ ਇੱਕ-ਦੋ ਪ੍ਰਵਾਹਾਂ ਦੀ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰੋ ਜਿਨ੍ਹਾਂ 'ਤੇ ਉਪਭੋਗੀ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦੇ ਹਨ।

ਜੇ ਤੁਸੀਂ Koder.ai ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਇੱਕ ਮਦਦਗਾਰ ਆਦਤ ਇਹ ਹੈ ਕਿ ਬਦਲਾਅ ਦੀ ਯੋਜਨਾ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਹੀ ਸਨੈਪਸ਼ਾਟ ਲਵੋ ਪਰ ਵਿਆਪਕ ਸੋਧ ਲਗਾਉਣ ਤੋਂ ਪਹਿਲਾਂ। ਇਸ ਨਾਲ ਤੁਹਾਡੇ "ਸੇਫ ਰਿਫੈਕਟਰਸ" ਸੁਰੱਖਿਅਤ ਰਹਿੰਦੇ ਹਨ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇੱਕ ਐਸਾ ਵਰਜ਼ਨ ਵਾਪਸ ਲਾ ਸਕਦੇ ਹੋ ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਭਰੋसा ਕਰਦੇ ਹੋ, ਨਾ ਕਿ ਕੇਵਲ ਇੱਕ ਸੰਭਾਲੀ ਹੋਈ ਵਰਜ਼ਨ।

ਤੇਜ਼ ਚੈੱਕਲਿਸਟ: 5 ਮਿੰਟ ਵਿੱਚ ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ

ਸੇਵ-ਪਾਇੰਟਾਂ ਨਾਲ UI ਰੀਡਿਜ਼ਾਈਨ
ਨਵਾਂ UI ਤਜ਼ਰਬਾ ਤੇਜ਼ੀ ਨਾਲ ਪ੍ਰੋਟੋਟਾਈਪ ਕਰੋ ਅਤੇ ਸਾਫ਼ ਮਾਈਲਸਟੋਨ ਰੱਖੋ ਜਿਹਨਾਂ ਨੂੰ ਕਦੇ ਵੀ ਰੀਸਟੋਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਪ੍ਰੋਟੋਟਾਈਪ ਬਣਾਓ

ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਖਤਰਨਾਕ ਚੀਜ਼ ਨੂੰ ਛੇੜਣ ਜਾ ਰਹੇ ਹੋ, ਸਨੈਪਸ਼ਾਟ ਨੂੰ ਇਕ afterthought ਨਾ ਸਮਝੋ — ਉਨ੍ਹਾਂ ਨੂੰ ਸੇਵ-ਪਾਇੰਟ ਵਜੋਂ ਵਰਤੋਂ। ਕੁਝ ਮਿੰਟ ਇੱਕ ਸਾਫ਼ ਵਾਪਸੀ ਬਿੰਦੂ ਸੈਟ ਕਰਨ ਅਤੇ ਇੱਕ ਸਧਾਰਨ ਟੈਸਟ ਲੂਪ ਬਣਾਉਣ ਲਈ ਲਾ ਕੇ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧ ਸਕਦੇ ਹੋ ਬਿਨਾਂ ਬਾਅਦ ਵਿੱਚ ਅਨੁਮਾਨ ਲਗਾਉਣ ਦੇ।

5-ਮਿੰਟ ਰੁਟੀਨ

  • ਕਿਸੇ ਵੀ ਤਬਦੀਲੀ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਸਾਫ਼ ਬੇਸਲਾਈਨ ਸਨੈਪਸ਼ਾਟ ਬਣਾਓ। ਉਸਨੂੰ ਐਸਾ ਨਾਮ ਦਿਉ: Baseline - known good - 2026-01-09 10:15, ਅਤੇ ਇੱਕ-ਲਾਈਨ ਨੋਟ ਜੋ ਦੱਸੇ ਕਿ ਕੀ ਚੱਲ ਰਿਹਾ ਹੈ (sign-in OK, billing page loads)।
  • 15 ਤੋਂ 45 ਮਿੰਟ ਦੇ ਛੋਟੇ ਚੰਕ ਵਿੱਚ ਕੰਮ ਕਰੋ, ਫਿਰ ਫਿਰ ਸਨੈਪਸ਼ਾਟ ਲਵੋ। ਦਿਨ ਦੇ ਅੰਤ ਦੀ ਉਡੀਕ ਨਾ ਕਰੋ।
  • ਹਰ ਚੰਕ ਤੋਂ ਬਾਅਦ ਤੇਜ਼ ਸ੍ਮੋਕ ਟੈਸਟ ਚਲਾਓ: ਸਾਈਨ ਇਨ, ਮੁੱਖ ਪੇਜ ਖੋਲੋ, ਅਤੇ ਇੱਕ ਅਸਲੀ ਰਿਕਾਰਡ ਬਣਾਓ ਜਾਂ ਸੰਪਾਦਨ ਕਰੋ। ਜੇ ਕੁਝ ਫੇਲ ਹੋਵੇ, ਰੁਕੋ ਅਤੇ ਫੈਸਲਾ ਕਰੋ ਕਿ ਹੁਣ ਠੀਕ ਕਰਨਾ ਹੈ ਜਾਂ ਰੋਲਬੈਕ ਕਰਨਾ ਹੈ।
  • ਸਕੀਮਾ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ, ਆਪਣੇ Escape hatch ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਇਕ ਬੈਕਅਪ ਜਾਂ ਸੋਰਸ ਕੋਡ ਐਕਸਪੋਰਟ ਰਣਨੀਤੀ ਹੈ ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਵਾਕਈ ਭਰੋਸਾ ਕਰਦੇ ਹੋ, ਨਾ ਕਿ ਇੱਕ ਜੋ ਤੁਸੀਂ "ਬਾਅਦ ਵਿੱਚ ਸੈੱਟ ਕਰਨ ਦੀ ਯੋਜਨਾ" ਬਣਾਉਂਦੇ ਹੋ।
  • ਮਰਜ ਜਾਂ ਡਿਪਲੋਇ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਇੱਕ ਰਿਲੀਜ਼ ਉਮੀਦਵਾਰ ਨਿਸ਼ਾਨ ਲਗਾਓ। ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਲਵੋ ਜਿਸਦਾ ਨਾਮ ਰਖੋ: RC - auth rewrite - 2026-01-09 18:40 ਤਾਂ ਜੋ ਜੇ ਪ੍ਰੋਡਕਸ਼ਨ 'ਚ ਕੁਝ ਅਚਾਨਕ ਹੋਵੇ ਤਾਂ ਤੁਸੀਂ ਤੁਰੰਤ ਰੋਲਬੈਕ ਕਰ ਸਕੋ।

ਜੇ ਤੁਸੀਂ ਕੁਝ ਨਹੀਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਬੇਸਲਾਈਨ + ਸ੍ਮੋਕ ਟੈਸਟ ਲੂਪ ਕਰੋ। ਇਹ ਅਕਸਰ ਉਹ ਸਮੱਸਿਆਵਾਂ ਰੋਕ ਦਿੰਦਾ ਹੈ ਜੋ ਕਿ "ਕਿੱਥੇ ਟੁੱਟਿਆ?" ਦੇ ਪਲ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ।

ਜੇ ਤੁਸੀਂ ਰੋਲਬੈਕ ਕਰੋ, ਤਾਂ "ਫਿਰ ਠੀਕ ਹੈ" 'ਤੇ ਰੁਕੋ ਨਾ

ਰੋਲਬੈਕ ਕੇਵਲ ਅਧ-ਕੰਮ ਹੈ। ਵਾਪਸ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਬੱਗ ਖਤਮ ਹੋ ਗਿਆ ਹੈ ਇਹ ਪੁਸ਼ਟੀ ਕਰੋ (ਉਹੀ ਸ੍ਮੋਕ ਟੈਸਟ), ਫਿਰ ਮੁੜ-ਆਖਰੀ ਚੰਗੇ ਸਨੈਪਸ਼ਾਟ ਤੋਂ ਅੱਗੇ ਹਿੱਸੇ ਇਕ-ਇਕ ਕਰਕੇ ਲੱਗਾਓ। ਟੁੱਟੇ ਹੋਏ ਹਿੱਸੇ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਟੁਕੜਿਆਂ ਨੂੰ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਦੁਬਾਰਾ ਲਿਆਵੋ ਤਾਂ ਕਿ ਤੁਸੀਂ ਪਤਾ ਲਗਾ ਸਕੋ ਕਿ ਕਿਹੜਾ ਚੰਕ ਮੁੱਦਾ ਪੈਦਾ ਕਰ ਰਿਹਾ ਸੀ।

ਅਗਲੇ ਕਦਮ: ਇਸਨੂੰ ਆਦਤ ਬਣਾਓ (ਅਤੇ Koder.ai ਕਿੱਥੇ ਮਦਦ ਕਰਦਾ ਹੈ)

ਸਨੈਪਸ਼ਾਟ ਤਦ ਹੀ ਫਲਦਾਇਕ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਉਹ ਬੋਰਿੰਗ ਅਤੇ ਸਦਾਂਤਰ ਹੋ ਜਾਣ। ਲੱਕੜੀ ਦਾ ਮਕਸਦ ਸਿਰਫ਼ ਵਧੇਰੇ ਸਨੈਪਸ਼ਾਟ ਲੈਣਾ ਨਹੀਂ, ਸਗੋਂ ਉਨ੍ਹਾਂ ਪਲਾਂ 'ਤੇ ਸਨੈਪਸ਼ਾਟ ਲੈਣਾ ਹੈ ਜੋ ਗੁੰਮ ਕਰਨ 'ਤੇ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਨੁਕਸਾਨ ਕਰਦੇ।

ਇੱਕ ਸਧਾਰਨ ਟੀਮ ਨਿਯਮ ਮਦਦ ਕਰਦਾ ਹੈ: ਲੌਗਿਨ, ਡਾਟਾ ਸਟ੍ਰਕਚਰ, ਜਾਂ ਸਾਂਝੇ UI ਕੰਪੋਨੈਂਟ ਤੱਕ ਛੂਹਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਬਦਲਾਅ ਤੋਂ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲੈਣ 'ਤੇ ਸਹਿਮਤੀ ਕਰੋ। ਜੇ ਤੁਸੀਂ ਇੱਕੱਲੇ ਕੰਮ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਇਸਨੂੰ ਇੱਕੋ ਹੀ ਢੰਗ ਨਾਲ Treat ਕਰੋ — ਤੁਹਾਡਾ ਭਵਿੱਖ ਦਾ ਆਪ ਤੁਹਾਡੀ ਟੀਮ ਹੈ।

ਇੱਕ ਛੋਟੀ "ਗੋਲਡਨ ਪਾਥ" ਸੂਚੀ ਰੱਖੋ ਜਿਨ੍ਹਾਂ 'ਤੇ ਹਰ ਕੋਈ ਭਰੋਸਾ ਕਰਦਾ ਹੋ: ਇਹ ਉਹ ਸੈੱਟ ਹਨ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਆਗ ਲੱਗਣ 'ਤੇ ਨਿਸ਼ਚਿੰਤ ਹੋ ਕੇ ਰੋਲਬੈਕ ਕਰ ਸਕਦੇ ਹੋ। ਇਸਨੂੰ ਛੋਟਾ ਰੱਖੋ ਤਾਂ ਕਿ ਇਹ ਭਰੋਸੇਯੋਗ ਰਹੇ।

ਜੇ ਤੁਸੀਂ ਇੱਕ ਹਲਕਾ-ਫੁਲਕਾ ਆਦਤ ਚਾਹੁੰਦੇ ਹੋ ਜੋ ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਅਪਣਾ ਸਕਦੀਆਂ ਹਨ:

  • ਖਤਰਨਾਕ ਬਦਲਾਅ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ (ਸਾਫ਼ ਬੇਸਲਾਈਨ)
  • ਨਵਾਂ ਰਾਹ ਇੱਕ ਸਧਾਰਨ ਖੁਸ਼ ਮਾਮਲੇ 'ਚ ਕੰਮ ਕਰਦਾ ਦੇਖਣ ਤੇ ਸਨੈਪਸ਼ਾਟ ਲਵੋ
  • ਮਰਜ ਜਾਂ ਰਿਲੀਜ਼ ਤੋਂ ਬਿਲਕੁਲ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ
  • ਸਾਰੇ ਲਈ ਇਕੋ ਨਾਂਕਰਨ ਸ਼ੈਲੀ ਵਰਤੋ
  • ਜੋ ਸਨੈਪਸ਼ਾਟ ਰੱਖਣਯੋਗ ਨਹੀਂ ਉਹਨਾਂ ਨੂੰ ਮਿਟਾਓ ਜਾਂ ਆਰਕਾਈਵ ਕਰੋ

ਇਹ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ Koder.ai ਵਿੱਚ ਫਿੱਟ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਚੈਟ-ਚਲਿਤ ਫਲੋ ਤੇਜ਼ੀ ਨਾਲ ਵੱਡੀਆਂ ਸੋਧਾਂ ਪੈਦਾ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਪਲੇਟਫਾਰਮ ਵਰਕਫਲੋ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ Planning Mode ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਦਲਾਅ ਦੀ ਯੋਜਨਾ ਬਣਾਉਂਦੇ ਹੋ ਅਤੇ ਪਹਿਲਾਂ ਆਪਣੇ ਸਨੈਪਸ਼ਾਟ ਪਾਇੰਟ ਡਿਫਾਈਨ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਸ਼ਿਪ ਕਰੋਗੇ ਬਿਨਾਂ ਹਰ ਖਤਰਨਾਕ ਸੋਧ ਨੂੰ ਇਕ ਸਥਾਈ ਫੈਸਲਾ ਬਣਾਉਣ ਦੇ।

ਅਗਲਾ ਕਾਰਵਾਈ: ਇੱਕ ਆਉਣ ਵਾਲੇ ਬਦਲਾਅ (auth rewrite, schema change, ਜਾਂ UI redesign) ਚੁਣੋ ਅਤੇ ਪਹਿਲਾਂ ਤੋਂ ਤਿੰਨ ਸਨੈਪਸ਼ਾਟ-ਪਾਇੰਟ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ:

  • Baseline: ਆਖਰੀ ਜਾਣਿਆ-ਪਹਚਾਣਾ ਚੰਗਾ ਹਾਲਤ
  • Midpoint: ਨਵਾਂ ਤਰੀਕਾ ਸਧਾਰਨ ਟੈਸਟ ਵਿੱਚ ਆਖਰੀ ਤੱਕ ਕੰਮ ਕਰਦਾ
  • Pre-release: ਆਖਰੀ ਪਾਲਿਸ਼ ਹੋ ਗਈ, ਸ਼ਿਪ ਕਰਨ ਜਾਂ ਹੱਥੋਂ-ਹੱਥ ਭੇਜਣ ਲਈ ਤਿਆਰ

ਇਕ ਵਾਰੀ ਇਹ ਕਰੋ ਅਤੇ ਇਹ ਆਟੋਮੈਟਿਕ محسوس ਹੋਣਾ ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗਾ।

ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ

What’s the difference between a snapshot and a rollback?

ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਤੁਹਾਡੇ ਐਪ ਦੀ ਸੰਭਾਲੀ ਹੋਈ ਹਾਲਤ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਲੈ ਆ ਸਕਦੇ ਹੋ। ਇਸਨੂੰ ਖਤਰਨਾਕ ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਭਰੋਸੇਯੋਗ “ਆਖਰੀ ਚੰਗੀ ਹਾਲਤ” ਵਾਂਗ ਵਰਤੋਂ।

ਰੋਲਬੈਕ ਉਹ ਕਾਰਵਾਈ ਹੈ ਜਿਸ ਵਿੱਚ ਉਸ ਸਨੈਪਸ਼ਾਟ ਨੂੰ ਮੁੜ ਸਥਾਪਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਟੁੱਟੀ ਹੋਈ ਚੀਜ਼ ਨੂੰ ਡੀਬੱਗ ਕਰਦੇ ਹੋਏ ਅੱਗੇ ਵਧ ਸਕੋ।

When should I take a snapshot?

ਕਿਸੇ ਵੀ ਐਸੇ ਬਦਲਾਅ ਤੋਂ ਬਿਲਕੁਲ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ ਜੋ ਵਾਪਸ ਨਹੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਆਸਾਨੀ ਨਾਲ:

  • Auth/session ਬਦਲਾਅ (ਲੌਗਿਨ ਫਲੋ, ਰੋਲ, ਟੋਕੇਨ ਸਟੋਰੇਜ)
  • ਡੇਟਾਬੇਸ ਮਾਈਗ੍ਰੇਸ਼ਨ ਜਾਂ ਬੈਕਫਿਲ
  • ਭੁਗਤਾਨ ਜਾਂ ਚੈਕਆਊਟ ਬਦਲਾਅ
  • ਵਿਆਪਕ ਰਿਫੈਕਟਰਸ ਜੋ ਕਈ ਫਾਇਲਾਂ ਨੂੰ ਛੂਹਦੇ ਹਨ

ਇੱਕ ਚੰਗਾ ਨਿਯਮ: ਜੇ ਅਗਲਾ 30–60 ਮਿੰਟ ਖਤਮ ਹੋ ਜਾਣਾ ਨੁਕਸানਦਾਇਕ ਹੋਵੇ, ਤਾਂ ਪਹਿਲਾਂ ਸਨੈਪਸ਼ਾਟ ਲਵੋ।

When should I NOT take a snapshot?

ਛੋਟੇ ਸੋਧਾਂ ਲਈ ਜਿਹੜੇ ਤੁਸੀਂ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ ਫਿਰ ਨਾਲ ਬਣਾ ਸਕਦੇ ਹੋ, ਸਨੈਪਸ਼ਾਟ ਨਾ ਲਵੋ (ਜਿਵੇਂ ਲਿਖਤ ਵਿੱਚ ਸੋਧ, ਛੋਟੀ spacing fixes)। ਬਹੁਤ ਸਾਰੇ ਘੱਟ-ਮੁੱਲ ਵਾਲੇ ਸਨੈਪਸ਼ਾਟ ਲੈਣ ਨਾਲ ਉਹ ਲਭਣਾ ਔਖਾ ਹੋ ਜਾਂਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਭਰੋਸਾ ਕਰਦੇ ਹੋ।

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਜੇ ਐਪ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਟੁੱਟੀ ਹੋਵੇ ਤਾਂ ਉਸ ਹਾਲਤ ਨੂੰ ਸਨੈਪਸ਼ਾਟ ਨਾ ਚੁਣੋ, ਸਿਵਾਏ ਇਸਦੇ ਕਿ ਤੁਸੀਂ ਉਸਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ draft ਜਾਂ broken ਵਜੋਂ ਲੇਬਲ ਕਰੋ।

How should I name snapshots so they’re easy to restore later?

ਇੱਕ ਸुसੰਗਤ ਪੈਟਰਨ ਵਰਤੋਂ ਜੋ “ਕੀ/ਕਿਉਂ/ਸੁਰੱਖਿਅਤ?” ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਦੱਸੇ:

YYYY-MM-DD - area - intent - status

ਉਦਾਹਰਨ: 2026-01-09 - auth - switch token storage key - ready.

test, v2, ਜਾਂ final-final ਵਰਗੇ ਨਾਂਆਂ ਤੋਂ ਬਚੋ — ਉਹ ਰੋਲਬੈਕ ਨੂੰ ਅਨੁਮਾਨ ਬਣਾਉਂਦੇ ਹਨ।

What do “draft”, “ready”, and “release” labels actually mean?

ਛੋਟੇ ਸੈਟ ਸਟੈਟਸ ਟੈਗ ਜਿਵੇਂ:

  • draft: ਮੱਧ-ਕੰਮ, ਹੋ ਸਕਦਾ ਹੈ ਚਲ ਨਾ ਰਿਹਾ ਹੋਵੇ
  • ready: ਇੱਕ ਤੇਜ਼ ਸ੍ਮੋਕ ਟੈਸਟ ਪਾਰ ਕਰਦਾ ਹੈ
  • release: ਜੋ ਸੀਪ ਕੀਤਾ ਗਿਆ ਹੈ ਉਸਦੇ ਨਾਲ ਮਿਲਦਾ ਹੈ
  • hotfix: ਪ੍ਰੋਡਕਸ਼ਨ ਮੁੱਦੇ ਲਈ ਬਣਾਇਆ ਗਿਆ

ਜੇ ਤੁਸੀਂ ਇੱਕ ਹੀ ਨਿਯਮ ਲਾਗੂ ਕਰੋ, ਤਾਂ ਇਹ ਹੋਵੇ: ਕੁਝ ਵੀ release ਨਾ ਚਿੰਨ੍ਹੋ ਜਦ ਤੱਕ ਕਿ ਤੁਸੀਂ ਬਿਨਾਂ ਵਿਚਾਰ ਦੇ ਉਸਨੂੰ ਰੀਸਟੋਰ ਕਰਨ ਵਿੱਚ ਆਰਾਮਦਾਇਕ ਨਾ ਹੋਵੋ।

How do I keep snapshots from becoming a messy timeline?

ਦੋ ਪਾਤਰ ਬਣਾਓ:

  • Milestones: ਭਰੋਸੇ ਯੋਗ ਸਨੈਪਸ਼ਾਟਾਂ ਦੀ ਛੋਟੀ ਸੂਚੀ (ਤੁਹਾਡੇ ਗੋ-ਟੂ ਰੋਲਬੈਕ ਪੌਇੰਟ)
  • Workbench: ਤਜਰਬਿਆਂ ਦੌਰਾਨ ਅਸਥਾਈ ਸੇਵ ਪਾਇੰਟ

ਜਦੋਂ ਕੋਈ ਤਜਰਬਾ ਖਤਮ ਹੋ ਜਾਵੇ, ਉਸਨੂੰ ਹਟਾਓ ਜਾਂ ਇਸੇ ਰੀਲੇਬਲ ਕਰੋ ਤਾਂ ਕਿ ਕੋਈ ਇਹ ਗਲਤ ਫੈਸਲਾ ਨਾ ਕਰੇ ਕਿ ਇਹ ਸੁਰੱਖਿਅਤ ਰੀਸਟੋਰ ਪੌਇੰਟ ਹੈ।

What’s a simple snapshot workflow for big refactors?

ਇਹਨਾਂ ਨੂੰ ਛੋਟੇ, ਟੈਸਟ-ਯੋਗ ਸਲਾਈਸਾਂ ਵਿੱਚ ਬਾਝਕੇ ਚੈੱਕਪੌਇੰਟ ਵਜੋਂ ਵਰਤੋਂ:

  1. ਇੱਕ baseline known good ਸਨੈਪਸ਼ਾਟ ਲਵੋ
  2. ਇੱਕ ਛੋਟਾ ਬਦਲਾਅ ਕਰੋ
  3. ਤੇਜ਼ ਸ੍ਮੋਕ ਟੈਸਟ ਚਲਾਓ
  4. ਜੇ ਪਾਸ ਹੋਇਆ ਤਾਂ ਫਿਰ ਸਨੈਪਸ਼ਾਟ ਲਵੋ
  5. ਜੇ ਫੇਲ ਹੋਇਆ ਤਾਂ ਰੋਲਬੈਕ ਕਰੋ ਅਤੇ ਛੋਟਾ ਤਰੀਕਾ ਅਜ਼ਮਾਓ

ਇਸ ਨਾਲ ਇੱਕ ਵੱਡਾ ਬਦਲਾਅ ਛੁਪਿਆ ਹੋਇਆ ਟੁੱਟਣਾ ਨਹੀਂ ਛੱਡਦਾ।

What should I test before I mark a snapshot as “ready”?

ਉਹਨਾਂ ਚੀਜ਼ਾਂ ਨੂੰ ਛੋਟੇ, ਦੁਹਰਾਏ ਜਾ ਸਕਣ ਵਾਲੇ ਟੈਸਟਾਂ ਤੱਕ ਸੀਮਿਤ ਰੱਖੋ। ਹਰ ਚੰਕ 'ਤੇ ਜਾਂਚ ਲਈ:

  • ਐਪ ਮੁੱਖ ਤੌਰ 'ਤੇ ਸਟਾਰਟ ਹੁੰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ
  • ਪ੍ਰਮੁੱਖ auth ਫਲੋ ਕੰਮ ਕਰਦਾ ਹੈ (login/logout, ਇੱਕ ਪ੍ਰੋਟੈਕਟਡ ਪੇਜ)
  • ਇੱਕ ਮੁੱਖ ਸਕਰੀਨ ਲੋਡ ਹੁੰਦੀ ਹੈ
  • ਆਪਣੇ ਮੁੱਖ ਡਾਟਾ ਲਈ ਇੱਕ ਬੁਨਿਆਦੀ create/read/update ਕਾਰਵਾਈ ਕੰਮ ਕਰਦੀ ਹੈ

ਜੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਫੇਲ ਹੋਵੇ, ਤਾਂ ਠੀਕ ਕਰੋ ਜਾਂ ਰੋਲਬੈਕ ਕਰੋ।

How should I use snapshots during an auth rewrite?

Auth ਛੋਟੇ ਪਰ ਉੱਚ ਪ੍ਰਭਾਵ ਵਾਲੇ ਤਰੀਕਿਆਂ ਵਿੱਚ ਟੁਟਦਾ ਹੈ। ਯੂਜ਼ਰ-ਫਲੋ ਬਦਲਾਅ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਸਨੈਪਸ਼ਾਟ ਲਵੋ:

  • ਕਿਸੇ ਵੀ auth rewrite ਤੋਂ ਪਹਿਲਾਂ (auth - baseline - ready)
  • ਨਵਾਂ provider ਜੋੜਨ ਤੋਂ ਬਾਅਦ (draft)
  • ਜਦੋਂ ਨਵਾਂ ਡਿਫੌਲਟ ਸਫਲ ਹੋਵੇ ਤਾਂ (ready)

ਹਮੇਸ਼ਾ ਉਹੀ “ਹੈਪੀ ਪਾਥ” ਦੁਬਾਰਾ ਚਲਾਓ ਤਾਂ ਕਿ ਨਤਜੇ ਤੁਲਨਾਤਮਕ ਹੋਣ।

Can rollback fail to fix the problem? Why would that happen?

ਨਹੀਂ ਹਮੇਸ਼ਾ। ਰੋਲਬੈਕ ਆਮ ਤੌਰ 'ਤੇ ਐਪ ਦੀ ਹਾਲਤ ਮੁੜ ਲਿਆਉਂਦਾ ਹੈ, ਪਰ ਕੁਝ ਮੁੱਦੇ ਕੋਡ ਦੇ ਬਾਹਰ ਹੀ ਹੋ ਸਕਦੇ ਹਨ:

  • ਡੇਟਾਬੇਸ ਸਕੀਮਾ ਅੱਗੇ ਵਧ ਗਿਆ ਹੋਵੇ
  • ਵਾਤਾਵਰਣ/ਕੰਫਿਗ ਬਦਲੀ ਹੋਈ ਹੋਵੇ
  • ਡਾਟਾ ਬੈਕਫਿਲ ਅਧੂਰਾ ਚੱਲਿਆ ਹੋਵੇ

ਜੇ ਬਾਹਰੀ ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ ਹਨ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਸਨੈਪਸ਼ਾਟ ਲੇਬਲ/ਨੋਟਸ ਵਿੱਚ ਦਰਜ ਕਰੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਵਾਪਸ ਲਿਆਉਣ ਜਾਂ ਮੁੜ ਲਗਾਉਣ ਦੀ ਯੋਜਨਾ ਬਣਾਓ।

ਸਮੱਗਰੀ
ਜਦੋਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧ ਰਹੇ ਹੋ ਤਾਂ ਸਨੈਪਸ਼ਾਟ ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦੇ ਹਨਕਦੋਂ ਸਨੈਪਸ਼ਾਟ ਲੈਣੇ (ਅਤੇ ਕਦੋਂ ਨਹੀਂ)ਸਨੈਪਸ਼ਾਟਾਂ ਨੂੰ ਲੇਬਲ ਕਰਨਾ ਤਾਂ ਜੋ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਠੀਕ ਇੱਕ ਬੁਝ ਸਕੋਇਸ ਨੂੰ ਗੰਦੇ ਟਾਈਮਲਾਈਨ ਤੋਂ ਬਚਾਉਣ ਲਈ ਸੰਗਠਨ ਕਰਨਾਕਦਮ-ਬ-कਦਮ: ਵੱਡੇ ਬਦਲਾਅ ਦੌਰਾਨ ਸੇਵ-ਪਾਇੰਟ ਵਜੋਂ ਸਨੈਪਸ਼ਾਟ ਵਰਤਣਾauth, schema, ਅਤੇ UI ਕੰਮ ਲਈ ਪ੍ਰੈਕਟਿਕਲ ਸਨੈਪਸ਼ਾਟ ਪੈਟਰਨਇੱਕ ਹਕੀਕਤੀ ਉਦਾਹਰਣ: ਇਕ ਵੀਕਐਂਡ ਰਿਲੀਜ਼ ਜੋ ਲਗਭਗ ਟੁੱਟ ਗਈ ਸੀਆਮ ਗਲਤੀਆਂ ਜੋ ਗੁੰਝਲ ਜਾਂ ਨਾੜਾ ਕੰਮ ਨੂੰ ਜਨਮ ਦਿੰਦੀਆਂ ਹਨਤੇਜ਼ ਚੈੱਕਲਿਸਟ: 5 ਮਿੰਟ ਵਿੱਚ ਸਨੈਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕਅਗਲੇ ਕਦਮ: ਇਸਨੂੰ ਆਦਤ ਬਣਾਓ (ਅਤੇ Koder.ai ਕਿੱਥੇ ਮਦਦ ਕਰਦਾ ਹੈ)ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਸਵਾਲ
ਸਾਂਝਾ ਕਰੋ