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

Low Level Design એટલે તરત જ કોડ લખવો એ નથી. તે એક વ્યવસ્થિત પ્રક્રિયાને અનુસરવા વિશે છે.

સમસ્યાના નિવેદન (problem statement) થી કાર્યરત કોડ સુધી પહોંચવા માટે આ પગલાં અનુસરો.

  1. જરૂરિયાતોને સમજો (Understand the Requirements) સીધા ક્લાસ (classes) પર ન કૂદો. પહેલા, સિસ્ટમે શું કરવું જોઈએ તે શોધો.
  • તેને કયા ફીચર્સની જરૂર છે?
  • તેણે કઈ ક્રિયાઓનું સમર્થન કરવું જોઈએ?
  • પાછળથી કેવા ફેરફારો થઈ શકે છે?
  1. ક્લાસ શોધવા માટે સંજ્ઞાઓ (Nouns) ઓળખો તમારી જરૂરિયાતોમાં સંજ્ઞાઓ શોધો. સંજ્ઞાઓ તમારા ક્લાસ બનશે. ઉદાહરણ: એક ડોક્યુમેન્ટ એડિટર (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 નો ઉપયોગ કરો તમારી જાતને પૂછો: "શું એક ઓબ્જેક્ટમાં બીજો ઓબ્જેક્ટ સમાવિષ્ટ છે?"
  • એક Document માં elements નો સંગ્રહ (collection) હોય છે (HAS-A).
  • એક ParkingLot માં floors નો સમૂહ હોય છે (HAS-A).
  • એક Car માં engine હોય છે (HAS-A). આ ઓબ્જેક્ટ્સને જોડવા માટે composition નો ઉપયોગ કરો.
  1. મેથડ્સ શોધવા માટે ક્રિયાપદો (Verbs) ઓળખો જરૂરિયાતોમાં ક્રિયાઓ શોધો. ક્રિયાપદો તમારી મેથડ્સ બનશે.
  • 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 ડાયાગ્રામ
  • અંતિમ કોડ (Final Code)

સ્ત્રોત: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m