English is below

Thiết kế theo miền (Domain Driven Design)

Thiết kế theo miền khuyên chúng ta nên định hướng thiết kế phần mềm thông qua việc mô hình hóa miền.

Ngôn ngữ chung là một trong những khái niệm chính của thiết kế theo miền. Mô hình miền là cầu nối giữa các lĩnh vực kinh doanh.

Thực thể kinh doanh (Business Entities)

Việc sử dụng các mô hình có thể giúp diễn đạt các khái niệm và kiến thức kinh doanh, đồng thời hướng dẫn phát triển phần mềm tiếp theo, như cơ sở dữ liệu, API, v.v.

Ranh giới mô hình (Model Boundaries)

Các ranh giới lỏng giữa các tập hợp mô hình miền được sử dụng để mô hình hóa các mối tương quan trong kinh doanh.

Tập hợp (Aggregation)

Một Tập hợp là một nhóm các đối tượng liên quan (thực thể và đối tượng giá trị) được coi là một đơn vị duy nhất khi thực hiện thay đổi dữ liệu.

Thực thể so với Đối tượng giá trị (Entities vs. Value Objects)

Bên cạnh các thực thể chính và thực thể, có một số mô hình giống như các đối tượng dùng một lần. Chúng không có ID riêng để nhận diện, mà giống như một phần của một thực thể khác, thể hiện một tập hợp các trường dữ liệu.

Mô hình hóa hoạt động (Operational Modeling)

Trong thiết kế theo miền, để thao tác với các mô hình này, có một số đối tượng hoạt động như “các bộ điều khiển”.

Tầng kiến trúc (Layering the architecture)

Để tổ chức tốt hơn các đối tượng khác nhau trong một dự án, chúng ta cần đơn giản hóa độ phức tạp của các dự án phức tạp bằng cách phân chia chúng thành các tầng, giống như một mạng máy tính.

Xây dựng mô hình miền

Nhiều phương pháp đã được phát minh để trích xuất các mô hình miền từ kiến thức kinh doanh.

🔹 Domain Driven Design

Domain-driven design advocates driving the design of software through domain modeling. Unified language is one of the key concepts of domain-driven design. A domain model is a bridge across the business domains.

🔹 Business Entities

The use of models can assist in expressing business concepts and knowledge and in guiding further development of software, such as databases, APIs, etc.

🔹 Model Boundaries

Loose boundaries among sets of domain models are used to model business correlations.

🔹 Aggregation

An Aggregate is a cluster of related objects (entities and value objects) that are treated as a single unit for the purpose of data changes.

🔹 Entities vs. Value Objects

In addition to aggregate roots and entities, there are some models that look like disposable, they don’t have their own ID to identify them, but are more as part of some entity that expresses a collection of several fields.

🔹 Operational Modeling

In domain-driven design, in order to manipulate these models, there are a number of objects that act as “operators”.

🔹 Layering the architecture

In order to better organize the various objects in a project, we need to simplify the complexity of complex