> For the complete documentation index, see [llms.txt](https://vick7-education.gitbook.io/freshforfresh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vick7-education.gitbook.io/freshforfresh/clean-code.md).

# Clean Code

Clean code là phong cách lập trình hướng tới việc viết ra mã nguồn rõ ràng, dễ đọc, dễ bảo trì và dễ mở rộng. Một số đặc điểm của clean code:

* Có cấu trúc rõ ràng, được chia thành các chức năng/module riêng biệt. Mỗi hàm/class chỉ giải quyết một vấn đề.
* Đặt tên biến, hàm, lớp theo nghĩa thực tế và rõ nghĩa. Tránh tên quá tắt, dài dòng hay không liên quan.
* Sử dụng cú pháp và kiểu dữ liệu phù hợp. Tránh các cú pháp máy tính chứ không phổ biến.
* Viết code ngắn gọn và tự doc. Có comments giải thích ý nghĩa chứ không phải cách thức.
* Tránh sử dụng toàn cục. Dùng modular, OOP tốt hơn để tái sử dụng code.
* Kiểm thử và bảo trì dễ dàng. Có test case bao quát các tình huống.
* Tuân thủ các chuẩn mực thiết kế và coding. Làm sao cho code luôn sạch đẹp và dễ bảo trì.

Nói tóm lại, clean code là phong cách đảm bảo mã nguồn có chất lượng, dễ phát triển và bảo trì.

## Cùng tìm hiểu tận gốc clean code qua các chủ đề dưới đây

{% content-ref url="/pages/rrVuzVBr52VVQJPdH2tQ" %}
[Chương 1: Code sạch](/freshforfresh/clean-code/chuong-1-code-sach.md)
{% endcontent-ref %}

{% content-ref url="/pages/Ex8WqODGfJ74EgkY2WdE" %}
[Chương 2: Quy tắc đặt tên rõ nghĩa](/freshforfresh/clean-code/chuong-2-quy-tac-dat-ten-ro-nghia.md)
{% endcontent-ref %}

{% content-ref url="/pages/M11Qg27Sm2Z6T9BqZqq0" %}
[Chương 3: Cách viết hàm](/freshforfresh/clean-code/chuong-3-cach-viet-ham.md)
{% endcontent-ref %}

{% content-ref url="/pages/4cD1UqPjDoDcV7bDQc1M" %}
[Chương 4: Comments thế nào cho chuẩn?](/freshforfresh/clean-code/chuong-4-comments-the-nao-cho-chuan.md)
{% endcontent-ref %}

{% content-ref url="/pages/IoAtSpT06CVfcWFw01VS" %}
[Chương 5: Định dạng code.](/freshforfresh/clean-code/chuong-5-dinh-dang-code..md)
{% endcontent-ref %}

{% content-ref url="/pages/t4ycJ0NjdVnZIqF2YQtu" %}
[Chương 6: Đối tượng và cấu trúc dữ liệu](/freshforfresh/clean-code/chuong-6-doi-tuong-va-cau-truc-du-lieu.md)
{% endcontent-ref %}

{% content-ref url="/pages/ZdrZ7D6KJWmXNQhCnrtw" %}
[Chương 7: Xử lí lỗi](/freshforfresh/clean-code/chuong-7-xu-li-loi.md)
{% endcontent-ref %}

{% content-ref url="/pages/f4rtxZTblwD6ZvDkhooR" %}
[Chương 8: Ranh giới code](/freshforfresh/clean-code/chuong-8-ranh-gioi-code.md)
{% endcontent-ref %}

{% content-ref url="/pages/qJ4GuaqcOiNZhM4KzjQg" %}
[Chương 9: Unit test](/freshforfresh/clean-code/chuong-9-unit-test.md)
{% endcontent-ref %}

{% content-ref url="/pages/ce44EfojbzxvGcQKfNxK" %}
[Chương 10: Lớp đối tượng](/freshforfresh/clean-code/chuong-10-lop-doi-tuong.md)
{% endcontent-ref %}

{% content-ref url="/pages/v8iCizArGpouAPzSIu8x" %}
[Chương 11: Code sạch cấp hệ thống](/freshforfresh/clean-code/chuong-11-code-sach-cap-he-thong.md)
{% endcontent-ref %}
