POS Lite ਬਣਾਉਣ ਵੇਲੇ ਸਿੱਖੇ ਗਏ ਸਬਕ
ਮੈਂ POS Lite ਬਣਾਉਣਾ ਪੂਰਾ ਕਰ ਲਿਆ ਹੈ, ਜੋ ਕਿ ਛੋਟੇ ਕਾਰੋਬਾਰਾਂ ਲਈ ਇੱਕ ਫੁੱਲ ਸਟੈਕ ਪੁਆਇੰਟ ਆਫ ਸੇਲ (point of sale) ਸਿਸਟਮ ਹੈ। ਮੈਂ ਪਹਿਲਾਂ ਇਸਦੇ ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਡਿਪਲੋਇਮੈਂਟ ਬਾਰੇ ਸਾਂਝਾ ਕੀਤਾ ਸੀ। ਹੁਣ, ਮੈਂ ਉਹ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ ਜੋ ਮੈਂ ਸਿੱਖਿਆ ਹੈ।
ਇੱਕ ਅਸਲੀ ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣਾ ਕਿਸੇ ਟਿਊਟੋਰਿਅਲ (tutorial) ਨੂੰ ਫੋਲੋ ਕਰਨ ਨਾਲੋਂ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ। ਟਿਊਟੋਰਿਅਲ ਤੁਹਾਡੇ ਲਈ ਫੈਸਲੇ ਲੈਂਦੇ ਹਨ। ਅਸਲੀ ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਨੂੰ ਚੋਣਾਂ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦੇ ਹਨ।
ਤੁਹਾਨੂੰ ਫੈਸਲਾ ਕਰਨਾ ਪਵੇਗਾ:
- ਕੋਡ ਨੂੰ ਕਿਵੇਂ ਸਟ੍ਰਕਚਰ ਕਰਨਾ ਹੈ
- ਕਿਹੜੇ ਫੀਚਰਸ ਪਹਿਲਾਂ ਬਣਾਉਣੇ ਹਨ
- ਫਰੰਟਐਂਡ (frontend) ਬੈਕਐਂਡ (backend) ਨਾਲ ਕਿਵੇਂ ਗੱਲ ਕਰਦਾ ਹੈ
- ਆਥੈਂਟੀਕੇਸ਼ਨ (authentication) ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ
- ਡਾਟਾ ਕਿਵੇਂ ਸਟੋਰ ਕਰਨਾ ਹੈ
- ਐਪ ਨੂੰ ਕਿਵੇਂ ਡਿਪਲੋਏ ਕਰਨਾ ਹੈ
ਇੱਥੇ ਮੇਰੇ ਮੁੱਖ ਸਬਕ ਹਨ:
ਸੰਪੂਰਨਤਾ (Perfection) ਤੁਹਾਨੂੰ ਹੌਲੀ ਕਰ ਦਿੰਦੀ ਹੈ ਇੱਕ ਸੰਪੂਰਨ ਆਰਕੀਟੈਕਚਰ ਜਾਂ UI ਦੀ ਉਡੀਕ ਨਾ ਕਰੋ। ਇੱਕ ਕੰਮ ਕਰਦੇ ਹੋਏ ਵਰਜ਼ਨ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ। ਇਸਨੂੰ ਕਦਮ-ਦਰ-ਕਦਮ ਸੁਧਾਰੋ। ਉਦਾਹਰਣ ਵਜੋਂ, ਪਹਿਲਾਂ ਪ੍ਰੋਡਕਟ ਮੋਡੀਊਲ ਨੂੰ ਕੰਮ ਕਰਵਾਓ। ਫਿਰ ਵੈਲੀਡੇਸ਼ਨ (validation) ਜੋੜੋ। ਫਿਰ ਇਨਵੈਂਟਰੀ (inventory) ਨੂੰ ਕਨੈਕਟ ਕਰੋ। ਛੋਟੀਆਂ ਜਿੱਤਾਂ ਇੱਕ ਮੁਕੰਮਲ ਪ੍ਰੋਡਕਟ ਵੱਲ ਲੈ ਜਾਂਦੀਆਂ ਹਨ।
ਜਿਵੇਂ-ਜਿਵੇਂ ਤੁਸੀਂ ਵਧਦੇ ਹੋ, ਸਟ੍ਰਕਚਰ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ ਇੱਕ ਛੋਟਾ ਬੈਕਐਂਡ ਸੰਭਾਲਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। ਇੱਕ ਵੱਡੇ ਬੈਕਐਂਡ ਲਈ ਸੰਗਠਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਮੈਂ ਸੰਗਠਿਤ ਰਹਿਣ ਲਈ ਇੱਕ ਲੇਅਰਡ ਸਟ੍ਰਕਚਰ (layered structure) ਦੀ ਵਰਤੋਂ ਕੀਤੀ:
- Controller: HTTP ਰਿਕੁਐਸਟਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ
- Service: ਬਿਜ਼ਨਸ ਲੌਜਿਕ (business logic) ਨੂੰ ਰੱਖਦਾ ਹੈ
- Repository: ਡਾਟਾਬੇਸ ਨਾਲ ਸੰਚਾਰ ਕਰਦਾ ਹੈ
ਆਥੈਂਟੀਕੇਸ਼ਨ (Authentication) ਗੁੰਝਲਦਾਰ ਹੈ ਆਥੈਂਟੀਕੇਸ਼ਨ ਸਿਰਫ਼ ਇੱਕ ਲੌਗਇਨ ਫਾਰਮ ਤੋਂ ਵੱਧ ਹੈ। ਇਸ ਵਿੱਚ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲਜ਼ (credentials) ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ, ਟੋਕਨ ਜਨਰੇਟ ਕਰਨਾ, ਰੂਟਸ (routes) ਦੀ ਰੱਖਿਆ ਕਰਨਾ ਅਤੇ ਯੂਜ਼ਰ ਐਕਸੈਸ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। JWT ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਮੈਨੂੰ ਇਹ ਦੇਖਣ ਵਿੱਚ ਮਦਦ ਮਿਲੀ ਕਿ ਸੁਰੱਖਿਆ ਕਿਵੇਂ ਫਰੰਟਐਂਡ ਨੂੰ ਬੈਕਐਂਡ ਨਾਲ ਜੋੜਦੀ ਹੈ।
UX ਉਪਯੋਗਤਾ (utility) ਬਾਰੇ ਹੈ ਫਰੰਟਐਂਡ ਸਿਰਫ਼ ਦਿੱਖ ਬਾਰੇ ਨਹੀਂ ਹੁੰਦਾ। ਯੂਜ਼ਰਾਂ ਨੂੰ ਉਤਪਾਦਾਂ ਨੂੰ ਲੱਭਣ, ਵਿਕਰੀ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਅਤੇ ਰਿਪੋਰਟਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਦੇਖਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਸੁੰਦਰ ਇੰਟਰਫੇਸ ਨਾਲੋਂ ਇੱਕ ਵਿਹਾਰਕ (practical) ਇੰਟਰਫੇਸ ਬਿਹਤਰ ਹੁੰਦਾ ਹੈ।
ਡਿਪਲੋਇਮੈਂਟ (Deployment) ਇੰਜੀਨੀਅਰਿੰਗ ਹੈ ਲੋਕਲ ਡਿਵੈਲਪਮੈਂਟ ਤੋਂ ਕਲਾਉਡ (cloud) 'ਤੇ ਜਾਣਾ ਨਵੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਸਾਹਮਣੇ ਲਿਆਉਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ CORS ਐਰਰ, ਐਨਵਾਇਰਨਮੈਂਟ ਵੇਰੀਏਬਲ (environment variable) ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ, ਅਤੇ DNS ਸੈੱਟਅੱਪ ਦੇ ਕੰਮਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਵੇਗਾ। ਡਿਪਲੋਇਮੈਂਟ ਕੋਈ ਆਖਰੀ ਕਦਮ ਨਹੀਂ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਦਾ ਇੱਕ ਮੁੱਖ ਹਿੱਸਾ ਹੈ।
ਗਲਤੀਆਂ ਸਬਕ ਹਨ ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਵੱਡੇ ਸਬਕ ਸਿਖਾਉਂਦੀਆਂ ਹਨ। ਇੱਕ ਗੁੰਮ ਹੋਇਆ ਐਨਵਾਇਰਨਮੈਂਟ ਵੇਰੀਏਬਲ ਜਾਂ ਗਲਤ ਪੋਰਟ ਸਭ ਕੁਝ ਵਿਗਾੜ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਬੱਗਸ (bugs) ਨੇ ਮੈਨੂੰ ਵਧੇਰੇ ਧਿਆਨ ਨਾਲ ਡੀਬੱਗ (debug) ਕਰਨਾ ਸਿਖਾਇਆ।
ਤੁਹਾਡੇ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਮੇਰੀ ਸਲਾਹ:
- ਕੁਝ ਅਸਲੀਅਤ ਦੇ ਨੇੜੇ ਬਣਾਓ
- ਛੋਟੇ ਪੱਧਰ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ
- ਇੱਕ ਕੰਮ ਕਰਦਾ ਹੋਇਆ ਵਰਜ਼ਨ ਪੂਰਾ ਕਰੋ
- ਇਸਨੂੰ ਥੋੜ੍ਹਾ-ਥੋੜ੍ਹਾ ਕਰਕੇ ਸੁਧਾਰੋ
- ਇਸਨੂੰ ਡਿਪਲੋਏ ਕਰੋ
- ਆਪਣੀ ਪ੍ਰਕਿਰਿਆ ਦਾ ਦਸਤਾਵੇਜ਼ ਬਣਾਓ
ਇੱਕ ਮੁਕੰਮਲ, ਡਿਪਲੋਏ ਕੀਤਾ ਹੋਇਆ ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਅਧੂਰੇ, ਸੰਪੂਰਨ ਵਿਚਾਰ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਸਿਖਾਉਂਦਾ ਹੈ।