- vừa được xem lúc

Hành trình của thiết kế phần mềm

0 0 15

Người đăng: refacore

Theo Viblo Asia

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:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Giới thiệu về Builder Design Pattern

Nguồn: refactoring.guru. Builder. Ý đồ.

0 0 44

- vừa được xem lúc

Một ví dụ nhỏ về Factory method

Trong bài viết trước mình đã giới thiệu tới các bạn về Abstract Factory pattern, các bạn quan tâm có thể theo dõi lại tại đây. Để tiếp tục về chủ đề design pattern trong bài viết này mình sẽ trình bày những khái niệm, ưu nhược điểm và các sử dụng của một creational design pattern khác đó là Factory

0 0 38

- vừa được xem lúc

Tôi đã dùng Service Pattern trong NuxtJS như thế nào ?

Giới thiệu. Trong quá trình làm VueJS NuxtJS hay thậm chí là Laravel mình cũng hay áp dụng các pattern như Service hoặc Repository.

0 0 69

- vừa được xem lúc

Hướng dẫn Adapter Design Pattern

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về Adapter Design Pattern qua cấu trúc, cánh triển khai, ví dụ, ưu điểm nhược điểm và ứng dụng của nó. Đây là bài viết đầu tiên của mình nên sẽ không trán

1 1 63

- vừa được xem lúc

Giới thiệu về Prototype Design Pattern

Ý đồ. Prototype là một creational design pattern cho phép bạn sao chép các object hiện có mà không làm cho code của bạn phụ thuộc vào các class của chúng.

0 0 52