𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (𝗙𝗿𝗼𝗺 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀 𝘁𝗼 𝗖𝗼𝗱𝗲)
Low Level Design એટલે તરત જ કોડ લખવો એ નથી. તે એક વ્યવસ્થિત પ્રક્રિયાને અનુસરવા વિશે છે.
સમસ્યાના નિવેદન (problem statement) થી કાર્યરત કોડ સુધી પહોંચવા માટે આ પગલાં અનુસરો.
- જરૂરિયાતોને સમજો (Understand the Requirements) સીધા ક્લાસ (classes) પર ન કૂદો. પહેલા, સિસ્ટમે શું કરવું જોઈએ તે શોધો.
- તેને કયા ફીચર્સની જરૂર છે?
- તેણે કઈ ક્રિયાઓનું સમર્થન કરવું જોઈએ?
- પાછળથી કેવા ફેરફારો થઈ શકે છે?
- ક્લાસ શોધવા માટે સંજ્ઞાઓ (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.
- Inheritance માટે IS-A નો ઉપયોગ કરો તમારી જાતને પૂછો: "શું ચાઇલ્ડ (child) પેરેન્ટ (parent) નો એક પ્રકાર છે?"
- TextElement એ DocumentElement નો એક પ્રકાર છે (IS-A).
- Car એ Vehicle નો એક પ્રકાર છે (IS-A).
- Dog એ Animal નો એક પ્રકાર છે (IS-A). જો જવાબ હા હોય, તો inheritance નો ઉપયોગ કરો.
- Composition માટે HAS-A નો ઉપયોગ કરો તમારી જાતને પૂછો: "શું એક ઓબ્જેક્ટમાં બીજો ઓબ્જેક્ટ સમાવિષ્ટ છે?"
- એક Document માં elements નો સંગ્રહ (collection) હોય છે (HAS-A).
- એક ParkingLot માં floors નો સમૂહ હોય છે (HAS-A).
- એક Car માં engine હોય છે (HAS-A). આ ઓબ્જેક્ટ્સને જોડવા માટે composition નો ઉપયોગ કરો.
- મેથડ્સ શોધવા માટે ક્રિયાપદો (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) તરીકે કામ કરશે. અંતે, તે બ્લુપ્રિન્ટને ક્લીન કોડમાં રૂપાંતરિત કરો.
સારાંશ પ્રવાહ (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