𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (𝗙𝗿𝗼𝗺 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀 𝘁𝗼 𝗖𝗼𝗱𝗲)
Thiết kế cấp thấp (Low Level Design) không phải là việc viết mã ngay lập tức. Đó là việc tuân theo một quy trình có cấu trúc.
Hãy làm theo các bước sau để đi từ một bài toán đến mã nguồn hoạt động được.
- Hiểu các Yêu cầu Đừng vội vàng nhảy ngay vào các class. Trước tiên, hãy tìm hiểu xem hệ thống phải làm gì.
- Nó cần những tính năng gì?
- Nó phải hỗ trợ những hành động nào?
- Những thay đổi nào có thể xảy ra sau này?
- Xác định Danh từ để tìm Class Hãy tìm các danh từ trong yêu cầu của bạn. Các danh từ sẽ trở thành các class. Ví dụ: Một Trình chỉnh sửa tài liệu (Document Editor)
- Danh từ: Document, Text, Image, Storage, Editor.
- Class: Document, TextElement, ImageElement, Storage, DocumentEditor.
Ví dụ: Một Bãi đậu xe (Parking Lot)
- Danh từ: ParkingLot, Floor, Slot, Vehicle, Ticket.
- Class: ParkingLot, Floor, Slot, Vehicle, Ticket.
- Sử dụng IS-A cho Kế thừa (Inheritance) Hãy tự hỏi: "Đối tượng con có phải là một loại của đối tượng cha không?"
- TextElement IS-A DocumentElement.
- Car IS-A Vehicle.
- Dog IS-A Animal. Nếu câu trả lời là có, hãy sử dụng kế thừa.
- Sử dụng HAS-A cho Composition Hãy tự hỏi: "Một đối tượng có chứa một đối tượng khác không?"
- Một Document HAS-A một tập hợp các phần tử.
- Một ParkingLot HAS-A một tập hợp các tầng.
- Một Car HAS-A một động cơ. Sử dụng composition để liên kết các đối tượng này.
- Xác định Động từ để tìm Method Hãy tìm các hành động trong yêu cầu. Các động từ sẽ trở thành các method của bạn.
- Add text trở thành
addText(). - Save document trở thành
save(). - Park vehicle trở thành
parkVehicle().
- Lập kế hoạch cho sự thay đổi với Interface Hãy nghĩ về các cập nhật trong tương lai. Nếu bạn lưu một tài liệu, bạn có thể sử dụng File, Database hoặc Cloud.
- Tạo một interface tên là Persistence.
- Tạo các implementation như FileStorage hoặc DBStorage. Điều này cho phép bạn thêm CloudStorage sau này mà không cần thay đổi mã nguồn hiện có.
- Vẽ UML và Viết mã Khi bạn đã có các class, kế thừa, composition và các method, hãy vẽ một sơ đồ UML. Sơ đồ này đóng vai trò như bản thiết kế của bạn. Cuối cùng, hãy chuyển đổi bản thiết kế đó thành mã nguồn sạch (clean code).
Luồng tóm tắt:
- Yêu cầu (Requirements)
- Danh từ thành Class
- IS-A thành Kế thừa (Inheritance)
- HAS-A thành Composition
- Động từ thành Method
- Các biến thể thành Interface
- Sơ đồ UML
- Mã nguồn cuối cùng
Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m