𝗟𝗟𝗗 ਡਿਜ਼ਾਈਨ ਪ੍ਰਕਿਰਿਆ (ਲੋੜਾਂ ਤੋਂ ਕੋਡ ਤੱਕ)
Low Level Design ਦਾ ਮਤਲਬ ਤੁਰੰਤ ਕੋਡ ਲਿਖਣਾ ਨਹੀਂ ਹੈ। ਇਹ ਇੱਕ ਸੰਰਚਿਤ ਪ੍ਰਕਿਰਿਆ (structured process) ਦੀ ਪਾਲਣਾ ਕਰਨ ਬਾਰੇ ਹੈ।
ਕਿਸੇ ਸਮੱਸਿਆ ਦੇ ਕਥਨ (problem statement) ਤੋਂ ਕੰਮ ਕਰਦੇ ਕੋਡ ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ।
1. ਲੋੜਾਂ (Requirements) ਨੂੰ ਸਮਝੋ ਸਿੱਧਾ ਕਲਾਸਾਂ (classes) 'ਤੇ ਨਾ ਜਾਓ। ਪਹਿਲਾਂ, ਇਹ ਪਤਾ ਲਗਾਓ ਕਿ ਸਿਸਟਮ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
- ਇਸਨੂੰ ਕਿਹੜੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (features) ਦੀ ਲੋੜ ਹੈ?
- ਇਸਨੂੰ ਕਿਹੜੀਆਂ ਕਾਰਵਾਈਆਂ (actions) ਦਾ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ?
- ਬਾਅਦ ਵਿੱਚ ਕੀ ਤਬਦੀਲੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ?
2. ਕਲਾਸਾਂ ਲੱਭਣ ਲਈ ਨਾਂਵ (Nouns) ਦੀ ਪਛਾਣ ਕਰੋ ਆਪਣੀਆਂ ਲੋੜਾਂ ਵਿੱਚ ਨਾਂਵ ਲੱਭੋ। ਨਾਂਵ ਤੁਹਾਡੀਆਂ ਕਲਾਸਾਂ ਬਣ ਜਾਂਦੇ ਹਨ। ਉਦਾਹਰਨ: ਇੱਕ Document Editor
- ਨਾਂਵ: Document, Text, Image, Storage, Editor.
- ਕਲਾਸਾਂ: Document, TextElement, ImageElement, Storage, DocumentEditor.
ਉਦਾਹਰਨ: ਇੱਕ Parking Lot
- ਨਾਂਵ: ParkingLot, Floor, Slot, Vehicle, Ticket.
- ਕਲਾਸਾਂ: ParkingLot, Floor, Slot, Vehicle, Ticket.
3. Inheritance ਲਈ IS-A ਦੀ ਵਰਤੋਂ ਕਰੋ ਆਪਣੇ ਆਪ ਨੂੰ ਪੁੱਛੋ: "ਕੀ ਬੱਚਾ (child) ਮਾਪੇ (parent) ਦੀ ਕਿਸੇ ਕਿਸਮ ਦਾ ਹੈ?"
- TextElement IS-A DocumentElement.
- Car IS-A Vehicle.
- Dog IS-A Animal. ਜੇਕਰ ਜਵਾਬ 'ਹਾਂ' ਹੈ, ਤਾਂ inheritance ਦੀ ਵਰਤੋਂ ਕਰੋ।
4. Composition ਲਈ HAS-A ਦੀ ਵਰਤੋਂ ਕਰੋ ਆਪਣੇ ਆਪ ਨੂੰ ਪੁੱਛੋ: "ਕੀ ਇੱਕ ਆਬਜੈਕਟ ਵਿੱਚ ਦੂਜਾ ਆਬਜੈਕਟ ਸ਼ਾਮਲ ਹੈ?"
- ਇੱਕ Document ਵਿੱਚ elements ਦਾ ਇੱਕ ਸੰਗ੍ਰਹਿ (collection) ਹੁੰਦਾ ਹੈ (HAS-A)।
- ਇੱਕ ParkingLot ਵਿੱਚ floors ਦਾ ਇੱਕ ਸਮੂਹ (set) ਹੁੰਦਾ ਹੈ (HAS-A)।
- ਇੱਕ Car ਵਿੱਚ ਇੱਕ engine ਹੁੰਦਾ ਹੈ (HAS-A)। ਇਹਨਾਂ ਆਬਜੈਕਟਾਂ ਨੂੰ ਜੋੜਨ ਲਈ composition ਦੀ ਵਰਤੋਂ ਕਰੋ।
5. ਮੈਥਡਸ (Methods) ਲੱਭਣ ਲਈ ਕਿਰਿਆਵਾਂ (Verbs) ਦੀ ਪਛਾਣ ਕਰੋ ਲੋੜਾਂ ਵਿੱਚ ਕਾਰਵਾਈਆਂ ਲੱਭੋ। ਕਿਰਿਆਵਾਂ ਤੁਹਾਡੇ ਮੈਥਡਸ ਬਣ ਜਾਂਦੀਆਂ ਹਨ।
- Add text ਬਣ ਜਾਂਦਾ ਹੈ
addText(). - Save document ਬਣ ਜਾਂਦਾ ਹੈ
save(). - Park vehicle ਬਣ ਜਾਂਦਾ ਹੈ
parkVehicle().
6. Interfaces ਨਾਲ ਤਬਦੀਲੀ ਲਈ ਯੋਜਨਾ ਬਣਾਓ ਭਵਿੱਖ ਦੇ ਅਪਡੇਟਾਂ ਬਾਰੇ ਸੋਚੋ। ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਦਸਤਾਵੇਜ਼ (document) ਸੇਵ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ File, Database, ਜਾਂ Cloud ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।
- Persistence ਨਾਮ ਦਾ ਇੱਕ interface ਬਣਾਓ।
- FileStorage ਜਾਂ DBStorage ਵਰਗੇ implementations ਬਣਾਓ। ਇਹ ਤੁਹਾਨੂੰ ਆਪਣੇ ਮੌਜੂਦਾ ਕੋਡ ਨੂੰ ਬਦਲੇ ਬਿਨਾਂ ਬਾਅਦ ਵਿੱਚ CloudStorage ਜੋੜਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
7. UML ਬਣਾਓ ਅਤੇ ਕੋਡ ਲਿਖੋ ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਕਲਾਸਾਂ, inheritance, composition, ਅਤੇ ਮੈਥਡਸ ਹੋ ਜਾਣ, ਤਾਂ ਇੱਕ UML ਡਾਇਗ੍ਰਾਮ ਬਣਾਓ। ਇਹ ਤੁਹਾਡੇ ਬਲੂਪ੍ਰਿੰਟ (blueprint) ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਉਸ ਬਲੂਪ੍ਰਿੰਟ ਨੂੰ ਸਾਫ਼ ਕੋਡ (clean code) ਵਿੱਚ ਬਦਲ ਦਿਓ।
ਸਾਰ (Summary Flow):
- ਲੋੜਾਂ (Requirements)
- ਨਾਂਵ ਤੋਂ ਕਲਾਸਾਂ (Nouns to Classes)
- IS-A ਤੋਂ Inheritance
- HAS-A ਤੋਂ Composition
- ਕਿਰਿਆਵਾਂ ਤੋਂ ਮੈਥਡਸ (Verbs to Methods)
- ਵੇਰੀਏਸ਼ਨਾਂ ਤੋਂ Interfaces (Variations to Interfaces)
- UML ਡਾਇਗ੍ਰਾਮ (UML Diagram)
- ਅੰਤਿਮ ਕੋਡ (Final Code)
Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m