Chúng ta đang học để trở thành lập trình viên và lập trình viên thì việc quan trọng chính là Code. Do đó việc chúng ta viết ra những đoạn code sạch, dễ hiểu, maintain là điều hết sức quan trọng, đặc biệt ngay từ những dòng code đầu tiên ta hãy luyện cho mình thói quen đó…
Và để viết ra những dòng code sạch thì ngoài việc tuân thủ đến các yếu tố ảnh hưởng đến clean code mà ta đã tìm hiểu trong bài học chúng ta còn có nguyên lý SOLID.
SOLID là nguyên lý viết code bao gồm 5 nguyên lý đại diện cho 5 chữ cái trong SOLID:
- Single Responsibility Principle(đơn nhiệm) : mỗi class chỉ nên giữ 1 trách nhiệm duy nhất ngoài class ra thì function cũng nên xử lý một việc không nên xử lý quá nhiều việc trong 1 class hay function.
- Open/Closed Principle(nguyên lý mở đóng) : Có thể mở rộng 1 class, nhưng không được sửa đổi bên trong class đó. Việc ta sửa đổi bên trong các class sẽ làm ảnh hưởng đến đầu ra của chương trình. Do đó mỗi khi ta muốn thêm chức năng cho chương trình, chúng ta nên viết class mới mở rộng class cũ ( bằng cách kế thừa hoặc sở hữu class cũ) không nên sửa đổi class cũ.
- Liskov’s Substitution 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. Chúng ta không nên thực thi đoạn code ở lớp con mà khi thay thế lớp cha sẽ làm chết chương trình
- Interface Segregation Principle : Thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ, với các mục đích khác nhau. Chúng ta đều biết khi đã triển khai 1 interface ta phải định nghĩa tất cả các phương thức bên trong interface vì thế chúng ta không nên để 1 interface cồng kềnh sẽ rất tốn thời gian triển khai. Thay vào đó ta chia thành các interface nhỏ có các phương thức liên quan đến nhau.
- Dependency Inversion Principle(đảo ngược phụ thuộc): Các module cấp cao không nên phụ thuộc vào các modules cấp thấp. Cả 2 nên phụ thuộc vào abstraction. 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)
đây là mind map mình làm về clean code mọi người có thể tham khảo qua. ^^ https://www.mindmeister.com/1545984257