Clean Architecture - Phần 1 - Làm quen với các khái niệm
HTML-код
- Опубликовано: 28 авг 2024
- Giới thiệu về 3 khái niệm cơ bản khi học về kiến trúc phần mềm:
* Kiến trúc phần mềm: có thể chia ứng dụng thành những component nào và mối quan hệ, sự tương tác của chúng với nhau như thế nào.
* Dependency:
- Mức độ phụ thuộc giữa các thành phần bên trong một phần mềm càng thấp thì chi phí bảo trì càng thấp.
- Tránh cách mối phụ thuộc trực tiếp đến các concrete class, vì chúng phụ thuộc vào rất nhiều các thành phần khác.
- Đặc biệt tránh các mối quan hệ xoay vòng.
- Tất cả các phương pháp thiết kế hay kiến trúc phần mềm đều coi việc giảm phụ thuộc hoặc cách ly các thành phần với nhau (sử dụng interface hoặc API) là một trong những yếu tố quan trọng nhất: microservice hoặc DDD chia tách các thành phần vào từng service/bounded context, Clean Architecture và n-tier chia thành các lớp và chỉ cho phép phụ thuộc theo 1 hướng, OOAD nhấn mạnh sự dụng trừu tượng hóa mỗi khi có thể, SOLID có dependency inversion, và nhiều design pattern được tạo ra cũng cho mục đích này...
* Domain: là lĩnh vực mà phần mềm của chúng ta được tạo ra để giải quyết, hiểu về domain là ưu tiên số một khi chúng ta thiết kế và xây dựng phần mềm.
hay lắm anh đúng thứ em cần mong anh sớm ra video tiếp theo
Mới đi làm về và mở ngay video của anh để xem ạ
Hay, đúng người đúng thời điểm. Chủ đề này hay anh ơi. Lần đầu biết kênh anh. Tặng anh 1 like, +1 subcriber
Thanks em
Kiến thức rất bổ ích chúc kênh a phát triển ạ
cảm ơn em
anh Nam cho em hỏi, ví dụ mình là người mới khi vào project có sẵn của công ty thì mình cần làm những việc gì để hiểu project nhanh nhất và có thể làm tốt task được giao ạ.Em cảm ơn.
Đầu tiên nhất là phải set up được môi trường dev trên máy local, sao cho em có build, test, reset lại dễ dàng nhất mà không ảnh hưởng môi trường production. Xong rồi thì bắt đầu xem cấu trúc tổng thể, nắm được cấu trúc cơ bản, biết cách build rồi thì bắt tay vọc thôi.
dung luc dang doc cuon nay
anh cho em hỏi nếu mình có các service như gửi mail, thanh toán qua bên thứ ba. thì ở project use case, mình chỉ khai báo các interface cho nó. Còn phần implementation thì mình có nên tạo một project infrastructure.(tên gì đó em chưa nghĩ ra) và implement các service đó ở đây. Suy nghĩa của em như vậy có hợp lý không anh?
Đúng rồi em. Làm như vậy em có thể phát triển các implementation mà không ảnh hưởng đến use case. Ví dụ khi em thay đổi phương thức gửi mail hay thanh toán, hoặc em có thể nâng cấp lên để tách các phần đó ra thành service riêng mà không phải sửa lại những phần khác.
@@hoc-lap-trinh dạ em cảm ơn anh
xong series này anh có làm thêm clean code luôn không anh :D ?
a chưa có dự định làm cái đó
Dong series này anh có tính làm thêm series microservice không ạ
Sẽ có đó em, thực ra a chuẩn bị slide rồi nhưng dài quá chưa xong nên a đổi qua làm cái này trước.
@@hoc-lap-trinh quá tuyệt vời luôn anh, tiếp tục giữ lửa và ra nhiều nhiều series hay hơn nữa nha anh
Cais này a có tài liệu hay gì không ạ cho e tham khảo với ạ
Nội dung trong serie này chủ yếu trích ra từ cuốn Clean Architecture của Uncle Bob, một ít từ cuốn DDD của Chris Evans, thêm chút mắm muối nữa cho dễ nuốt :D
@@hoc-lap-trinh da cam on a
Giọng ồm ồm quá thầy, ko cuốn lắm
:)) em nghe bằng tai nghe hay bằng loa?