Cloud Native Application (CNA)

Cloud Native App là gì? Cloud Native App (CNA) là một “buzz word”. CNA là một app “thuần” (từ này hơi sloppy :D) cloud. Dưới góc nhìn high level, nó là app được thiết kế để chạy trên môi trường cloud. Nhìn rộng ra thì nó có thể chạy được trên nhiều môi trường cloud, … Continue reading Cloud Native Application (CNA)

Single Page Application

Single Page Applications, hay mình thường gọi là Single Page App - SPA giờ đã trở nên quá đỗi quen thuộc và là một xu hướng của web. Vậy bạn đã thực sự hiểu rõ nó chưa? Bài viết này với mục đích cung cấp một cái nhìn "nông dân" hết sức có thể để … Continue reading Single Page Application

Giới thiệu về Serverless Architecture

Nguồn: https://trungquandev.com/xin-chao-serverless-chung-ta-lam-quen-voi-nhau-nhe/ 1. Serverless Computing và Serverless Architectures. “Serverless Computing là một mô hình thực thi điện toán đám mây mà trong đó các nhà cung cấp đám mây sẽ quản lý động việc phân bổ tài nguyên máy, giá cả của mô hình này dựa trên số lượng tài nguyên thực tế mà ứng dụng sử … Continue reading Giới thiệu về Serverless Architecture

Kết hợp các mẫu kiến trúc / pattern vào trong một (DDD, Hexagonal, Onion, Clean, CQRS, …)

Trong các bài viết trước, chúng ta đã điểm qua khá nhiều các concept, principle và pattern trong Software Architecture world. Mỗi pattern mang đến cách giải quyết cho những vấn đề khác nhau, vậy câu hỏi đặt ra là liệu chúng ta có thể kết hợp chúng lại để mang đến giải pháp toàn … Continue reading Kết hợp các mẫu kiến trúc / pattern vào trong một (DDD, Hexagonal, Onion, Clean, CQRS, …)

Service Oriented Architecture (SOA)

Trong bài này chúng ta sẽ thảo luận về Service Oriented Architecture (SOA). Tuy là nói về architecture, nhưng tôi tin nó sẽ rất khác so với những bài viết trước khi chúng ta bàn về DDD, Hexagonal hay Event-Drivent Architecture, chúng chỉ nói về cách thức thiết kế và ghép nối các component lại, … Continue reading Service Oriented Architecture (SOA)

Event-Driven Architecture

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

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

Thực hành đo lường các chỉ số (metric) của software với NDepend

Ngày nay, có rất nhiều vấn đề chúng ta cần suy nghĩ đến khi xây dựng ứng dụng thực tế. MAINTAINABILITY (tính dễ bảo trì), UNDERSTANDABILITY (tính dễ hiểu), DEPENDENCY (tính phụ thuộc giữa các module), COHESION (tính gắn kết) chỉ là 1 vài trong số chúng. Chúng ta phải làm việc cật lực để … Continue reading Thực hành đo lường các chỉ số (metric) của software với NDepend

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