Trong lớp, chúng tôi tìm hiểu về các phương pháp phát triển phần mềm khác nhau. Phương pháp chúng tôi tập trung và sử dụng để phát triển dự án của mình là phương pháp thác nước.
Có lẽ bạn đã học mô hình Thác nước cổ điển, mà người được cho là đã giới thiệu nó với thế giới phát triển phần mềm được nêu từ đầu là không phù hợp để phát triển các hệ thống phần mềm quy mô lớn. Có lẽ bạn sẽ thích đọc bài báo của Winston Royce có tiêu đề Quản lý sự phát triển của các hệ thống phần mềm lớn để tìm hiểu thêm về các vấn đề với những gì nhiều người coi là mô hình Thác nước.
Tuy nhiên, mô hình Waterfall phù hợp để dạy vòng đời phát triển phần mềm khi bạn trải qua và có thể dành thời gian tìm hiểu và thực hiện các yêu cầu kỹ thuật, thiết kế kiến trúc, thiết kế chi tiết, thực hiện, thử nghiệm và bảo trì theo các giai đoạn rất rõ ràng, khác biệt.
Trong sơ đồ lớp của chúng tôi, chúng tôi đã phải liệt kê TẤT CẢ các thuộc tính và phương thức bao gồm cả các thuộc tính riêng. Tôi đã đọc một vài cuốn sách, cụ thể là Clean Code, nói rằng giữ cho các chức năng càng ngắn và tập trung càng tốt. Có vẻ tẻ nhạt khi liệt kê mọi chức năng nhỏ trong sơ đồ của chúng tôi nếu chúng không giúp các nhà phát triển khác (chúng là riêng tư, không ai khác sẽ sử dụng chúng). Thêm vào đó, tôi có thể không nghĩ về mọi chức năng nhỏ bé khi thiết kế chương trình, chúng có thể xuất hiện khi tái cấu trúc.
Đây là tất cả các điểm rất hợp lệ.
Liệt kê tất cả các thuộc tính và phương thức trong giai đoạn thiết kế, ngay cả khi sử dụng Waterfall, có thể là quá mức cần thiết. Bạn chắc chắn nên liệt kê mọi thứ công khai, cùng với các thuộc tính cần thiết. Trong thực tế, mọi thứ khác là một chi tiết triển khai mà bạn có thể có được bằng cách đảo ngược việc thực hiện thành sơ đồ.
Lời khuyên của Clean Code (Tôi chưa bao giờ đọc nó - Tôi chỉ thực hiện theo những gì bạn đã đăng) có vẻ công bằng và có thể áp dụng ngay cả khi sử dụng phương pháp Waterfall. Bạn có thể thiết kế các lớp và phương thức của mình theo Nguyên tắc Trách nhiệm duy nhất , phân tách các mối quan tâm và các nguyên tắc khác của RẮN . Thác nước không cho bạn biết cách thiết kế, ngay khi bạn cần làm. Điều đó nói rằng, khó hơn trước khi bạn tìm hiểu và nghĩ ra những cách tốt hơn để làm điều đó trong quá trình thực hiện.
Tôi nghĩ rằng điều này chỉ ra thực tế rằng cần phải có sự lặp lại giữa thiết kế và triển khai rất rõ ràng - một vấn đề mà Waterfall truyền thống không giải quyết được.