Clean Architecture: Đứng trên vai những gã khổng lồ

Robert C. Martin (hay còn gọi là Uncle Bob) cho ra đời ý tưởng của mình về Clean Architecture vào năm 2012, trong một bài viết trên blog của mình, và giảng dạy về nó tại một vài hội nghị, và gần đây nhất là cuốn sách Clean Architecture: A Craftsman's Guide to Software Structure … Continue reading Clean Architecture: Đứng trên vai những gã khổng lồ

Kiến trúc củ hành (Onion Architecture)

Onion Architecture được đặt ra bởi Jeffrey Palermo vào năm 2008. Như tôi thấy, nó được xây dựng dựa trên Kiến trúc Ports & Adapters với ý đồ đặt domain vào trung tâm ứng dụng, mở rộng cơ chế phân phối (UI) và cơ sở hạ tầng được sử dụng bởi hệ thống (ORM, công … Continue reading Kiến trúc củ hành (Onion Architecture)

Ports & Adapters Architecture

Trong bài viết trước chúng ta đã nói về Domain Driven Design - cái đặt nền móng cho các triết lý thiết kế trong kiến trúc hiện đại ngày nay, lấy domain làm trung tâm của ứng dụng. Tuy nhiên, Domain Driven Design vẫn còn đi theo lối mòn theo kiểu kiến trúc phân lớp … Continue reading Ports & Adapters Architecture

Đo lường kết cấu kiến trúc phần mềm

Mục tiêu của thiết kế làm làm sao để hệ thống xây dựng lên nhanh chóng, dễ dàng thích nghi với các thay đổi về nghiệp vụ và công nghệ, dễ dàng bảo trì về sau. Để làm được điều đó, thiết kế cần đảm bảo tính low coupling, high cohesion và encapsulation. Tuy nhiên … Continue reading Đo lường kết cấu kiến trúc phần mềm

Domain-Driven Design

Tôi đã có một bài viết về Domain Drive Development (DDD) – First thought để "đặt vấn đề" cho DDD, các bạn có thể tham khảo ở đó trước. Trong phạm vi bài viết này, tôi sẽ tham khảo và diễn đạt lại từ bài viết Domain-Drive Design của tác giả herbertograca. Domain-Drive Design do … Continue reading Domain-Driven Design

Software Architecture Timeline

Và điều đầu tiên đề cập đến trong bài viết này tôi gọi là "lược sử (timeline) về kiến trúc phần mềm" nơi tác giả liệt kê các mốc chính về các mô hình lập trình, các kiểu thiết kế nổi bật từ thuở sơ khai đến hiện tại, có thể kể đến như:   … Continue reading Software Architecture Timeline

Model View Controller (MVC) và các biến thể của nó

Trong các nền tảng lập trình hiện đại như .NET, khi mà các công cụ và kĩ thuật hỗ trợ lập trình giao diện người dùng (UI) ngày càng trở nên mạnh mẽ và tiện dụng thì chúng ta thường có xu hướng đưa nhiều xử lý bên ngoài vào các lớp UI. Kết quả … Continue reading Model View Controller (MVC) và các biến thể của nó

Kiến trúc Model-View-Presenter

Trong bài viết trước, chúng ta đã khảo sát mô hình kiến trúc Model-View-Controller, Kiến trúc MVP chúng ta sẽ bàn dưới đây cũng dựa trên tư tưởng cơ bản của MVC nhưng với cách tiếp cận khác nhằm mục đích khắc phục các khuyết điểm đã có. 1. Mẫu kiến trúc Dolphin Smalltalk Model-View-Presenter Tổng … Continue reading Kiến trúc Model-View-Presenter

Kiến trúc Model-View-Controller

Ở bài viết trước, chúng ta đã nêu ra các vấn đề cơ bản được đặt ra cho các hệ thống tương tác (interactive system). Để giải quyết chúng, một số giải pháp được đề ra trong đó phổ biến nhất là mẫu kiến trúc MVC (Model-View-Controller). Trong bài viết này, chúng ta sẽ khảo … Continue reading Kiến trúc Model-View-Controller

Book review: Clean Architecture by Robert C. Martin (2017)

Là 1 fan của ông, tác giả của SOLID, Clean Code, Agile Software Development, Principles, Patterns, and Practices và gần đây nhất là cuốn Clean Architecture: A Craftsman's Guide to Software Structure and Design. Nghe tựa rất kêu vì cuốn Clean Code ảnh hưởng rất lớn đến mình và bản thân đã không cưỡng lại … Continue reading Book review: Clean Architecture by Robert C. Martin (2017)