
Viết code chạy được là một chuyện, nhưng viết code sạch (Clean Code) lại là một kỹ năng hoàn toàn khác. Trong môi trường làm việc thực tế, lập trình viên dành phần lớn thời gian để đọc, sửa và mở rộng code hơn là viết mới. Vì vậy, chất lượng mã nguồn ảnh hưởng trực tiếp đến tốc độ phát triển sản phẩm, khả năng bảo trì và hiệu quả làm việc của cả đội ngũ.
Nhiều lập trình viên mới thường tập trung vào việc học framework, thư viện hay công nghệ mới mà quên rằng kỹ năng viết code sạch mới là yếu tố giúp họ phát triển lâu dài trong sự nghiệp.
Bài viết này sẽ chia sẻ 7 thói quen đơn giản nhưng cực kỳ hiệu quả giúp bạn cải thiện chất lượng mã nguồn mỗi ngày.
Đặt tên là một trong những kỹ năng quan trọng nhất của lập trình viên.
Một cái tên tốt giúp người khác hiểu ngay mục đích của đoạn code mà không cần đọc thêm chú thích.
Javascript1const d = new Date(); 2 3function calc(a, b) { 4 return a * b; 5}
Khi nhìn vào đoạn code trên, rất khó biết:
d dùng để làm gìcalc() đang tính toán điều gìJavascript1const currentDate = new Date(); 2 3function calculateTotalPrice(quantity, price) { 4 return quantity * price; 5}
Chỉ cần nhìn tên là có thể hiểu chức năng.
Tên nên:
Nên tránh:
Javascript1a 2b 3c 4temp 5data 6test
Trừ những trường hợp đặc biệt như vòng lặp ngắn:
Javascript1for (let i = 0; i < 10; i++) {}
Một hàm tốt nên chỉ chịu trách nhiệm cho một nhiệm vụ duy nhất.
Đây là nguyên tắc Single Responsibility.
Javascript1function processOrder(order) { 2 validateOrder(order); 3 4 saveOrder(order); 5 6 sendEmail(order); 7 8 updateInventory(order); 9 10 createInvoice(order); 11 12 logActivity(order); 13}
Hàm này đang thực hiện quá nhiều công việc.
Javascript1function processOrder(order) { 2 validateOrder(order); 3 4 saveOrder(order); 5 6 notifyOrderCreated(order); 7}
Trong đó:
Javascript1function notifyOrderCreated(order) { 2 sendEmail(order); 3 updateInventory(order); 4 createInvoice(order); 5}
Nguyên tắc DRY (Don't Repeat Yourself) là một trong những nguyên tắc quan trọng nhất trong lập trình.
Javascript1const total1 = productPrice1 * quantity1; 2 3const total2 = productPrice2 * quantity2; 4 5const total3 = productPrice3 * quantity3;
Javascript1function calculateTotal(price, quantity) { 2 return price * quantity; 3}
Sử dụng:
Javascript1const total1 = calculateTotal(price1, quantity1); 2const total2 = calculateTotal(price2, quantity2); 3const total3 = calculateTotal(price3, quantity3);
Nếu công thức thay đổi:
Javascript1function calculateTotal(price, quantity) { 2 return price * quantity * 0.9; 3}
Chỉ cần sửa một nơi.
Nhiều lập trình viên có thói quen giữ lại code cũ "phòng khi cần dùng lại".
Điều này khiến codebase ngày càng khó đọc.
Javascript1// Old login function 2// function login() { 3// ... 4// }
Hoặc:
Javascript1const oldData = []; 2const unusedVariable = "test";
Nếu không còn sử dụng:
Javascript1git commit
rồi xóa hẳn.
Git đã lưu lịch sử thay đổi.
Bạn không cần giữ lại code chết trong dự án.
Code không chỉ cần đúng mà còn phải dễ đọc.
Javascript1function getUser(){ 2const user={name:"John",age:20} 3return user 4}
Javascript1function getUser() { 2 const user = { 3 name: "John", 4 age: 20 5 }; 6 7 return user; 8}
Bash1npm install --save-dev prettier
Bash1npm install --save-dev eslint
Tự động kiểm tra trước khi commit.
Bash1npm install --save-dev husky
Toàn bộ dự án sẽ có cùng một style code.
Một thói quen rất nhiều người bỏ qua.
Sau khi hoàn thành tính năng, đừng push ngay.
Hãy dành vài phút đọc lại code.
Javascript1const x = data.map((a) => ...)
Hay nên đổi thành:
Javascript1const mappedUsers = users.map((user) => ...)
Ví dụ:
Javascript1validateEmail(); 2validateEmail(); 3validateEmail();
Có thể tách thành helper.
Javascript1const temp = [];
Nếu không dùng thì xóa.
Chỉ cần 5 phút review có thể giúp tránh hàng giờ sửa lỗi sau này.
Người đọc code tiếp theo có thể là:
Hoặc thậm chí là người phỏng vấn kỹ thuật.
Javascript1if (a === 1 && b === 2 && c === 3) { 2 ... 3}
Javascript1const isAdminUser = 2 role === "admin" && 3 status === "active" && 4 permission === "full"; 5 6if (isAdminUser) { 7 ... 8}
Ý nghĩa trở nên rõ ràng hơn rất nhiều.
Nếu một người mới vào dự án đọc đoạn code này, họ có hiểu ngay không?
Nếu câu trả lời là "không", hãy cải thiện nó.
Refactor là quá trình cải thiện cấu trúc code mà không làm thay đổi hành vi của chương trình.
Ví dụ:
Trước:
Javascript1function getUserInfo(user) { 2 return `${user.firstName} ${user.lastName}`; 3}
Sau:
Javascript1function getFullName(user) { 2 return `${user.firstName} ${user.lastName}`; 3}
Logic không đổi nhưng tên hàm rõ nghĩa hơn.
Trước khi commit, hãy tự kiểm tra:
Nếu tất cả câu trả lời đều là "Có", chất lượng mã nguồn của bạn sẽ tốt hơn rất nhiều.
Code sạch không đến từ việc học thêm framework mới hay sử dụng những kỹ thuật phức tạp. Nó đến từ những thói quen nhỏ được lặp đi lặp lại mỗi ngày.
Hãy bắt đầu với 7 thói quen:
Nếu duy trì những thói quen này trong vài tháng, bạn sẽ nhận thấy mã nguồn của mình dễ đọc hơn, dễ bảo trì hơn và chuyên nghiệp hơn rất nhiều. Đây cũng là một trong những yếu tố giúp lập trình viên phát triển từ Junior lên Mid-level và Senior trong môi trường làm việc thực tế.
Bạn cần đăng nhập để bình luận