
·
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ó. Đó…

·
Có gì mới trong .NET 10 (đầy đủ)
.NET 10, kế thừa từ .NET 9, được hỗ trợ trong ba năm như một bản phát hành hỗ trợ dài hạn (LTS). Giải thích thuật ngữ Thư viện .NET Thư viện .NET 10 giới thiệu một số tính năng và cải tiến mới, bao gồm: Tìm chứng chỉ bằng dấu vân tay khác…

·
Effective Javascript: Chủ đề Array và Dictionary
Khái niệm trong Javascript cần biết để hiểu được những gợi ý trong bài này: Prototype pollution: Một cách tấn công vào Javascript runtimes, bằng cách điều khiển default value – nhằm thay đổi logic của app; đa phần dẫn đến lỗi DoS, hoặc nghiêm trọng hơn điểu khiển hệ thống từ xa. Enumerable/ Enumeration:…
·
Process vs Thread vs Coroutine
Để dễ phân biệt những khái niệm này, ta đi từ khái niệm chương trình (Program). Program Là một file thực thi (file .exe hay .com trong windows) chứa những instructions và được lưu trong ổ đĩa. Một program có nhiều process. Ví dụ điển hình, Chrome browser là một program, và nó tạo ra…
·
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…






