Ok tôi đã gặp phải điều này nhiều lần, nhưng đây là trường hợp xấu hơn là hơi phóng đại.
Một khách hàng nói rằng "hey bạn có thể làm cho chúng tôi mô-đun nhỏ này để thực hiện nhiệm vụ nhỏ này không"?
Tôi: "Chắc chắn không có vấn đề".
Vì vậy, dựa trên ngân sách và các ràng buộc, v.v., tôi bỏ qua một số kiến trúc và lặn ngay vào và làm cho nó không có mồ hôi.
Sau đó, họ yêu cầu một mô-đun khác. Và một cái khác. Và một số cải tiến. Và tất cả điều này xảy ra rất chậm tâm trí bạn, trong nhiều năm. Và trước khi bạn biết điều đó, bạn có ứng dụng quái vật này được kiến trúc khủng khiếp.
Bạn làm gì khi bạn được yêu cầu làm một cái gì đó nhỏ? Bạn không biết liệu nó có tiếp tục phát triển không ... nếu khách hàng sẽ tiếp tục yêu cầu bổ sung (và họ cũng không).
Bạn không thể kiến trúc sư quá mức, bởi vì cuối cùng nó chỉ là một ứng dụng nhỏ và họ sẽ đi đến một nơi khác nếu bạn nói (trong đó tôi biết tất cả giọng nói) "Trong trường hợp, hãy để kiến trúc sư này thành lớp trên cùng - thực tế, chúng ta hãy sử dụng một công cụ tiêm phụ thuộc thực sự sẽ làm cho điều này trở nên tuyệt vời blah blah blah ".
Họ sẽ nói "đúng rồi" và đi đến một người khác.
Ngân sách, thời gian và nhận thức cũng quan trọng như kiến trúc ứng dụng.
Làm thế nào điều này nên được tiếp cận?
Tôi đoán câu hỏi thực sự sôi nổi "Khi bạn không có tất cả thông tin cho kết quả cuối cùng của một ứng dụng nhỏ, làm thế nào để bạn tránh (hoặc giảm thiểu) việc đưa ra quyết định thiết kế và kiến trúc sớm sẽ hoàn toàn không phù hợp sau này?