𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (தேவைகளிலிருந்து குறியீடு வரை)
Low Level Design என்பது உடனடியாக குறியீடு (code) எழுதுவது பற்றியது அல்ல. இது ஒரு கட்டமைக்கப்பட்ட செயல்முறையைப் பின்பற்றுவது பற்றியது.
ஒரு சிக்கல் அறிக்கையிலிருந்து (problem statement) இயங்கும் குறியீடு வரை செல்ல இந்த படிகளைப் பின்பற்றவும்.
- தேவைகளைப் புரிந்துகொள்ளுதல் (Understand the Requirements) நேரடியாக வகுப்புகளுக்கு (classes) செல்ல வேண்டாம். முதலில், அமைப்பு என்ன செய்ய வேண்டும் என்பதைக் கண்டறியவும்.
- அதற்கு என்ன அம்சங்கள் (features) தேவை?
- அது எந்தச் செயல்பாடுகளை (actions) ஆதரிக்க வேண்டும்?
- பின்னர் என்ன மாற்றங்கள் ஏற்படலாம்?
- வகுப்புகளைக் கண்டறிய பெயர்ச்சொற்களை (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.
- மரபுரிமைக்காக (Inheritance) IS-A என்பதைப் பயன்படுத்துதல் உங்களிடமே கேட்டுக்கொள்ளுங்கள்: "பிள்ளை (child) என்பது பெற்றோர் (parent) வகையைச் சேர்ந்ததா?"
- TextElement IS-A DocumentElement.
- Car IS-A Vehicle.
- Dog IS-A Animal. பதில் 'ஆம்' என்றால், மரபுரிமையைப் (inheritance) பயன்படுத்தவும்.
- தொகுப்பிற்காக (Composition) HAS-A என்பதைப் பயன்படுத்துதல் உங்களிடமே கேட்டுக்கொள்ளுங்கள்: "ஒரு பொருள் மற்றொன்றைக் கொண்டுள்ளதா?"
- ஒரு Document பல கூறுகளின் தொகுப்பைக் (collection of elements) கொண்டுள்ளது.
- ஒரு ParkingLot பல தளங்களைக் (set of floors) கொண்டுள்ளது.
- ஒரு Car ஒரு இயந்திரத்தைக் (engine) கொண்டுள்ளது. இந்தப் பொருட்களை இணைக்க தொகுப்பைப் (composition) பயன்படுத்தவும்.
- முறைகளைக் (Methods) கண்டறிய வினைச்சொற்களை (Verbs) அடையாளம் காணுதல் தேவைகளில் உள்ள செயல்களைத் தேடுங்கள். வினைச்சொற்கள் உங்கள் முறைகளாக (methods) மாறும்.
- Add text என்பது addText() ஆக மாறும்.
- Save document என்பது save() ஆக மாறும்.
- Park vehicle என்பது parkVehicle() ஆக மாறும்.
- இடைமுகங்கள் (Interfaces) மூலம் மாற்றத்திற்குத் திட்டமிடுதல் எதிர்கால மேம்பாடுகளைப் பற்றிச் சிந்தியுங்கள். நீங்கள் ஒரு ஆவணத்தைச் சேமித்தால், நீங்கள் ஒரு File, Database அல்லது Cloud ஆகியவற்றைப் பயன்படுத்தலாம்.
- Persistence என்று ஒரு இடைமுகத்தை (interface) உருவாக்கவும்.
- FileStorage அல்லது DBStorage போன்ற செயலாக்கங்களை (implementations) உருவாக்கவும். இது உங்கள் தற்போதைய குறியீட்டை மாற்றாமல், பின்னர் CloudStorage-ஐச் சேர்க்க அனுமதிக்கிறது.
- UML வரைந்து குறியீடு எழுதுதல் உங்களிடம் வகுப்புகள், மரபுரிமை, தொகுப்பு மற்றும் முறைகள் இருக்கும்போது, ஒரு UML வரைபடத்தை வரையவும். இது உங்கள் வரைபடமாக (blueprint) செயல்படும். இறுதியாக, அந்த வரைபடத்தை சுத்தமான குறியீடாக (clean code) மாற்றவும்.
சுருக்கமான ஓட்டம் (Summary Flow):
- தேவைகள் (Requirements)
- பெயர்ச்சொற்கள் முதல் வகுப்புகள் வரை (Nouns to Classes)
- IS-A முதல் மரபுரிமை வரை (IS-A to Inheritance)
- HAS-A முதல் தொகுப்பு வரை (HAS-A to Composition)
- வினைச்சொற்கள் முதல் முறைகள் வரை (Verbs to Methods)
- மாறுபாடுகள் முதல் இடைமுகங்கள் வரை (Variations to Interfaces)
- UML வரைபடம் (UML Diagram)
- இறுதி குறியீடு (Final Code)
மூலம்: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m