
·
DDD: Phần 6 – Những Domain Model Patterns giải quyết business logic phức tạp
Xem lại phần 5: DDD [Part 5]: Transaction Script & Active Record – 2 patterns để giải quyết business logic đơn giản 📜 Lịch sử & nguồn gốc 🔹 Cuốn sách của Evans không chỉ nhấn mạnh khái niệm “Domain Model” mà còn giới thiệu tập hợp các mẫu thiết kế cụ thể (gọi là…

·
DDD: Phần 5 – Transaction Script & Active Record – 2 patterns để giải quyết business logic đơn giản
Xem lại phần 4: DDD [Part 4]: Mô hình hóa tích hợp giữa các Bounded Context trong Domain-Driven Design “Business logic là lý do phần mềm được xây ra.”Giao diện có đẹp, cơ sở dữ liệu có nhanh đến đâu cũng trở nên vô nghĩa nếu phần mềm không giải quyết đúng bài toán kinh…

·
DDD: Phần 4 – Mô hình hóa tích hợp giữa các Bounded Context trong Domain-Driven Design
Xem lại phần 3: DDD [Part 3]: Quản lý Domain Complexity: Khám phá Sức mạnh của Bounded Context trong Thiết kế phần mềm 🧠 Domain có 2 mặt: Problem Space vs Solution Space 🔍 Problem Space là gì? 🛠️ Solution Space là gì? Bounded Context & Mô hình 📌 Bounded Context không chỉ giúp bảo…

·
DDD: Phần 3 – Quản lý Domain Complexity: Khám phá Sức mạnh của Bounded Context trong Thiết kế phần mềm
Xem lại phần 2: https://minhphien.com/ddd-part-2-giao-tiep-va-ngon-ngu-chung-trong-domain-driven-design/ Trong hai phần trước, chúng ta đã hiểu rõ tầm quan trọng của ngôn ngữ chung (ubiquitous language) đối với việc giao tiếp giữa nhóm kỹ thuật và các domain expert trong môi trường phát triển phần mềm. Tuy nhiên, thực tế tại nhiều tổ chức, ngôn ngữ chung thường…

·
DDD: Phần 2 – Giao tiếp và Ngôn ngữ chung trong Domain-Driven Design
Xem lại phần 1: https://minhphien.com/ddd-part-1-phan-tich-mien-nghiep-vu-trong-domain-driven-design/ “Thứ được đưa vào production không phải là tri thức của chuyên gia miền, mà là những gì lập trình viên hiểu (hoặc hiểu sai).”— Alberto Brandolini Khi phát triển phần mềm, chúng ta thường nhảy ngay vào viết code, tạo schema, vẽ luồng xử lý. Nhưng nếu bỏ qua…

·
DDD: Phần 1 – Phân tích miền nghiệp vụ trong Domain-Driven Design
Giới thiệu Trong lĩnh vực phát triển phần mềm, nhiều developer chỉ quan tâm đến việc viết code hoàn chỉnh và tối ưu. Tuy nhiên, Domain-Driven Design (DDD) nhắc nhở rằng để thiết kế hệ thống tốt, trước hết ta cần hiểu vấn đề của doanh nghiệp và môi trường vận hành của nó. Đó…
·
Zen of Python: Nguyên tắc cơ bản của lập trình
Zen of Python là những nguyên tắc cơ bản mọi programmer bắt buộc tuân thủ. Nguyên gốc tiếng Anh: Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special…
·
CQRS là gì?
CQRS (viết tắt của cụm Command/Query Responsibility Segregation) định nghĩa sơ khai là cách phân tách trách nhiệm truy vấn lệnh, nhằm tối ưu hóa việc ghi vào & đọc từ cơ sở dữ liệu. Motivation Ngày càng nhiều lượt đọc và ghi phức tạp trong những hệ thống lớn, dẫn đến lỗi, tắc nghẽn…

·
🌀 Streaming Analytics với Apache Spark Structured Streaming: Kiến trúc, Thuật ngữ và Ứng dụng
Mục tiêu: Bài viết này nhằm cung cấp cái nhìn hệ thống và thực tế về cách triển khai streaming pattern phổ biến bằng Apache Spark Structured Streaming, kết hợp với các công nghệ phụ trợ như MariaDB, Redis, và Kafka. Đây là nền tảng để xây dựng các hệ thống xử lý dữ liệu…

·
Cách viết web hỗ trợ Accessibility
Thế giới đang có hàng tỷ người, mỗi người có đặc điểm nhận dạng khác nhau. Khi nói về khả năng access đến ứng dụng, nghĩa là đang tập trung lên People Identity. Nói về “accessiblity” của ứng dụng, nghĩa là đang tập trung vào “disability” của mỗi người. Ta chia theo persona spectrum. Có…






