Sunday, October 8, 2017
Software Craftsmanship
DRY principle: do not repeat yourself
KISS principle: keep it simple stupid
SOLID:
Single responsibility principle: Một class chỉ nên giữ một trách nhiệm duy nhất (Chỉ có thể thay đổi class vì một lý do duy nhất)
Open closed principleCó thể thoải mái mở rộng 1 module, nhưng hạn chế sửa đổi bên trong module đó (open for extension but closed for modification).
Libstok subtitution principle:Trong một chương trình, các object của class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình
Interface segmentation principle:Thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ, với nhiều mục đích cụ thể
Dependency Inversion principle:
1. Các module cấp cao không nên phụ thuộc vào các module cấp thấp. Cả 2 nên phụ thuộc vào abstraction.
2. Interface (abstraction) không nên phụ thuộc vào chi tiết, mà ngược lại. (Các class giao tiếp với nhau thông qua interface, không phải thông qua implementation.)
High Cohesion, Loose Coupling:
trong 1 module thì gắn kết chặt chẽ, nhưng giữa các module thì kết nối lỏng (thông qua interface)
Subscribe to:
Comments (Atom)