Trong dự án tôi tham gia trước đây, sau khi tôi đề xuất ứng dụng mô hình n-tiers thay thế cấu trúc cũ, cậu em đồng nghiệp đã hỏi tôi rằng "Dùng n-tiers thì mình được lợi gì anh?". Câu hỏi này thực sự làm tôi bối rối vì không biết nên trả lời thế nào cho thỏa đáng. Cậu em hỏi câu ấy không phải bởi cậu không biết n-tiers là gì hay n-tiers có tác dụng gì, mà có lẽ những gì chúng ta biết về n-tiers trước đây quá sáo rỗng. Tôi nghĩ mình nên thực hiện một điều gì đó trực quan để cố gắng làm sáng tỏ ý nghĩa của n-tiers hay bất cứ mô hình hay mẫu thiết kế nào.
Trên tinh thần của slogan "Show me your code", tôi viết một project nhỏ với hàm ý tua nhanh lại công việc của lập trình viên chúng ta, để chúng ta có thể nhìn lại và đánh giá công việc của bản thân. Các bạn có thể truy cập mã nguồn tại đây: Hành trình của thiết kế phần mềm GitHub
Cách đọc:
- Có một file README của solution giới thiệu về mục đích của dự án.
- Có 6 dự án con được đánh số tượng trưng cho các giai đoạn khi phát triển một yêu cầu:
- 01-runable
- 02-refactor-first-time
- 03-first-cr
- 04-refactor
- 05-refactor-again
- 06-cr-again
- Mỗi dự án con có file README trình bày ý tưởng cũng như đánh giá, kết luận.
- Các dự án con đều phát triển một API thực thi thuật toán sắp xếp nổi bọt. Thế nên các bạn sẽ không mất tập trung vào nghiệp vụ hay thuật toán. Chúng ta tập trung vào kĩ thuật lập trình và các động lực và nhu cầu của thiết kế phần mềm.
Tôi nghĩ về mặt kiến thức lập trình, phần mã nguồn này không có gì đặc biệt, nhưng nó là một thước phim tài liệu, hi vọng có thể có ích với các bạn.
Ban đầu tôi định tập hợp nội dung của các file README trong bài viết này, nhưng sau đó tôi nghĩ rằng nếu không đọc code thì các file README vẫn rất sáo rỗng. Nên tôi mong rằng các bạn bỏ thời gian để tham quan repo bên GitHub.
Rất mong nhận được phản hồi, góp ý từ mọi người!
Ngoài ra, các bạn có thể theo dõi phần thuyết minh ở đây: