Event-driven architecture (EDA) là mẫu kiến trúc phần mềm (architecture software pattern) trong đó, về cơ bản, hệ thống được xây dựng xung quanh các thao tác như tạo, khám phá, tiêu thụ và đáp trả lại các sự kiện (event). Hiểu đơn giản hơn, EDA là một dạng kiến trúc phần mềm được xây … Continue reading Event-Driven Architecture
Tag: Architecture
Thực hành implement Clean Architecture
Trong bài trước chúng ta đã tìm hiểu lý thuyết về Clean Architecture của Uncle Bob. Như đã đề cập, các mục tiêu cốt lõi của Clean Architecture cũng giống với đối với Ports & Adapters (Hexagonal) và Onion Architectures, hướng đến: Độc lập các công cụ; Sự độc lập của các cơ chế phân … Continue reading Thực hành implement Clean Architecture
Command Query Responsibility Segregation (CQRS)
Với một ứng dụng kiểu data-centric application (ứng dụng tập trung vào dữ liệu) chỉ implement các thao tác CRUD căn bản xuống DB và để business process cho user xử lý (ví dụ như cần change data nào và khi nào change), nó có lợi điểm là user có thể thay đổi business process … Continue reading Command Query Responsibility Segregation (CQRS)
Xây dựng hệ thống Ecommerce với DDD và CQRS
Trong quá trình viết về Domain Driven Design và Command Query Responsibility Segregation, mình đã bắt gặp bài viết dưới đây trên engineering blog của tiki, mình xin mạn phép chia sẻ đến các bạn để thực hành phần lý thuyết đã mô tả ở những phần trước. Quản lý danh mục sản phẩm là một trong … Continue reading Xây dựng hệ thống Ecommerce với DDD và CQRS
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