A3 · Yêu cầu phi chức năng và thiết kế vừa đủ
Yêu cầu phi chức năng: số người dùng, lượng request, độ trễ chấp nhận được, mức sẵn sàng (99,9%?), bảo mật, yêu cầu pháp lý.
A3 · Middle
Xây nhà cho gia đình 4 người thì không cần móng của tòa nhà 40 tầng; nhưng cũng nên biết trước có định xây thêm tầng hay không.
Cốt lõi
- Yêu cầu phi chức năng: số người dùng, lượng request, độ trễ chấp nhận được, mức sẵn sàng (99,9%?), bảo mật, yêu cầu pháp lý.
- Ước lượng thô (back-of-the-envelope) để chọn giải pháp đúng cỡ.
- YAGNI: chỉ làm cái đang cần; thiết kế để dễ thay đổi thay vì đoán trước mọi thứ.
Đánh đổi
Thiết kế thiếu → phải làm lại; thiết kế thừa → tốn tiền hạ tầng, chậm ra mắt, khó bảo trì. Sản phẩm mới thường gặp vấn đề vì chậm hơn là vì không scale được.
Trong thực tế
Ứng dụng nội bộ cho 200 nhân viên: một Postgres và một app server là đủ, không cần Kafka hay microservices.
Bug thường gặp
Dựng Kubernetes, Kafka và 8 microservices cho sản phẩm chưa có người dùng → hóa đơn cloud lớn, mỗi tính năng mới phải sửa nhiều service.
Tự hỏi lại
Quyết định nào khó đảo ngược (cần nghĩ kỹ), quyết định nào dễ đổi sau?
A2 · Kiến thức domain và ngôn ngữ chung
Mỗi domain có quy tắc riêng: ngân hàng (sổ cái kép, đối soát, không xóa giao dịch mà ghi bút toán đảo), ERP/SAP (mua – bán – kho – kế…
A4 · Làm việc với AI khi thiết kế và viết code
AI làm tốt: sinh API theo chuẩn, code mẫu, test, giải thích lỗi, gợi ý phương án.