LLD డిజైన్ ప్రక్రియ (అవసరాల నుండి కోడ్ వరకు)

Low Level Design అంటే వెంటనే కోడ్ రాయడం కాదు. ఇది ఒక క్రమబద్ధమైన ప్రక్రియను అనుసరించడం గురించి.

ఒక సమస్య నుండి పని చేసే కోడ్‌కు చేరుకోవడానికి ఈ క్రింది దశలను అనుసరించండి.

  1. అవసరాలను అర్థం చేసుకోవడం (Understand the Requirements) నేరుగా క్లాసుల (classes) దగ్గరకు వెళ్ళకండి. మొదట, సిస్టమ్ ఏమి చేయాలి అనేది తెలుసుకోండి.
  • దానికి ఏ ఫీచర్లు అవసరం?
  • అది ఏ చర్యలను (actions) సపోర్ట్ చేయాలి?
  • తర్వాత ఎలాంటి మార్పులు వచ్చే అవకాశం ఉంది?
  1. క్లాసులను కనుగొనడానికి నామవాచకాలను (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.
  1. Inheritance కోసం IS-A ని ఉపయోగించండి మిమ్మల్ని మీరు ఇలా ప్రశ్నించుకోండి: "చైల్డ్ (child), పేరెంట్ (parent) లో ఒక రకమా?"
  • TextElement అనేది ఒక DocumentElement రకం (IS-A).
  • Car అనేది ఒక Vehicle రకం (IS-A).
  • Dog అనేది ఒక Animal రకం (IS-A). సమాధానం 'అవును' అయితే, inheritance ఉపయోగించండి.
  1. Composition కోసం HAS-A ని ఉపయోగించండి మిమ్మల్ని మీరు ఇలా ప్రశ్నించుకోండి: "ఒక ఆబ్జెక్ట్ లో మరొక ఆబ్జెక్ట్ ఉందా?"
  • ఒక Document లో ఎలిమెంట్స్ యొక్క కలెక్షన్ ఉంటుంది (HAS-A).
  • ఒక ParkingLot లో ఫ్లోర్స్ (floors) ఉంటాయి (HAS-A).
  • ఒక Car లో ఇంజిన్ ఉంటుంది (HAS-A). ఈ ఆబ్జెక్ట్‌లను అనుసంధానించడానికి composition ఉపయోగించండి.
  1. మెథడ్స్ (Methods) కనుగొనడానికి క్రియలను (Verbs) గుర్తించండి అవసరాలలో చర్యలను (actions) వెతకండి. ఆ క్రియలే మీ మెథడ్స్ అవుతాయి.
  • Add text అనేది addText() అవుతుంది.
  • Save document అనేది save() అవుతుంది.
  • Park vehicle అనేది parkVehicle() అవుతుంది.
  1. Interfaces తో మార్పుల కోసం ప్లాన్ చేయండి భవిష్యత్తు అప్‌డేట్‌ల గురించి ఆలోచించండి. మీరు ఒక డాక్యుమెంట్‌ను సేవ్ చేస్తున్నట్లయితే, మీరు File, Database లేదా Cloud ఉపయోగించవచ్చు.
  • Persistence అనే పేరుతో ఒక interface ని సృష్టించండి.
  • FileStorage లేదా DBStorage వంటి implementations ని సృష్టించండి. దీనివల్ల మీ ప్రస్తుత కోడ్‌ను మార్చకుండానే తర్వాత CloudStorage ని జోడించడానికి వీలవుతుంది.
  1. UML గీయండి మరియు కోడ్ రాయండి మీకు క్లాసులు, inheritance, composition మరియు మెథడ్స్ సిద్ధమైన తర్వాత, ఒక UML డయాగ్రామ్‌ను గీయండి. ఇది మీ బ్లూప్రింట్ (blueprint) లాగా పనిచేస్తుంది. చివరగా, ఆ బ్లూప్రింట్‌ను క్లీన్ కోడ్‌గా మార్చండి.

Summary Flow:

  • అవసరాలు (Requirements)
  • నామవాచకాలు నుండి క్లాసులు (Nouns to Classes)
  • IS-A నుండి Inheritance
  • HAS-A నుండి Composition
  • క్రియలు నుండి మెథడ్స్ (Verbs to Methods)
  • వైవిధ్యాలు నుండి Interfaces (Variations to Interfaces)
  • UML డయాగ్రామ్
  • ఫైనల్ కోడ్

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