𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀 𝘀𝗲 𝗖𝗼𝗱𝗲 𝘁𝗮𝗸)

Low Level Design का अर्थ तुरंत कोड लिखना नहीं है। यह एक व्यवस्थित प्रक्रिया (structured process) का पालन करने के बारे में है।

किसी समस्या (problem statement) से वर्किंग कोड तक पहुँचने के लिए इन चरणों का पालन करें।

  1. Requirements को समझें सीधे classes पर न कूदें। सबसे पहले, यह पता लगाएं कि सिस्टम को क्या करना चाहिए।
  • इसमें किन फीचर्स की आवश्यकता है?
  • इसे किन कार्यों (actions) का समर्थन करना चाहिए?
  • बाद में क्या बदलाव हो सकते हैं?
  1. Classes खोजने के लिए Nouns की पहचान करें अपनी requirements में Nouns (संज्ञा) खोजें। Nouns ही आपकी classes बन जाते हैं। उदाहरण: एक Document Editor
  • Nouns: Document, Text, Image, Storage, Editor.
  • Classes: Document, TextElement, ImageElement, Storage, DocumentEditor.

उदाहरण: एक Parking Lot

  • Nouns: ParkingLot, Floor, Slot, Vehicle, Ticket.
  • Classes: ParkingLot, Floor, Slot, Vehicle, Ticket.
  1. Inheritance के लिए IS-A का उपयोग करें खुद से पूछें: "क्या child, parent का ही एक प्रकार है?"
  • TextElement, DocumentElement का एक प्रकार है (IS-A)।
  • Car, Vehicle का एक प्रकार है (IS-A)।
  • Dog, Animal का एक प्रकार है (IS-A)। यदि उत्तर 'हाँ' है, तो inheritance का उपयोग करें।
  1. Composition के लिए HAS-A का उपयोग करें खुद से पूछें: "क्या एक object में दूसरा object शामिल है?"
  • एक Document में elements का एक collection होता है (HAS-A)।
  • एक ParkingLot में floors का एक सेट होता है (HAS-A)।
  • एक Car में एक engine होता है (HAS-A)। इन objects को जोड़ने के लिए composition का उपयोग करें।
  1. Methods खोजने के लिए Verbs की पहचान करें Requirements में कार्यों (actions) को देखें। Verbs ही आपके methods बन जाते हैं।
  • Add text बदलकर addText() बन जाता है।
  • Save document बदलकर save() बन जाता है।
  • Park vehicle बदलकर parkVehicle() बन जाता है।
  1. Interfaces के साथ बदलाव के लिए योजना बनाएं भविष्य के अपडेट्स के बारे में सोचें। यदि आप एक document को save करते हैं, तो आप File, Database, या Cloud का उपयोग कर सकते हैं।
  • Persistence नाम का एक interface बनाएं।
  • FileStorage या DBStorage जैसे implementations बनाएं। इससे आप अपने मौजूदा कोड को बदले बिना बाद में CloudStorage जोड़ सकते हैं।
  1. UML बनाएं और Code लिखें एक बार जब आपके पास classes, inheritance, composition और methods आ जाएं, तो एक UML diagram बनाएं। यह आपके ब्लूप्रिंट (blueprint) के रूप में कार्य करता है। अंत में, उस ब्लूप्रिंट को clean code में बदल दें।

Summary Flow:

  • Requirements
  • Nouns से Classes
  • IS-A से Inheritance
  • HAS-A से Composition
  • Verbs से Methods
  • Variations से Interfaces
  • UML Diagram
  • Final Code

Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m