Hành Trình Khám Phá Thiết Kế Phần Mềm: Lợi Ích của Mô Hình N-Tiers
Trong các dự án phát triển phần mềm, chúng ta thường đối mặt với những câu hỏi khó về thiết kế và cấu trúc mã nguồn. Một lần, trong một dự án mà tôi tham gia, khi tôi đề xuất áp dụng mô hình n-tiers để thay thế cấu trúc cũ, một đồng nghiệp trẻ tuổi đã hỏi tôi: "Dùng n-tiers thì mình được lợi gì anh?" Câu hỏi này đã khiến tôi phải suy nghĩ sâu sắc, vì tôi không chắc chắn về cách trả lời thuyết phục.
Điều khiến đồng nghiệp tôi đặt câu hỏi ấy không phải là do anh không hiểu n-tiers, mà là vì những lý thuyết mà chúng ta biết thường khá sáo rỗng và thiếu tính minh bạch. Tôi cảm thấy cần phải có một cách tiếp cận trực quan hơn để giải thích rõ ràng ý nghĩa của n-tiers và các mô hình, mẫu thiết kế trong lập trình phần mềm.
Để làm điều này, tôi đã thực hiện một dự án nhỏ với ý định giúp chúng ta nhìn nhận lại quá trình làm việc của bản thân và đánh giá công việc lập trình của mình. Dự án này có tên gọi "Hành Trình Khám Phá Thiết Kế Phần Mềm" và mã nguồn của nó có thể được tìm thấy trên GitHub theo đường dẫn sau: Hành trình của thiết kế phần mềm GitHub.
Cách Đọc Dự Án:
Dự án này bao gồm một file README tổng quát mô tả mục đích của dự án cùng với 6 dự án con, tượng trưng cho các giai đoạn 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 đều đi kèm với một file README tách biệt, nêu rõ ý tưởng, đánh giá và kết luận. Tất cả các dự án con này đều phát triển một API thực thi thuật toán sắp xếp nổi bọt. Điều này giúp chúng ta tránh xa những nghiệp vụ phức tạp, tập trung vào kỹ thuật lập trình và những nhu cầu thiết thực của thiết kế phần mềm.
Dù về mặt kiến thức lập trình, mã nguồn trong dự án này có thể không nổi bật, nhưng tôi hy vọng nó sẽ như một cuốn tài liệu hướng dẫn, cung cấp lợi ích cho mọi người trong việc cải thiện kỹ năng lập trình.
Ban đầu, tôi định tập hợp nội dung từ các file README trong bài viết này, nhưng cuối cùng tôi nhận ra rằng nếu không xem xét mã nguồn thì nội dung trong các file README sẽ vẫn chỉ là lý thuyết. Do đó, tôi rất hy vọng các bạn dành thời gian để khám phá dự án trên GitHub.
Rất mong nhận được phản hồi và góp ý từ mọi người để chúng ta cùng nhau hoàn thiện hơn trong hành trình thiết kế phần mềm!
Ngoài ra, các bạn có thể theo dõi phần thuyết minh liên quan đến dự án tại đây: link phần thuyết minh.
source: viblo