Giới Thiệu
Viết mã sạch không chỉ giúp chương trình của bạn chạy mượt mà mà còn tạo ra mã nguồn dễ đọc, dễ bảo trì và dễ gỡ lỗi. Khi dự án phát triển, mã lộn xộn có thể trở thành nợ kỹ thuật, làm chậm quá trình phát triển và khiến việc sửa lỗi trở nên khó khăn hơn. Trong bài viết này, chúng ta sẽ khám phá các thực hành viết mã sạch trong JavaScript với những ví dụ có thể áp dụng ngay hôm nay.
1. Sử Dụng Tên Biến & Hàm Có Ý Nghĩa
Ví Dụ Kém
javascript
let x = 10;
let y = 20;
let z = x + y;
function d(a, b) {
return a * b;
}
Ví Dụ Sạch
javascript
let price = 10;
let tax = 20;
let totalPrice = price + tax;
function calculateDiscount(price, discountRate) {
return price * discountRate;
}
👉 Tên biến và hàm nên giải thích mục đích thay vì chỉ lưu trữ dữ liệu.
2. Giữ Hàm Nhỏ & Tập Trung
Ví Dụ Kém
javascript
function processUser(user) {
console.log("Saving user to DB...");
database.save(user);
console.log("Sending welcome email...");
emailService.send(user.email, "Welcome!");
console.log("Logging user activity...");
logger.log(user);
}
Ví Dụ Sạch
javascript
function saveUser(user) {
database.save(user);
}
function sendWelcomeEmail(user) {
emailService.send(user.email, "Welcome!");
}
function logUserActivity(user) {
logger.log(user);
}
function processUser(user) {
saveUser(user);
sendWelcomeEmail(user);
logUserActivity(user);
}
👉 Mỗi hàm nên chỉ làm một việc duy nhất.
3. Tránh Sử Dụng Số & Chuỗi Ma
Ví Dụ Kém
javascript
if (user.age > 18) {
giveAccess(user);
}
Ví Dụ Sạch
javascript
const MINIMUM_AGE = 18;
if (user.age > MINIMUM_AGE) {
giveAccess(user);
}
👉 Sử dụng hằng số để làm cho mã tự giải thích.
4. Sử Dụng Định Dạng Nhất Quán
Các công cụ như Prettier và ESLint giúp giữ cho mã của bạn đồng nhất.
Ví Dụ Kém
javascript
function add(a,b){return a+b;}
const result=add(5,10);console.log(result);
Ví Dụ Sạch
javascript
function add(a, b) {
return a + b;
}
const result = add(5, 10);
console.log(result);
👉 Sự nhất quán giúp mã dễ đọc và dễ đánh giá hơn.
5. Ưu Tiên const và let Thay Vì var
Ví Dụ Kém
javascript
var count = 0;
for (var i = 0; i < 5; i++) {
count += i;
}
console.log(i); // i vẫn có thể truy cập (có nguy cơ lỗi!)
Ví Dụ Sạch
javascript
let count = 0;
for (let i = 0; i < 5; i++) {
count += i;
}
console.log(count); // i không bị rò rỉ ra ngoài
👉 Sử dụng const cho các giá trị không thay đổi, let cho những giá trị có thể thay đổi.
6. Viết Bình Luận Một Cách Thông Minh
Ví Dụ Kém
javascript
// tăng count lên 1
count = count + 1;
Ví Dụ Sạch
javascript
// Theo dõi số lần đăng nhập của người dùng để ngăn chặn các cuộc tấn công brute force
loginAttempts++;
👉 Bình luận về lý do, không phải điều gì. Mã nguồn nên tự giải thích "điều gì".
7. Xử Lý Lỗi Một Cách Thanh Lịch
Ví Dụ Kém
javascript
const data = JSON.parse(input); // bị lỗi nếu không hợp lệ
Ví Dụ Sạch
javascript
let data;
try {
data = JSON.parse(input);
} catch (error) {
console.error("Dữ liệu JSON không hợp lệ:", error.message);
data = {};
}
👉 Luôn giả định rằng mọi thứ có thể xảy ra sai.
8. Sử Dụng Nguyên Tắc DRY (Không Lặp)
Ví Dụ Kém
javascript
function getUserFullName(user) {
return user.firstName + " " + user.lastName;
}
function getAdminFullName(admin) {
return admin.firstName + " " + admin.lastName;
}
Ví Dụ Sạch
javascript
function getFullName(person) {
return `${person.firstName} ${person.lastName}`;
}
👉 Tái sử dụng logic thay vì sao chép nó.
9. Sử Dụng Tham Số Mặc Định
Ví Dụ Kém
javascript
function greet(name) {
if (!name) {
name = "Guest";
}
console.log(`Hello, ${name}`);
}
Ví Dụ Sạch
javascript
function greet(name = "Guest") {
console.log(`Hello, ${name}`);
}
👉 Giúp mã ngắn gọn và sạch hơn.
10. Viết Kiểm Tra 🧪
Mã sạch không chỉ là về phong cách - mà còn là độ tin cậy. Sử dụng Jest, Mocha, hoặc Vitest để kiểm tra.
javascript
function add(a, b) {
return a + b;
}
test("cộng hai số", () => {
expect(add(2, 3)).toBe(5);
});
Kết Luận
Mã sạch là về sự rõ ràng, đơn giản và khả năng bảo trì. Hãy sử dụng tên gọi có ý nghĩa, viết các hàm nhỏ gọn, tránh sao chép, xử lý lỗi một cách hợp lý và giữ cho mã của bạn nhất quán. Viết mã JavaScript sạch không chỉ giúp bạn mà còn giúp cho chính bạn trong tương lai và các đồng nghiệp của bạn.
Các Thực Hành Tốt Nhất
- Sử dụng tên biến có ý nghĩa.
- Giữ các hàm nhỏ và tập trung.
- Tránh lặp lại mã nguồn.
- Xử lý lỗi một cách thanh lịch.
- Duy trì định dạng nhất quán.
Câu Hỏi Thường Gặp
1. Tại sao mã sạch lại quan trọng?
Mã sạch giúp cho việc bảo trì và sửa lỗi dễ dàng hơn trong tương lai.
2. Làm thế nào để bắt đầu viết mã sạch?
Bắt đầu bằng cách áp dụng các nguyên tắc như đặt tên có ý nghĩa, viết hàm ngắn gọn và xử lý lỗi một cách hợp lý.
3. Có công cụ nào hỗ trợ viết mã sạch không?
Có, bạn có thể sử dụng Prettier và ESLint để giúp giữ mã của bạn đồng nhất.