Thứ Năm, 18 tháng 9, 2025

10 nguyên tắc coding bạn nên biết

  • Nguồn
  • Coding Style
  • Comment
  • Độ tin cậy (Robustness)
  • SOLID Principles
  • Viết code dễ test
  • Trừu tượng hóa
  • Design Patterns
  • Giảm thiểu biến hoặc giá trị toàn cục
  • Tái cấu trúc (Refactoring)
  • Bảo mật

Nguồn

 10 Coding Principles Explained in 5 Minutes

Coding Style

Đầu tiên hãy nói về coding style, đây là ngôn ngữ chung mà team của chúng ta sử dụng. Mỗi ngôn ngữ đều có hướng dẫn về coding style của riêng nó - Python có PEP 8, Java có Google Java Style Guide - và tuân thủ chúng giúp code của chúng ta đồng nhất và dễ đọc, bất kể ai đang làm việc với nó. Chúng ta có thể sử dụng các công cụ tự động định dạng code như Black hoặc Prettier có thể tự động áp dụng các style guide này, giúp ta tiết kiệm thời gian và sức lực, giúp tập trung vào logic và chức năng của code.

Comment

Ta từng thấy các đoạn code trông như đánh đố, khiến ta mất hàng giờ để hiểu nó viết về cái gì. Nhớ rằng, "code nói về cách thức, comment nói về lý do". Mục tiêu chính của chúng ta là viết code sạch, dễ hiểu. Tuy nhiên, luôn có những lúc ta cần thêm thông tin bổ sung. Đó là lúc các comment sẽ giúp giải thích lý do đằng sau các quyết định thiết kế, làm cho thuật toán phức tạp trở nên dễ hiểu hơn, và cung cấp ngữ cảnh quý giá cho những lập trình viên khác sau này. Một số dự án mã nguồn mở, như Postgres, SQLite, và Django, có những ví dụ tuyệt vời về việc comment một cách hợp lý.

Độ tin cậy (Robustness)

Code cần xử lý được các tình huống bất ngờ mà không bị lỗi. Nghĩa là ta cần thêm các xử lý lỗi phù hợp để tránh crash hoặc các hành vi không kiểm soát được của code. Quản lý tài nguyên cũng rất quan trọng. Ta cần đảm bảo rằng tài nguyên như bộ nhớ, file handle, và kết nối mạng được sử dụng và giải phóng đúng cách. Các kỹ thuật như RAII trong C++ và 'defer' trong Go có thể rất hữu ích ở đây. Một khía cạnh quan trọng khác là lập trình phòng thủ, nghĩa là suy nghĩ trước về các lỗi có thể xảy ra và thực hiện các biện pháp để xử lý chúng. Kiểm tra input, sử dụng guard clauses để fail nhanh, xử lý lỗi đầy đủ, và sử dụng assertions là những công cụ hữu ích.

SOLID Principles

SOLID bao gồm 5 nguyên tắc: Trách nhiệm Đơn lẻ (Single Responsibility), Mở/Đóng (Open/Closed), Thay thế Liskov (Liskov Substitution), Phân chia Interface (Interface Segregation) và Đảo ngược Phụ thuộc (Dependency Inversion). Chúng giúp code dễ hiểu, dễ thay đổi và mở rộng. Các nguyên tắc này giúp tạo ra các đoạn code có thể hoạt động cùng nhau mà không quá phụ thuộc lẫn nhau, làm code dễ kiểm tra và tổ chức hơn. Việc này đặc biệt hữu ích khi làm việc theo nhóm, nhưng chúng ta cũng cần chú ý tránh làm mọi thứ phức tạp quá mức.

Viết code dễ test

Code tốt không chỉ là về việc code làm tốt những gì nó được tạo ra, code tốt còn đồng nghĩa với việc dễ test nữa. Khi thiết kế các thành phần với ý tưởng test, ta nên code đơn giản và rõ ràng. Đừng quên nguyên tắc Trách nhiệm Đơn lẻ (Single Responsibility); những phần code nhỏ và tập trung thường dễ test hơn. Kiểm thử tự động giúp chúng ta tự tin khi thay đổi hoặc thêm tính năng, vì biết rằng nếu có gì sai, các test case sẽ phát hiện ra.

Trừu tượng hóa

Trừu tượng hóa là nghệ thuật ẩn đi sự phức tạp. Quá ít trừu tượng hóa có thể dẫn đến việc code trông rối rắm, trong khi quá nhiều có thể tạo ra các lớp không cần thiết, khiến code khó hiểu. Ví dụ, thay vì viết code riêng cho mỗi hệ thống cơ sở dữ liệu, chúng ta có thể tạo một class trừu tượng Database với các action chung như connect và query, sau đó tạo các subclass cụ thể cho từng cơ sở dữ liệu, giữ cho logic ứng dụng chính sạch sẽ.

Design Patterns

Design patterns giống như công cụ trong hộp công cụ - hữu ích khi sử dụng đúng cách. Chúng cung cấp giải pháp thông minh cho các vấn đề phổ biến, nhưng quan trọng là chọn pattern đúng cho vấn đề hiện tại. Ví dụ, Pattern Model-View-Controller (MVC) rất hữu ích để tách biệt dữ liệu, hiển thị và tương tác người dùng. Nhưng hãy nhớ, không phải tất cả vấn đề đều cần một giải pháp phức tạp. Đôi khi giải pháp đơn giản nhất mới là giải pháp tốt nhất.

Giảm thiểu biến hoặc giá trị toàn cục

Các biến toàn cục có thể làm cho code rối và khiến khó tìm ra lỗi hơn. Thay vào đó, hãy sử dụng state cục bộ và truyền tham số. Điều này giúp code của chúng ta gọn gàng và dễ hiểu hơn.

Ví dụ, thay vì tạo một dịch vụ email trong module thông báo, chúng ta có thể định nghĩa một interface dịch vụ email và inject implementation cụ thể. Điều này cho phép chúng ta dễ dàng thay thế các nhà cung cấp email khác nhau hoặc sử dụng các dịch vụ giả lập cho testing, mà không cần thay đổi logic thông báo chính.

Tái cấu trúc (Refactoring)

Phát triển phần mềm là một quá trình lặp đi lặp lại, và code của chúng ta nên phản ánh điều đó.

Tái cấu trúc giống như bảo trì cho code. Bằng cách giải quyết các vấn đề như trùng lặp, phức tạp và đặt tên không rõ ràng, chúng ta ngăn ngừa nợ kỹ thuật và giúp code dễ hiểu và sửa đổi hơn, tiết kiệm thời gian và công sức trong quá trình phát triển lâu dài.

Bảo mật

Cẩn thận với các nguy cơ phổ biến như SQL injection và cross-site scripting, nơi kẻ tấn công có thể chèn mã độc vào ứng dụng của chúng ta. Để ngăn chặn, cần xác thực và lọc dữ liệu đầu vào của người dùng. Sử dụng các phương pháp an toàn như truy vấn tham số và mã hóa đầu ra. Ngoài ra, bảo vệ dữ liệu nhạy cảm và chỉ thu thập dữ liệu cá nhân khi thực sự cần thiết.

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty