ਫਰੇਮਵਰਕ ਦੇ ਫੈਸਲੇ ਰੱਖ‑ਰਖਾਅ ਦੀ ਲਾਗਤ, ਅਪਗਰੇਡ ਦੇ ਰਸਤੇ, ਭਰਤੀ ਅਤੇ ਸਥਿਰਤਾ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੇ ਹਨ — ਲੰਬੇ ਸਮੇਂ ਦੇ ਤਕਨੀਕੀ ਕਰਜ਼ ਨੂੰ ਘਟਾਉਣ ਲਈ ਟਰੇਡ‑ਆਫ਼ ਕਿਵੇਂ ਅੰਕਲਨ ਕਰਨੇ ਹਨ, ਜਾਣੋ।

ਤਕਨੀਕੀ ਕਰਜ਼ ਕੋਈ ਨੈਤਿਕ ਗਲਤੀ ਜਾਂ ਢਿੱਲਾ "ਕੋਡ ਗੁਣਵੱਤਾ" ਵਾਲਾ ਸ਼ਿਕਾਇਤ ਨਹੀਂ ਹੈ। ਅਸਲ ਪ੍ਰਾਜੈਕਟਾਂ ਵਿੱਚ ਇਹ ਉਸ ਫ਼ਰਕ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਸ਼ਿਪ ਕੀਤਾ ਹੋਇਆ ਕੰਮ ਅਤੇ ਉਹ ਕੰਮ ਜਿਸ ਦੀ ਲੋੜ ਤੁਹਾਨੂੰ ਅੱਗੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਸ਼ਿਪ ਕਰਨ ਲਈ ਹੋਏਗੀ, ਦਰਮਿਆਨ ਹੁੰਦਾ ਹੈ।
ਤੁਸੀਂ ਆਮ ਤੌਰ 'ਤੇ ਇਸ ਨੂੰ ਤਿੰਨ ਕਾਰਗੁਜ਼ਾਰ ਮੂਦਰਾ ਵਜੋਂ ਮਾਪ ਸਕਦੇ ਹੋ:
ਜੇ ਤੁਸੀਂ ਮਨੁੱਖੀ ਰੂਪ ਵਿੱਚ ਇਸ ਸੰਕਲਪ ਲਈ ਇੱਕ ਛੋਟੀ ਰੀਫਰੇਸ਼ਰ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਵੇਖੋ /blog/technical-debt-basics.
ਫਰੇਮਵਰਕ ਦੀ ਚੋਣ ਤਕਨੀਕੀ ਕਰਜ਼ 'ਤੇ ਪ੍ਰਭਾਵ ਪਾਂਦੀ ਹੈ ਕਿਉਂਕਿ ਫਰੇਮਵਰਕ ਸਿਰਫ਼ ਲਾਇਬ੍ਰੇਰੀਆਂ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਦੇ—ਉਹ ਇਹ ਵੀ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ ਕਿ ਤੁਹਾਡੀ ਟੀਮ ਕੋਡ ਨੂੰ ਕਿਵੇਂ ਢਾਂਚਾਬੱਧ ਕਰਦੀ ਹੈ, ਡੀਪੈਂਡੈਂਸੀਜ਼ ਕਿਵੇਂ ਖਿੱਚੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਅਤੇ ਸਮੇਂ ਦੇ ਨਾਲ ਬਦਲਾਅ ਕਿਵੇਂ ਹੁੰਦੇ ਹਨ।
ਇੱਕ ਫਰੇਮਵਰਕ ਕਰਜ਼ ਘਟਾ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇਹ:
ਇੱਕ ਫਰੇਮਵਰਕ ਕਰਜ਼ ਵਧਾ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇਹ:
ਹਰ ਫਰੇਮਵਰਕ ਇੱਕ ਟਰੇਡ‑ਆਫ਼ ਦਾ ਬੰਡਲ ਹੁੰਦਾ ਹੈ: ਅੱਜ ਦੀ ਤੀਵਰਤਾ ਬਣਾਮ ਭਵਿੱਖ ਦੀ ਲਚਕੀਲਾਪਣ, ਰਾਇਟੀਡ ਢਾਂਚਾ ਬਣਾਮ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ, ਇਕੋਸਿਸਟਮ ਦੀ ਚੌੜਾਈ ਬਣਾਮ ਡੀਪੈਂਡੈਂਸੀ ਖ਼ਤਰੇ। ਮਕਸਦ ਕਰਜ਼ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਟਾਲਣਾ ਨਹੀਂ (ਇਹ ਅਸੰਭਵ ਹੈ), ਬਲਕਿ ਉਹ ਕਿਸਮ ਦਾ ਕਰਜ਼ ਚੁਣਨਾ ਹੈ ਜਿਸ ਦੀ ਤੁਸੀਂ ਸੇਵਾ ਕਰ ਸਕਦੇ ਹੋ—ਨਿਰੀਤ, ਯੋਜਿਤ ਭੁਗਤਾਨ ਬਜਾਏ ਅਚਾਨਕ ਬਿਆਜ਼ ਜੋ ਗੁਣਾ ਹੋ ਕੇ ਵੱਧ ਜਾਵੇ।
ਸਾਲਾਂ ਦੇ ਦੌਰਾਨ, ਫਰੇਮਵਰਕ ਦੇ ਡਿਫਾਲਟ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਆਦਤਾਂ ਬਣ ਜਾਂਦੇ ਹਨ। ਉਹ ਆਦਤਾਂ ਜਾਂ ਤਾਂ ਰੱਖ-ਰਖਾਅ ਨੂੰ ਪੇਸ਼ਗੋਈਯੋਗ ਰੱਖਦੀਆਂ ਹਨ—ਜਾਂ ਆਹਿਸਤਾ-ਆਹਿਸਤਾ ਰੋਜ਼ਾਨਾ ਕੰਮ ਨੂੰ ਲਗਾਤਾਰ ਟੈਕਸ ਵਿੱਚ ਬਦਲ ਦਿੰਦੀਆਂ ਹਨ।
ਟੀਮਾਂ ਕਮ ਹੀ ਕਿਸੇ ਫਰੇਮਵਰਕ ਨੂੰ "ਅਗਲੇ ਪੰਜ ਸਾਲਾਂ ਲਈ" ਚੁਣਦੀਆਂ ਹਨ। ਉਹ ਇਸਨੂੰ ਇਸ ਤਿਮਾਹੀ ਵਿੱਚ ਕੁਝ ਸ਼ਿਪ ਕਰਨ ਲਈ ਚੁਣਦੀਆਂ ਹਨ।
ਆਮ ਕਾਰਨ ਬਿਲਕੁਲ ਵਾਜਿਬ ਹੁੰਦੇ ਹਨ: ਪਹਿਲੀ ਰਿਲੀਜ਼ ਤੱਕ ਤੇਜ਼ੀ, ਜਾਣ‑ਪਛਾਣ ("ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਇਸ ਨੂੰ ਜਾਣਦੇ ਹਾਂ"), ਇੱਕ ਸ਼ਾਨਦਾਰ ਫੀਚਰ (ਰਾਊਟਿੰਗ, ਆਥ, ਰੀਅਲ‑ਟਾਈਮ), ਮਜ਼ਬੂਤ ਉਦਾਹਰਣ ਅਤੇ ਟੈਂਪਲੇਟ, ਜਾਂ ਫਰੇਮਵਰਕ ਦੇ ਰਾਇ ਦੀ ਕਾਰਨ ਘੱਟ ਫੈਸਲੇ ਲੈਣ ਦੀ ਵਾਅਦਾ। ਕਦੇ‑ਕਦੇ ਇਹ ਸਿਰਫ ਭਰਤੀ ਹੋਣ ਵਾਲੀ ਗੱਲ ਹੁੰਦੀ ਹੈ: "ਅਸੀਂ ਇਸ ਸਟੈਕ ਲਈ ਡਿਵੈਲਪਰ ਲੱਭ ਸਕਦੇ ਹਾਂ।"
ਸ਼ੁਰੂਆਤੀ ਫਾਇਦੇ ਬਿਉਂਤ ਹੋ ਕੇ ਪਾਬੰਦੀਆਂ ਵਿੱਚ ਬਦਲ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਪ੍ਰੋਡਕਟ ਵਧਦਾ ਹੈ। ਇੱਕ ਫਰੇਮਵਰਕ ਸਿਰਫ਼ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ ਨਹੀਂ ਜਿਸਨੂੰ ਤੁਸੀਂ ਬਦਲ ਸਕੋ; ਇਹ ਰਾਜਾਂ ਲਈ ਪੈਟਰਨ ਤੈਅ ਕਰਦਾ ਹੈ—ਸਟੇਟ ਮੈਨੇਜਮੈਂਟ, ਡੇਟਾ ਐਕਸੈਸ, ਟੈਸਟਿੰਗ, ਡਿਪਲੋਇਮੈਂਟ, ਅਤੇ ਟੀਮਾਂ ਕੋਡ ਰਚਣ ਦੇ ਢੰਗ। ਜਦੋਂ ਇਹ ਪੈਟਰਨ ਦਰਜ਼ਨਾਂ ਸਕ੍ਰੀਨਾਂ, ਸਰਵਿਸਜ਼ ਜਾਂ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਫੈਲ ਜਾਂਦੇ ਹਨ, ਦਿਸ਼ਾ ਬਦਲਣਾ ਮਹਿੰਗਾ ਹੋ ਜਾਂਦਾ ਹੈ।
ਆਮ "ਬਾਅਦੀ ਬਿੱਲਾਂ" ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:
ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੋਈ ਫਰੇਮਵਰਕ ਪ੍ਰੋਟੋਟਾਈਪ ਲਈ ਪਰਫੈਕਟ ਲੱਗੇ ਕਿਉਂਕਿ ਉਹ ਗਤੀ ਨੂੰ ਅਧਿਕ ਪ੍ਰਧਾਨ ਕਰਦਾ ਹੈ: ਤੇਜ਼ ਸਕੈਫੋਲਡਿੰਗ, ਬਹੁਤ ਸਾਰਾ ਮੈਜਿਕ, ਘੱਟ ਸੈਟਅਪ। ਪਰ ਪ੍ਰੋਡਕਟ ਭਵਿੱਖ ਵਿੱਚ ਪੇਸ਼ਗੋਈਯੋਗਤਾ ਲਈ ਬਣਦਾ ਹੈ: ਸਪੱਸ਼ਟ ਬਾਊਂਡਰੀਜ਼, ਟੈਸਟੇਬਿਲਟੀ, ਓਬਜ਼ਰਵੇਬਿਲਟੀ ਅਤੇ ਕੰਟਰੋਲਡ ਬਦਲਾਅ।
ਇੱਕ ਪ੍ਰੋਟੋਟਾਈਪ "ਅਸੀਂ ਬਾਅਦ ਵਿੱਚ ਸਾਫ਼ ਕਰਾਂਗੇ" ਬਰਦਾਸ਼ਤ ਕਰ ਸਕਦਾ ਹੈ। ਇਕ ਪ੍ਰੋਡਕਟ ਆਖਿਰਕਤ ਵਿੱਚ ਉਸ ਵਾਅਦੇ 'ਤੇ ਬਿਆਜ਼ ਦਰਜਾ ਕਰਦਾ ਹੈ—ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਨਵੇਂ ਡਿਵੈਲਪਰ ਆਉਂਦੇ ਹਨ ਜਿਹੜੇ ਮੂਲ ਸੰਦਰਭ ਨੂੰ ਨਹੀਂ ਜਾਣਦੇ।
"ਅਸੀਂ v1 ਕਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾ ਸਕਦੇ ਹਾਂ?" ਪੁੱਛਣ ਦੀ ਥਾਂ, ਫਰੇਮਵਰਕ ਲਾਈਫਸਾਈਕਲ ਵਿੱਚ ਲਾਗਤ ਦਾ ਅੰਕਲਨ ਕਰੋ:
ਇੱਕ ਫਰੇਮਵਰਕ ਚੋਣ ਇੱਕ ਨਿਰਮਾਣ ਤਰੀਕੇ ਲਈ ਇੱਕ ਕਮਿਟਮੈਂਟ ਹੈ। ਇਸਨੂੰ ਇੱਕ ਕਈ‑ਸਾਲਾਂ ਦੇ ਠੇਕੇ ਵਾਂਗ ਮੰਨੋ, ਇੱਕ ਵਾਰੀ ਖਰੀਦ ਨਹੀਂ।
ਅਪਗਰੇਡ ਉਹ ਜਗ੍ਹਾ ਹੈ ਜਿੱਥੇ "ਭਵਿੱਖ ਦਾ ਤੁਸੀਂ" ਅੱਜ ਦੇ ਫਰੇਮਵਰਕ ਫੈਸਲੇ ਦੀ ਕੀਮਤ ਭੁਗਤਦਾ ਹੈ। ਇੱਕ ਫਰੇਮਵਰਕ ਜਿਸ ਦੀ ਵਰਜਨ ਲਾਈਫਸਾਈਕਲ ਅੰਦਾਜ਼ਤਯੋਗ ਹੈ, ਰੱਖ‑ਰਖਾਅ ਨੂੰ ਨਿਰੰਤਰ (ਚੰਗੇ ਅਰਥ ਵਿੱਚ) ਰੱਖ ਸਕਦਾ ਹੈ। ਜੇ ਫਰੇਮਵਰਕ ਵਿੱਚ ਅਕਸਰ ਬ੍ਰੇਕਿੰਗ‑ਚੇਜ਼ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਰੋਜ਼ਾਨਾ ਅਪਡੇਟ ਛੋਟੇ ਪ੍ਰਾਜੈਕਟਾਂ ਨੂੰ ਛੋਟੇ ਕੰਮਾਂ ਵਾਂਗ ਬਦਲ ਸਕਦਾ ਹੈ ਜੋ ਪ੍ਰੋਡਕਟ ਕੰਮ ਤੋਂ ਸਮਾਂ ਚੁਰਾਉਂਦੇ ਹਨ।
ਰਿਲੀਜ਼ ਨੀਤੀ ਨੂੰ ਕੀਮਤ‑ਪੰਨਾ ਵਾਂਗ ਪੜ੍ਹੋ:
ਮੁੱਖ ਅਪਗਰੇਡ ਆਮ ਤੌਰ 'ਤੇ APIs, ਸੰਰਚਨਾ ਫਾਰਮੈਟ, ਬਿਲਡ ਟੂਲ ਅਤੇ ਸਿਫਾਰਸ਼ੀ ਆਰਕੀਟੈਕਚਰ ਪੈਟਰਨ ਤੋੜ ਦਿੰਦੀਆਂ ਹਨ। ਲਾਗਤ ਸਿਰਫ਼ "ਕੰਪਾਇਲ ਕਰਵਾਉਣਾ" ਨਹੀਂ ਹੁੰਦੀ—ਇਹ ਕੋਡ ਨੂੰ ਰੀਫੈਕਟਰ ਕਰਨਾ, ਟੈਸਟਾਂ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ, ਟੀਮ ਨੂੰ ਮੁੜ‑ਸਿਖਾਉਣਾ ਅਤੇ ਕੋਨੇ‑ਕੋਨੇ ਦੀ ਪੁਨਰਸਰਗਣਾ ਕਰਨਾ ਵੀ ਹੁੰਦੀ ਹੈ।
ਇੱਕ ਸੋਚ ਪ੍ਰਯੋਗ: ਜੇ ਤੁਸੀਂ ਦੋ ਮੁੱਖ ਵਰਜਨਾਂ ਛੱਡ ਗਏ ਹੋ, ਤਾਂ ਕੀ ਤੁਸੀਂ ਹੱਕਿਕਤ ਵਿੱਚ ਇੱਕ ਹਫ਼ਤੇ ਵਿੱਚ ਅਪਗਰੇਡ ਕਰ ਸਕਦੇ ਹੋ? ਜੇ ਸੱਚਾ ਜਵਾਬ "ਨਹੀਂ" ਹੈ, ਤਾਂ ਤੁਸੀਂ ਮੁੜ‑ਮੁੜੇ ਹੋਣ ਵਾਲੇ ਕਰਜ਼ ਦੇ ਭੁਗਤਾਨ ਦੇ ਸਾਹਮਣੇ ਹੋ।
ਡੈਪ੍ਰਿਕੇਸ਼ਨਾਂ ਨੂੰ ਸ਼ੋਰ ਨਾ ਸਮਝੋ—ਉਹ ਇੱਕ ਘੜੀ ਦੀ ਤਰ੍ਹਾਂ ਹਨ। ਉਨ੍ਹਾਂ ਨੂੰ ਮਾਪਯੋਗ ਕਰਜ਼ ਮੈਟ੍ਰਿਕ ਬਣਾਓ:
ਉਹਨਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਨ ਦੇਣ ਨਾਲ ਛੋਟੇ ਸੁਰੱਖਿਅਤ ਬਦਲਾਅ ਇਕ ਖਤਰਨਾਕ ਮਾਈਗਰੇਸ਼ਨ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹਨ।
ਫਰੇਮਵਰਕ ਅਪਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਆਖਰੀ 1–2 ਮੁੱਖ ਰਿਲੀਜ਼ਾਂ ਲਈ ਅਧਿਕਾਰਿਕ ਮਾਈਗਰੇਸ਼ਨ ਗਾਈਡ ਝਲਕੋ। ਜੇ ਗਾਈਡ ਲੰਬੀ, ਅਸਪੱਸ਼ਟ ਜਾਂ ਵਿਆਪਕ ਮੈਨੁਅਲ ਕਦਮਾਂ ਦੀ ਲੋੜ ਰੱਖਦੀ ਹੈ ਤਾਂ ਇਹ ਡੀਲ‑ਬ੍ਰੇਕਰ ਨਹੀਂ, ਪਰ ਇਹ ਇੱਕ ਰੱਖ‑ਰਖਾਅ ਬਜਟ ਆਈਟਮ ਹੈ ਜਿਸਨੂੰ ਤੁਹਾਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ਫਰੇਮਵਰਕ ਆਪਣੇ ਕੋਰ API ਤੋਂ ਜ਼ਿਆਦਾ ਹੁੰਦਾ ਹੈ। ਇਸ ਦਾ ਇਕੋਸਿਸਟਮ ਤੀਸਰੇ‑ਪੱਖ ਦੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਅਤੇ ਪੈਕੇਜਾਂ, ਪਲਗਇਨ, ਬਿਲਡ ਟੂਲ, ਟੈਸਟਿੰਗ ਯੂਟਿਲਿਟੀਆਂ, ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ, ਉਦਾਹਰਣ, ਇੱਕੀਕਰਨ (ਆਥ, ਭੁਗਤਾਨ, ਐਨਾਲਿਟਿਕਸ) ਅਤੇ ਉਹ ਕਮਿਊਨਿਟੀ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਟਰਬਲਸ਼ੂਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।
ਹਰ ਡੀਪੈਂਡੈਂਸੀ ਜੋ ਤੁਸੀਂ ਜੋੜਦੇ ਹੋ ਉਹ ਇਕ ਹੋਰ ਹਿਲਦੁਲ ਹੈ ਜਿਸ ਉੱਤੇ ਤੁਹਾਨੂੰ ਪੂਰਾ ਨਿਯੰਤਰਣ ਨਹੀਂ ਹੈ। ਬਹੁਤ ਸਾਰੀਆਂ ਤੀਸਰੀ‑ਪੱਖ ਡੀਪੈਂਡੈਂਸੀਜ਼ 'ਤੇ ਨਿਰਭਰ ਹੋਣ ਨਾਲ ਖਤਰਾ ਵਧਦਾ ਹੈ ਕਿਉਂਕਿ:
ਇਸ ਤਰ੍ਹਾਂ ਕੋਈ ਸਧਾਰਣ ਫੀਚਰ (ਜਿਵੇਂ ਫਾਈਲ ਅਪਲੋਡ ਪਲਗਇਨ) ਵੀ ਚੁੱਪਚਾਪ ਲੰਬੇ ਸਮੇਂ ਦੀ ਰਖ‑ਰਖਾਅ ਬਾਂਧਣਾ ਬਣ ਸਕਦੀ ਹੈ।
ਕਿਸੇ ਪੈਕੇਜ ਜਾਂ ਟੂਲ ਨੂੰ ਅਪਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਕੁਝ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੰਕੇਤ ਚੈੱਕ ਕਰੋ:
ਜੇ ਦੋ ਸਮਾਨ ਡੀਪੈਂਡੈਂਸੀਜ਼ ਵਿੱਚ ਫੈਸਲਾ ਕਰਨਾ ਹੋਵੇ ਤਾਂ ਉਹ ਚੁਣੋ ਜੋ ਠੰਢੀ, ਚੰਗੀ ਤਰ੍ਹਾਂ ਸੰਭਾਲੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਵਰਜਨ‑ਸਮਰਥਿਤ ਹੋਵੇ।
"ਮੁੱਢਲੇ ਤੌਰ 'ਤੇ ਨਾ ਟੁੱਟਣ ਵਾਲੀਆਂ" ਡੀਪੈਂਡੈਂਸੀਜ਼ ਦੀ ਗਿਣਤੀ ਘੱਟ ਰੱਖੋ। ਕੋਰ ਵਰਕਫਲੋਜ਼ (ਆਥ, ਡੇਟਾ ਐਕਸੈਸ, ਕਿਊਜ਼) ਲਈ ਚੌੜੇ ਸਮਰਥਿਤ ਵਿਕਲਪ ਚੁਣੋ ਜਾਂ ਪਤਲੇ ਅੰਦਰੂਨੀ ਐਡੈਪਟਰ ਬਣਾਓ ਤਾਂ ਕਿ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਬਦਲ ਸਕੋ।
ਹਰੇਕ ਡੀਪੈਂਡੈਂਸੀ ਫੈਸਲੇ ਦੀ ਦਸਤਾਵੇਜ਼ੀ ਕਰੋ: ਇਹ ਕਿਉਂ ਹੈ, ਇਸਦਾ ਬਦਲ ਕਿਹੜਾ ਹੈ, ਕੌਣ ਅਪਡੇਟ ਕਰੇਗਾ, ਅਤੇ ਨਿਕਾਸ ਯੋਜਨਾ ਕੀ ਹੈ। ਰੇਪੋ ਵਿੱਚ ਇੱਕ ਹਲਕਾ "ਡੀਪੈਂਡੈਂਸੀ ਰਜਿਸਟਰ" ਭੁੱਲੇ ਹੋਏ ਪੈਕੇਜਾਂ ਨੂੰ ਸਥਾਈ ਕਰਜ਼ ਬਣਨ ਤੋਂ ਰੋਕ ਸਕਦਾ ਹੈ।
ਫਰੇਮਵਰਕ ਸਿਰਫ਼ APIs ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੇ—ਉਹ ਤੁਹਾਨੂੰ ਕੁਝ ਪੈਟਰਨਾਂ ਵੱਲ ਝੁਕਾਉਂਦੇ ਹਨ ਜਿਹੜੇ ਕੋਡ ਢਾਂਚਾ ਕਰਨ ਲਈ ਹਨ। ਕੁਝ ਫਰੇਮਵਰਕ "ਸਭ ਕੁਝ ਕੰਟਰੋਲਰ/ਕੰਪੋਨੈਂਟ" ਸੋਚ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦੇ ਹਨ; ਹੋਰਾਂ ਨੂੰ ਮੋਡੀਊਲ, ਸੇਵਾ ਜਾਂ ਡੋਮੇਨ‑ਲੇਅਰਾਂ ਵੱਲ ਧੱਕਦੇ ਹਨ। ਜਦੋਂ ਉਹ ਪੈਟਰਨ ਤੁਹਾਡੇ ਪ੍ਰੋਡਕਟ ਦੀ ਸ਼ਕਲ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ, ਟੀਮ ਤੇਜ਼ੀ ਨਾਲ ਮੁੜਦੀ ਹੈ। ਜਦੋਂ ਨਹੀਂ ਖਾਂਦੇ, ਤਾਂ ਤੁਸੀਂ ਅਜਿਹੇ ਵਰਕਅਰਾਊਂਡ ਲਿਖਦੇ ਹੋ ਜੋ ਸਥਾਈ ਬਣ ਜਾਂਦੇ ਹਨ।
ਕਪਲਿੰਗ ਉਸ ਵੇਲੇ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਤੁਹਾਡੀ ਕੋਰ ਬਿਜ਼ਨਸ ਲੋਜਿਕ ਬਿਨਾਂ ਫਰੇਮਵਰਕ ਦੇ ਮੌਜੂਦ ਨਹੀਂ ਰਹਿ ਸਕਦੀ। ਆਮ ਸੰਕੇਤ:
ਲਾਗਤ ਬਾਅਦ ਵਿੱਚ ਪ੍ਰਗਟ ਹੁੰਦੀ ਹੈ: ਫਰੇਮਵਰਕ ਬਦਲਣਾ, ਡੇਟਾਬੇਸ ਲੇਅਰ ਬਦਲਣਾ ਜਾਂ ਈਨੀ ਲਾਜ਼ਮੀ ਲਾਜ਼ਮੀ ਕੰਮਾਂ ਨੂੰ ਪਿਛੇ ਹਟਾਉਣਾ ਮਹੰਗਾ ਹੋ ਜਾਂਦਾ ਹੈ।
ਪ੍ਰਯੋਗਯੋਗ ਰਵੱਈਆ ਇਹ ਹੈ ਕਿ ਫਰੇਮਵਰਕ ਨੂੰ ਬਾਹਰੀ "ਡਿਲਿਵਰੀ ਮੈਕੇਨਿਜ਼ਮ" ਮੰਨੋ ਅਤੇ ਆਪਣੀ ਕੋਰ ਲੋਜਿਕ ਸਾਫ ਮੋਡੀਊਲ/ਸੇਵਾਵਾਂ ਵਿੱਚ ਰੱਖੋ। ਐਡੈਪਟਰ, ਇੰਟਰਫੇਸ ਅਤੇ ਸਰਵਿਸ ਲੇਅਰ ਵਰਗੀਆਂ ਬਾਊਂਡਰੀਜ਼ ਵਰਤੋ ਤਾਂ ਕਿ ਸਿਰਫ਼ ਥੋੜਾ ਜਿਹਾ ਕੋਡਬੇਸ ਫਰੇਮਵਰਕ ਨਾਲ ਚੁੰਨਣ ਵਾਲਾ ਹੋਵੇ।
"ਪਤਲਾ ਫਰੇਮਵਰਕ ਲੇਅਰ" ਉਦਾਹਰਨ:
UserRepository) 'ਤੇ ਨਿਰਭਰ ਰਹਿੰਦੀਆਂ ਹਨ, ਨਾ ਕਿ ORM 'ਤੇ।"ਹਰ ਜਗ੍ਹਾ ਫਰੇਮਵਰਕ" ਉਦਾਹਰਨ:
ਇੱਕ ਫਰੇਮਵਰਕ ਜੋ ਤੁਹਾਡੀ ਆਵਸ਼ਕਤਾ ਵਾਲੀ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਫਿੱਟ ਕਰਦਾ ਹੈ—ਅਤੇ ਸਮੇਂ 'ਤੇ ਬਾਊਂਡਰੀਜ਼ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ—ਭਵਿੱਖ ਦੀਆਂ ਮਾਈਗਰੇਸ਼ਨਾਂ ਨੂੰ ਛੋਟਾ, ਟੈਸਟਸ ਨੂੰ ਸਾਦਾ ਅਤੇ ਨਵੀਆਂ ਫੀਚਰਾਂ ਨੂੰ ਘੱਟ ਗੁਪਤ ਕਰਜ਼ ਨਾਲ ਰੱਖਦਾ ਹੈ।
ਟੈਸਟਿੰਗ ਕਰਜ਼ ਅਕਸਰ ਇੱਕ ਭਿਆਨਕ ਟਿਕਟ ਵਜੋਂ ਨਹੀਂ ਆਉਂਦਾ। ਇਹ ਧੀਰੇ‑ਧੀਰੇ ਜਮਦਾ ਹੈ: ਹਰ "ਤੇਜ਼ ਫਿਕਸ" ਜੋ ਕਵਰਡ ਨਹੀਂ, ਹਰ ਰੀਫੈਕਟਰ ਜੋ ਖਤਰਨਾਕ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਹਰ ਰਿਲੀਜ਼ ਜੋ ਮੈਨੂਅਲ ਚੈੱਕਲਿਸਟ ਅਤੇ ਡੂੰਘੀ ਸਾਹ ਲੈਣ ਦੀ ਲੋੜ ਰੱਖਦੀ ਹੈ।
ਫਰੇਮਵਰਕ ਦੀ ਚੋਣ ਅਹੰਕਾਰਕ ਹੈ ਕਿਉਂਕਿ ਉਹ ਆਦਤਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ। ਉਹ ਦੇਸ਼ਾਂਕੀ ਤੈਅ ਕਰਦੇ ਹਨ ਕਿ ਟੈਸਟ ਲਿਖਣਾ ਡਿਫਾਲਟ ਰਾਹ ਹੋਵੇਗਾ ਜਾਂ ਇੱਕ ਵਾਧੂ ਕਦਮ।
ਕੁਝ ਫਰੇਮਵਰਕ ਛੋਟੇ, ਟੈਸਟੇਬਲ ਯੂਨਿਟਾਂ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦੇ ਹਨ: ਰਾਊਟਿੰਗ/ਕੰਟਰੋਲਰ, ਬਿਜ਼ਨਸ ਲੋਜਿਕ ਅਤੇ ਡੇਟਾ ਐਕਸੈਸ ਵਿਚ ਸਪੱਸ਼ਟ ਵੰਡ। ਹੋਰ ਪੈਟਰਨਾਂ ਇਨ੍ਹਾਂ ਸਰਹੱਦਾਂ ਨੂੰ ਧੁੰਦਲਾ ਕਰਦੇ ਹਨ ਅਤੇ "ਗੌਡ ਓਬਜੈਕਟਸ" ਵੱਲ ਧਕਾ ਦਿੰਦੇ ਹਨ ਜੋ ਅਲਗ ਕਰਨ ਲਈ ਮੁਸ਼ਕਿਲ ਹੁੰਦੇ ਹਨ।
ਖੋਜੋ ਕਿ ਕੀ ਫਰੇਮਵਰਕ DI, ਮੌਕਿੰਗ ਅਤੇ ਸੇਪਰੇਸ਼ਨ‑ਆਫ‑ਕਾਂਸਰਨਜ਼ ਲਈ ਬਿਲਟ‑ਇਨ ਪੈਟਰਨ ਦਿੰਦਾ ਹੈ। ਜੇ "ਖੁਸ਼ੀ ਵਾਲਾ ਰਸਤਾ" ਗਲੋਬਲ ਸਟੇਟ, ਸਟੈਟਿਕ ਹੈਲਪਰਾਂ ਜਾਂ ਡੁਮੀ ਮੈਜਿਕ ਨਾਲ ਜੁੜਿਆ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਟੈਸਟ ਭੰਗੁਰ ਸੈਟਅਪ ਅਤੇ ਨਾਜ਼ੁਕ ਅਸਰAssertions ਵਾਲੇ ਹੋ ਜਾਵੇਗੇ।
ਸਿਹਤਮੰਦ ਟੈਸਟ ਸੂਟ ਆਮ ਤੌਰ 'ਤੇ ਦੋਹਾਂ ਨੂੰ ਮਿਲਾਉਂਦਾ ਹੈ:
ਜਿਹੜੇ ਫਰੇਮਵਰਕ ਡੀਪੇਂਡੈਂਸੀਜ਼ ਨੂੰ ਮੌਕ/ਫੇਕ ਕਰਨ ਅਤੇ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਅਲੱਗ ਚਲਾਉਣ ਦੇ ਸਧਾਰਨ ਤਰੀਕੇ ਦਿੰਦੇ ਹਨ, ਉਹ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਨੂੰ ਸਸਤਾ ਬਣਾਉਂਦੇ ਹਨ। ਜੇ ਫਰੇਮਵਰਕ ਸਿਰਫ਼ ਐਪ ਨੂੰ ਬੂਟ ਕਰਕੇ ਹੀ ਟੈਸਟ ਹੋਣਯੋਗ ਲੱਗਦਾ ਹੈ, ਤਾਂ ਟੀਮ ਭਾਰਵਾਹ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਟੈਸਟਾਂ ਵੱਲ ਧੱਕੀ ਜਾ ਸਕਦੀ ਹੈ—ਜੋ ਮਹੱਤਵਪੂਰਨ ਹਨ ਪਰ ਸੁਸਤ ਅਤੇ ਰੱਖ‑ਰਖਾਅ ਵਿਚ ਔਖੇ ਹੁੰਦੇ ਹਨ।
ਧੀਮੇ ਟੈਸਟ ਇੱਕ ਛੁਪਿਆ ਹੋਇਆ ਟੈਕਸ ਬਣਾਉਂਦੇ ਹਨ। ਜਦੋਂ ਪੂਰੀ ਸੂਟ 20–40 ਮਿੰਟ ਲੈਂਦੀ ਹੈ, ਲੋਕ ਇਸਨੂੰ ਘੱਟ ਦੌੜਾਉਂਦੇ ਹਨ, ਚੇਂਜਾਂ ਇਕੱਠੀਆਂ ਕਰਦੇ ਹਨ, ਵੱਡੀਆਂ ਫੇਲ੍ਹੀਆਂ ਮਿਲਦੀਆਂ ਹਨ, ਅਤੇ ਡੀਬੱਗ ਕਰਨ ਵਿੱਚ ਵੱਧ ਸਮਾਂ ਲਗਦਾ ਹੈ।
ਫਰੇਮਵਰਕ‑ਸਤਹ 'ਤੇ ਪੈਰਾੂਐਲ ਐਕਜ਼ਿਕਿਊਸ਼ਨ, ਨਿਰਧਾਰਿਤ ਟੈਸਟ ਵਾਤਾਵਰਣ ਅਤੇ ਹਲਕੇ "ਟੈਸਟ ਮੋਡ" ਦੀ ਸਹਾਇਤਾ ਟੈਸਟਿੰਗ ਨੂੰ ਤਿੱਖਾ ਲੂਪ ਬਣਾਉਂਦੀ ਹੈ। ਇਸ ਸਪੀਡ ਨਾਲ ਗੁਣਵੱਤਾ ਉੱਚੀ ਰਹਿੰਦੀ ਹੈ ਬਿਨਾਂ ਹਿਰੋਇਕਸ 'ਤੇ ਨਿਰਭਰ ਰਹਿਣ ਦੇ।
ਉਨ੍ਹਾਂ ਫਰੇਮਵਰਕਾਂ ਨੂੰ ਚੁਣੋ ਜਿਨ੍ਹਾਂ ਕੋਲ ਪੱਕੇ, ਵਿਸ਼ਵਵੀੁਪਯੋਗ ਟੈਸਟਿੰਗ ਟੂਲ ਅਤੇ ਸਪੱਸ਼ਟ ਪੈਟਰਨ ਹਨ:
ਜੇ ਅਧਿਕਾਰਿਕ ਡੌਕਸ ਟੈਸਟਿੰਗ ਨੂੰ ਪਹਿਲਾ ਦਰਜੇ ਦਾ ਵਿਸ਼ਾ ਮੰਨਦੇ ਹਨ—ਨਾਹ ਕਿ ਬਾਅਦ ਦੀ ਸੋਚ—ਤਾਂ ਤੁਸੀਂ ਸਾਲਾਂ ਦੀ ਮੰਦੀ ਕਵਰੇਜ ਤੋਂ ਬਚ ਜਾਵੋਗੇ।
ਤਕਨੀਕੀ ਕਰਜ਼ ਉਹ ਫ਼ਰਕ ਹੈ ਜੋ ਤੁਸੀਂ ਸ਼ਿਪ ਕੀਤਾ ਹੋਇਆ ਕੰਮ ਅਤੇ ਉਹ ਕੰਮ ਜਿਸਦੀ ਲੋੜ ਤੁਹਾਨੂੰ ਅੱਗੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਸ਼ਿਪ ਕਰਨ ਲਈ ਹੋਵੇਗੀ, ਦਰਮਿਆਨ ਹੁੰਦਾ ਹੈ.
ਅਮਲ ਵਿੱਚ, ਇਹ ਢੰਗ ਨਾਲ ਪ੍ਰਗਟ ਹੁੰਦਾ ਹੈ:
ਫਰੇਮਵਰਕ ਕੋਡ ਦੀ ਰਚਨਾ, ਡੀਪੈਂਡੈਂਸੀਜ਼, ਟੈਸਟਿੰਗ ਅਤੇ ਅਪਗਰੇਡ ਮਕੈਨਿਕਸ ਲਈ ਡਿਫਾਲਟ ਤੈਅ ਕਰਦੇ ਹਨ.
ਉਹ ਕਰਜ਼ ਘਟਾਉਂਦੇ ਹਨ ਜਦੋਂ ਉਹ ਦੁਹਰਾਊ ਪੈਟਰਨ ਲਾਗੂ ਕਰਨ, ਟੈਸਟਿੰਗ ਸੌਖੀ ਬਣਾਉਣ ਅਤੇ ਭਰੋਸੇਯੋਗ ਰਿਲੀਜ਼ ਪ੍ਰਕਿਰਿਆ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ। ਉਹ ਕਰਜ਼ ਵਧਾਉਂਦੇ ਹਨ ਜਦੋਂ ਤੁਹਾਨੂੰ ਬਹੁਤ ਸਾਰਾ ਗਲੂ ਕੋਡ ਲਿਖਣਾ ਪੈਂਦਾ, ਸਿਸਟਮ ਤੰਗ ਜੋੜ ਵਿੱਚ ਫਸ ਜਾਂਦਾ ਹੈ, ਜਾਂ ਅਚਾਨਕ ਤੋੜ-ਮਾਰ ਬਦਲਾਅ ਆਉਂਦੇ ਹਨ ਬਿਨਾਂ ਸਥਿਰ ਮਾਈਗਰੇਸ਼ਨ ਰਸਤੇ ਦੇ।
ਸਿਰਫ਼ ਤੇਜ਼ v1 ਲਈ ਅਪਟੀਮਾਈਜ਼ ਨਾ ਕਰੋ; ਬਦਲੇ ਵਿੱਚ ਲਾਈਫਸਾਈਕਲ ਲਾਗਤ ਦਾ ਅੰਕਲਨ ਕਰੋ:
ਇੱਕ ਫਰੇਮਵਰਕ ਇੱਕ ਇੱਕ-ਵਾਰੀ ਇੰਸਟਾਲੇਸ਼ਨ ਨਹੀਂ, ਬਲਕਿ ਕਈ ਸਾਲਾਂ ਦਾ ਵਿਵਹਾਰਕ ਠੇਕਾ ਸਮਝੋ।
ਕੋਈ ਵੀ ਫਰੇਮਵਰਕ ਅਪਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਚਾਰ ਗੱਲਾਂ ਨੂੰ ਚੈੱਕ ਕਰੋ:
ਡੈਪ੍ਰਿਕੇਸ਼ਨ ਵਾਰਨਿੰਗਜ਼ ਇੱਕ ਕਾਂਜੀ ਮਿਣਾਰ ਦੀ ਤਰ੍ਹਾਂ ਹਨ — ਇਹ ਇਕ ਕਾਉਂਟਡਾਊਨ ਹੈ।
ਵਰਤੋਂਯੋਗ ਅਮਲ:
ਉਹਨਾਂ ਨੂੰ ਖੜਾ ਛੱਡ ਦੇਣਾ ਆਮ ਤੌਰ 'ਤੇ ਛੋਟੀ, ਸੁਰੱਖਿਅਤ ਚੇਜ਼ਾਂ ਨੂੰ ਇਕ ਖ਼ਤਰਨਾਕ ਵੱਡੀ ਮਾਈਗਰੇਸ਼ਨ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਹਰ ਡੀਪੈਂਡੈਂਸੀ ਤੁਹਾਡੇ ਨਿਯੰਤਰਣ ਤੋਂ ਬਾਹਰ ਇੱਕ ਹੋਰ ਹਿਲਦੁਲ ਹੈ.
ਆਮ ਖ਼ਤਰੇ:
ਗੱਲ ਇਹ ਹੈ ਕਿ ਇੱਕ ਸਿਧੀ ਖਾਸੀਅਤ (ਜਿਵੇਂ ਫਾਈਲ ਅਪਲੋਡ ਪਲਗਇਨ) ਕਿਵੇਂ ਲੰਬੇ ਸਮੇਂ ਦੀ ਰਖ-ਰਖਾਅ ਲਈ ਬੰਦਬੰਦੀ ਬਣ ਜਾਂਦੀ ਹੈ।
ਖਤਰਾ ਘਟਾਉਣ ਲਈ, "ਬਹੁਤ ਘੱਟ ਆਲਸੀ" ਡੀਪੈਂਡੈਂਸੀਜ਼ ਰੱਖੋ, ਅਤੇ ਪ੍ਰਤੀ ਡੀਪੈਂਡੈਂਸੀ ਫੈਸਲੇ ਦੀ ਦਸਤਾਵੇਜ਼ੀ (ਕਿਉਂ, ਕੌਣ ਅਪਡੇਟ ਕਰੇਗਾ, ਨਿਕਾਸ ਯੋਜਨਾ) ਬਣਾਓ।
ਤੁਸੀਂ ਕੱਪਲਡ ਹੋ ਜਾਦੇ ਹੋ ਜਦੋਂ ਤੁਹਾਡੀ ਕੋਰ ਬਿਜ਼ਨਸ ਲੋਜਿਕ ਫਰੇਮਵਰਕ ਦੇ ਬਿਨਾਂ ਟਿਕ ਨਹੀਂ ਸਕਦੀ.
ਲਾਲ ਤੇਜ਼ ਨਿਸ਼ਾਨ:
ਲੌਕ‑ਇਨ ਘਟਾਉਣ ਲਈ ਬਾਊਂਡਰੀ ਬਣਾਓ: ਫਰੇਮਵਰਕ ਨੂੰ ਇੱਕ ਬਾਹਰੀ ਡਿਲਿਵਰੀ ਲੇਅਰ ਮੰਨੋ ਅਤੇ ਕੋਰ ਲੋਜਿਕ ਸਾਫ ਮੋਡੀਊਲ/ਸਰਵਿਸਜ਼ ਵਿੱਚ ਰੱਖੋ।
ਹਲਕਾ “ਥਿਨ ਫਰੇਮਵਰਕ ਲੇਅਰ” ਉਦਾਹਰਨ:
ਟੈਸਟਿੰਗ ਕਰਜ਼ ਆਮਤੌਰ 'ਤੇ ਇਕ ਵੱਡੇ ਟਿਕਟ ਵੱਜੋਂ ਨਹੀਂ ਆਉਂਦਾ—ਇਹ ਚੁਪਚਾਪ ਜੰਮਦਾ ਹੈ: ਹਰ "ਜਲਦੀ ਫਿਕਸ" ਜੋ ਕਵਰਡ ਨਹੀਂ, ਹਰ ਰੀਫੈਕਟਰ ਜੋ ਰਿਸਕੀ ਮਹਿਲੂਕ ਹੈ, ਹਰ ਰਿਲੀਜ਼ ਜੋ ਮੈਨੁਅਲ ਜਾਂ ਚਿੰਤਾਜਨਕ ਚੇਕਲਿਸਟ ਲੈਂਦੀ ਹੈ.
ਫਰੇਮਵਰਕ ਮੱਤਵਰ ਹੈ ਕਿਉਂਕਿ ਉਹ ਆਦਤਾਂ ਬਣਾਉਂਦੇ ਹਨ। ਜੇ ਟੈਸਟ ਲਿਖਣਾ ਡਿਫਾਲਟ ਨਹੀਂ ਹੈ, ਲੋਕ ਟੈਸਟ ਸਟੇਪ ਨੂੰ ਬਚਣ ਲੱਗਦੇ ਹਨ।
ਕੀਜ਼ ਜੋ ਟੈਸਟਿੰਗ ਨੂੰ ਸੌਖਾ ਬਣਾਉਂਦੀਆਂ/ਕਠਿਨ ਬਣਾਉਂਦੀਆਂ ਹਨ:
ਟੈਸਟ ਸਪੀਡ ਡਿਵੈਲਪਰ ਉਤਪਾਦਕਤਾ ਹੈ—ਧੀਮੀਆਂ ਸੂਟਾਂ ਨਾਲ ਲੋਕ ਘੱਟ ਰਨ ਕਰਦੇ ਹਨ ਅਤੇ ਵੱਡੀਆਂ ਫੇਲ੍ਹੀਆਂ ਮਿਲਦੀਆਂ ਹਨ।
ਫਰੇਮਵਰਕ ਚੋਣ ਇੱਕ ਲੋਕਾਂ ਦਾ ਫੈਸਲਾ ਵੀ ਹੈ. ਵਧੀਆ ਆਰਕੀਟੈਕਚਰ ਦੇ ਬਾਵਜੂਦ, ਜੇ ਟੀਮ ਆਰਾਮਦਾਇਕ ਨਹੀਂ ਰਹੇਗੀ ਤਾਂ ਲੰਬੇ ਸਮੇਂ ਦਾ ਕਰਜ਼ ਬਣ ਸਕਦਾ ਹੈ.
ਸਿੱਖਣ ਵਾਲਾ ਵੇਰਵਾ = ਧੀਮੀ ਡਿਲਿਵਰੀ (ਅਤੇ ਧੀਮੀ ਰੀਕਵਰੀ)
ਖੁਦ ਰੁਝਾਨ ਵਾਲੇ ਨੁਕਸਾਨ:
ਭਰਤੀ ਹਕੀਕਤਾਂ:
ਪ੍ਰਦਰਸ਼ਨ ਕਰਜ਼ ਅਕਸਰ ਫਰੇਮਵਰਕ ਦੇ ਡਿਫਾਲਟਸ ਨੂੰ ਫਿੱਟ ਕਰਨ ਲਈ ਕੀਤੀਆਂ "ਅਸਥਾਈ" ਸਮਝੌਤਿਆਂ ਤੋੰ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਹ ਸਮਝੌਤੇ ਪੱਕੇ ਹੋ ਜਾਂਦੇ ਹਨ ਅਤੇ ਕੋਡਬੇਸ ਵਿੱਚ ਫੈਲ ਜਾਂਦੇ ਹਨ, ਜਿਸ ਨੂੰ ਊਹਦੇ ਤੇਜ਼ੀ ਨਾਲ ਅਣਹੋਣੇ ਸਮੇਂ 'ਤੇ ਪਿੱਛੇ ਹਟਾਉਣਾ ਮਹਿੰਗਾ ਪੈਂਦਾ ਹੈ.
ਆਮ ਟਰੈਪ:
ਤਕਨੀਕੀ ਕਰਜ਼ ਸਿਰਫ਼ "ਪੁਰਾਣਾ ਕੋਡ" ਨਹੀਂ—ਇਹ ਵਾਧੂ ਵਿਕਲਪਾਂ ਅਤੇ ਅਸਮਤੋਲ ਪੈਟਰਨਾਂ ਤੋਂ ਵੀ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਹਰ ਟੀਮ ਜਾਂ ਡਿਵੈਲਪਰ ਇੱਕੋ ਸਮੱਸਿਆ ਲਈ ਵੱਖਰਾ ਢੰਗ ਵਰਤਦਾ ਹੈ, ਰੱਖ-ਰਖਾਅ ਬਹੁਤ ਸਲਲ ਹੋ ਜਾਂਦੀ ਹੈ।
ਢਾਂਚਾਗਤ ਮਦਦ:
ਅਸੂਲ: ਪਹਿਲੇ ਹੀ ਫੈਸਲੇ ਕਰੋ, ਫਿਰ CI ਨਾਲ ਇਹ ਲਾਗੂ ਕਰੋ—ਇਸ ਨਾਲ ਰੀਤੇ ਧੀਮੇ ਧੀਮੇ ਕਰਜ਼ ਨਹੀਂ ਬਣਦੇ।
ਨਵੀਆਂ, ਚਮਕਦਾਰ ਫਰੇਮਵਰਕਾਂ ਨੂੰ ਅਕਸਰ ਸ਼ੁਰੂ ਵਿੱਚ ਆਪਣੇ ਰਾਹ ਤੇ ਤੇਜ਼ੀ ਮਿਲਦੀ ਹੈ। ਪਰ 'ਟ੍ਰੈਂਡੀ' ਹੋਣਾ ਅਤੇ 'ਪੱਕਾ' ਹੋਣਾ ਵੱਖਰੇ ਹਨ—ਇਨ੍ਹਾਂ ਨੂੰ ਭੁੱਲਣਾ ਲੰਬੇ ਸਮੇਂ ਦਾ ਕਰਜ਼ ਪੈਦਾ ਕਰਦਾ ਹੈ।
ਮੈਚਰ ਦਿਖਾਈ ਛੇਤੀ ਓਸ ਤਰ੍ਹਾਂ:
ਟ੍ਰੈਂਡੀ ਫਰੇਮਵਰਕਾਂ ਨੂੰ ਕੋਰ ਸਿਸਟਮਾਂ 'ਚ ਰੱਖਣ ਨਾਲ ਅਕਸਰ ਮਾਈਗਰੇਸ਼ਨ, ਤੋੜ-ਮਰੋੜ ਅਤੇ ਇੰਟਰਨਲ ਪੈਚ ਲੇਅਰ ਬਣਾਉਣ ਦੀ ਲੋੜ ਪੈਂਦੀ ਹੈ।
ਫਰੇਮਵਰਕ ਚੁਣਨਾ "ਸਭ ਤੋਂ ਵਧੀਆ" ਲੱਭਣਾ ਨਹੀਂ, ਸਗੋਂ ਤੁਹਾਡੇ ਪ੍ਰੋਡਕਟ, ਪਾਬੰਦੀਆਂ ਅਤੇ ਟੀਮ ਲਈ ਜੋ ਫਿੱਟ ਬੈਠਦਾ ਹੋਵੇ ਉਹ ਹੈ। ਇੱਕ ਹਲਕੀ-ਫੁਲੀ ਚੈੱਕਲਿਸਟ ਤੁਹਾਨੂੰ ਅਜੇ ਫੈਸਲਾ ਬਚਾਉਣਯੋਗ ਬਣਾਉਂਦੀ ਹੈ।
ਸਧਾਰਨ ਫੈਸਲਾ ਮੈਟ੍ਰਿਕਸ (1–5 ਸਕੋਰ):
AI‑ਸਹਾਇਤਾ ਵਾਲੀ ਡਿਵੈਲਪਮੈਂਟ ਕੋਡ ਜਨਰੇਟ ਕਰਨ ਦੀ ਰਫ਼ਤਾਰ ਬਦਲ ਸਕਦੀ ਹੈ, ਪਰ ਇਹ ਫਰੇਮਵਰਕ‑ਚਲਿਤ ਕਰਜ਼ ਨੂੰ ਖ਼ਤਮ ਨਹੀਂ ਕਰਦੀ। ਹਕੀਕਤ ਵਿੱਚ, ਇਹ ਡਿਫਾਲਟਸ ਅਤੇ ਰੀਤੀਆਂ ਦੀਆਂ ਅਹਿਮੀਅਤ ਨੂੰ ਵਧਾ ਦਿੰਦੀ ਹੈ ਕਿਉਂਕਿ ਕੋਡ ਤੇਜ਼ੀ ਨਾਲ ਬਣਦਾ ਹੈ ਅਤੇ ਅਸਮਤੋਲਤਾ ਤੇਜ਼ੀ ਨਾਲ ਫੈਲਦੀ ਹੈ।
ਜਦੋਂ ਤੁਸੀਂ Koder.ai ਵਰਗੇ ਪਲੀਟਫਾਰਮ ਨੂੰ ਵਰਤਦੇ ਹੋ (React, Go + PostgreSQL, ਅਤੇ Flutter ਲਈ ਚੈਟ-ਅਧਾਰਿਤ ਬਿਲਡ ਵਰਕਫਲੋ), ਤਾਂ ਜਨਰੇਟ ਕੀਤੇ ਗਏ ਕੋਡ ਨੂੰ ਕਿਸੇ ਹੋਰ ਫਰੇਮਵਰਕ ਨਿਵੇਸ਼ ਵਾਂਗ ਹੀ ਸਮਝੋ:
UserRepository) ਤੇ ਨਿਰਭਰ ਹੁੰਦੀ ਹੈ, ਨਾ ਕਿ ORM 'ਤੇ।ਇਹ ਪਹੁੰਚ ਮਾਈਗਰੇਸ਼ਨ ਛੋਟੀਆਂ, ਟੈਸਟਸ ਸਧਾਰਨ ਅਤੇ ਨਵੇਂ ਫੀਚਰਾਂ ਲਈ ਘੱਟ ਗੁਪਤ ਕਰਜ਼ ਬਣਾਉਂਦੀ ਹੈ।
ਜਦੋਂ ਫਰੇਮਵਰਕ ਡੌਕਸ ਟੈਸਟਿੰਗ ਨੂੰ ਪਹਿਲੀ ਪੰਗਤ ਵਿੱਚ ਰੱਖਦੇ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਸਾਲਾਂ ਦੀ ਖਰਾਬ ਕਵਰੇਜ ਤੋਂ ਬਚ ਸਕਦੇ ਹੋ।
ਟਰਾਇਬਲ ਨੋਲੇਜ (ਜੋ ਕੇਓਨਵਨ ਦਾ ਲੁਕਾਇਆ ਗਿਆ ਗਿਆਨ) ਵੀ ਲੁੱਛਣ ਵਾਲੀ ਖਤਰਾ ਹੈ। ਇਸ ਨੂੰ ਘਟਾਉਣ ਲਈ:
ਇੱਕ ਛੋਟਾ "ਕਿਵੇਂ ਅਸੀਂ ਇੱਥੇ ਬਣਾਉਂਦੇ ਹਾਂ" ਮਾਰਗਦਰਸ਼ਕ ਅਤੇ ਟੈਂਪਲੇਟ ਰੇਪੋ ਓਨਬੋਰਡਿੰਗ ਨੂੰ ਇੱਕ ਚੈਕਲਿਸਟ ਬਣਾਉਂਦੇ ਹਨ। (ਉਦਾਹਰਨ ਲਈ /engineering/standards)
ਜਦੋਂ ਟੀਮਾਂ ਸ਼ੁਰੂ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਨ ਦਬਾਅ ਮਹਿਸੂਸ ਕਰਦੀਆਂ ਹਨ, ਉਹ ਅਕਸਰ ਫਰੇਮਵਰਕ ਨੂੰ 'ਫਾਈਟ' ਕਰਦੇ ਹੋਏ ਵੱਖ-ਵੱਖ ਵਰਕਅਰਾਊਂਡ ਜੋੜ ਦਿੰਦੇ ਹਨ: ਕੈਸ਼ਿੰਗ, ਮੈਨੂਅਲ DOM ਹੈਕ, ਰੂਟਿੰਗ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨਾ ਜਾਂ ਬਿਜ਼ਨਸ ਲੋਜਿਕ ਡੁਪਲੀਕੇਟ ਕਰਨਾ। ਇਹ ਨਤੀਜੇ ਆਮ ਤੌਰ 'ਤੇ ਅਸਮਤੋਲ ਪੈਟਰਨ, ਸਟੇਲ ਕੈਸ਼ ਅਤੇ ਰੇਸ ਕੰਡੀਸ਼ਨ ਬਣਾਉਂਦੇ ਹਨ।
ਪ੍ਰਮਾਣਿਕ ਦਿਸ਼ਾ:
ਸੰਤੁਲਿਤ ਰਵੱਈਆ: ਪ੍ਰਾਰੰਭਿਕ ਤੌਰ 'ਤੇ ਟ੍ਰੈਂਡੀ ਟੂਲਾਂ ਨੂੰ ਗੈਰ-ਕੋਰ ਖੇਤਰਾਂ (ਡੈਸ਼ਬੋਰਡ, ਪ੍ਰੋਟੋਟਾਈਪ) 'ਚ ਪਾਇਲਟ ਕਰੋ, ਫਿਰ ਹੀ ਵਿਆਪਕ ਅਪਣਾਉ।
ਛੋਟੀ ਚੈੱਕਲਿਸਟ—ਕੀ ਇਹ ਫਰੇਮਵਰਕ ਸਿਹਤਮੰਦ ਹੈ?
ਟ੍ਰੈਂਡੀ ਹੋਣਾ ਉਤਸ਼ਾਹ ਦਿੰਦਾ ਹੈ; ਮੈਚਰਿਟੀ ਹੀ ਲੰਬੇ ਸਮੇਂ ਦੀ ਲਾਗਤ ਘਟਾਉਂਦੀ ਹੈ।
| ਫੈਕਟਰ | ਕੀ ਸਕੋਰ ਕਰਨਾ ਹੈ | ਕਿਉਂ ਇਹ ਕਰਜ਼ ਲਈ ਮੱਤਵਰ ਹੈ |
|---|
| ਬਿਜ਼ਨਸ ਲੋੜਾਂ | ਟਾਈਮ‑ਟੂ‑ਮਾਰਕਿਟ, ਰੋਡਮੇਪ ਫਿੱਟ, ਕੰਪਲਾਇੰਸ | ਮੇismatch ਰੀਰਾਇਟ ਅਤੇ ਵਰਕਅਰਾਊਂਡ ਲਿਆ ਸਕਦੀ ਹੈ |
| ਰਿਸਕ | ਲੌਕ‑ਇਨ, ਲਾਈਫਸਾਈਕਲ ਸਥਿਰਤਾ, ਸੁਰੱਖਿਆ ਦ੍ਰਿਸ਼ਟਿਕੋਣ | ਅਣਪਲੰਡ ਮਾਈਗਰੇਸ਼ਨ ਅਤੇ ਐਮਰਜੈਂਸੀ ਅਪਗਰੇਡ |
| ਟੀਮ ਸKills | ਮੌਜੂਦਾ ਮਹਾਰਤ, ਸਿੱਖਣ ਦੀ ਔਖਾਈ, ਭਰਤੀ ਪੂਲ | ਧੀਮੀ ਡਿਲਿਵਰੀ ਅਤੇ ਅਸਮਤੋਲ ਕੋਡ ਗੁਣਵੱਤਾ |
ਪਹਿਲੇ ਦੌਰ 'ਤੇ ਨੋਟਸ ਲਿਖੋ: ਵਿਕਲਪ, ਅਨੁਮਾਨ ਅਤੇ ਸਵੀਕਾਰ ਕੀਤੇ ਰੇੱਡ ਫਲੈਗ—ਫਿਰ ਤਿਮਾਹੀ ਜਾਂ ਮਹੱਤਵਪੂਰਨ ਰੋਡਮੇਪ ਬਦਲਾਅ ਤੇ ਮੁੜ ਵਿਚਾਰ ਕਰੋ। (ਹੋਰ ਵਿਸਥਾਰ ਲਈ ਵੇਖੋ /blog/how-to-evaluate-tech-stack-choices)
ਤੇਜ਼ੀ ਇੱਕ ਗੁਣਾ ਵਧਾਉਂਦੀ ਹੈ—ਸਹੀ ਗਾਰਡਰੇਲ ਨਾਲ ਇਹ ਡਿਲਿਵਰੀ ਨੂੰ ਗੁਣਾ ਦਿੰਦੀ; ਬਿਨਾਂ ਗਾਰਡਰੇਲ ਦੇ ਇਹ ਭਵਿੱਖ ਦਾ ਰਖ-ਰਖਾਅ ਗੁਣਾ ਦੇ ਦਿੰਦੀ ਹੈ।