𝗟𝗟𝗗 डिझाइन प्रक्रिया (आवश्यकतेपासून कोडपर्यंत)
Low Level Design म्हणजे लगेच कोड लिहिणे नव्हे. ती एक पद्धतशीर प्रक्रिया पाळण्याबद्दल आहे.
समस्या विधानाकडून (problem statement) कार्यान्वित कोडपर्यंत पोहोचण्यासाठी या पायऱ्या फॉलो करा.
१. आवश्यकता समजून घ्या (Understand the Requirements) थेट क्लासेसकडे (classes) वळू नका. प्रथम, सिस्टमने काय करणे आवश्यक आहे ते शोधा.
- त्याला कोणत्या वैशिष्ट्यांची (features) गरज आहे?
- त्याने कोणत्या कृतींना (actions) सपोर्ट करणे आवश्यक आहे?
- नंतर कोणते बदल होऊ शकतात?
२. क्लासेस शोधण्यासाठी नामे (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.
३. Inheritance साठी IS-A वापरा स्वतःला विचारा: "चाइल्ड (child) हे पेरेंटचे (parent) एक प्रकार आहे का?"
- TextElement हे DocumentElement चा एक प्रकार आहे (IS-A).
- Car हे Vehicle चा एक प्रकार आहे (IS-A).
- Dog हे Animal चा एक प्रकार आहे (IS-A). जर उत्तर 'हो' असेल, तर inheritance वापरा.
४. Composition साठी HAS-A वापरा स्वतःला विचारा: "एका ऑब्जेक्टमध्ये दुसरा ऑब्जेक्ट समाविष्ट आहे का?"
- एका Document मध्ये elements चा संग्रह असतो (HAS-A).
- एका ParkingLot मध्ये floors चा संच असतो (HAS-A).
- एका Car मध्ये engine असते (HAS-A). या ऑब्जेक्ट्सना जोडण्यासाठी composition वापरा.
५. मेथड्स (Methods) शोधण्यासाठी क्रियापदे (Verbs) ओळखा आवश्यकतांमधील कृती शोधा. क्रियापदे तुमच्या मेथड्स बनतात.
- Add text चे रूपांतर addText() मध्ये होते.
- Save document चे रूपांतर save() मध्ये होते.
- Park vehicle चे रूपांतर parkVehicle() मध्ये होते.
६. Interfaces वापरून बदलांचे नियोजन करा भविष्यातील अपडेट्सचा विचार करा. जर तुम्ही डॉक्युमेंट सेव्ह करत असाल, तर तुम्ही File, Database किंवा Cloud वापरू शकता.
- Persistence नावाचा एक interface तयार करा.
- FileStorage किंवा DBStorage सारखी implementations तयार करा. यामुळे तुमचा सध्याचा कोड न बदलता तुम्ही नंतर CloudStorage जोडू शकता.
७. UML काढा आणि कोड लिहा एकदा तुमच्याकडे क्लासेस, inheritance, composition आणि मेथड्स तयार झाल्या की, एक UML डायग्राम काढा. हे तुमच्या ब्लूप्रिंटप्रमाणे (blueprint) काम करते. शेवटी, त्या ब्लूप्रिंटचे स्वच्छ (clean) कोडमध्ये रूपांतर करा.
सारांश प्रवाह (Summary Flow):
- आवश्यकता (Requirements)
- नामे ते क्लासेस (Nouns to Classes)
- IS-A ते Inheritance
- HAS-A ते Composition
- क्रियापदे ते मेथड्स (Verbs to Methods)
- बदल ते Interfaces (Variations to Interfaces)
- UML डायग्राम
- अंतिम कोड (Final Code)
Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m