Nguyên tắc DRY trong lập trình: Áp dụng như thế nào để tối ưu mã nguồn?

Thứ Hai, 02/10/2023 · 6 phút đọc

Trong lập trình phần mềm, nguyên tắc DRY (“Don’t Repeat Yourself” – Đừng lặp lại chính bạn) được xem như một trong những nguyên tắc quan trọng nhất để giữ cho mã nguồn sạch sẽ và dễ bảo trì. Trong bài viết này, chúng ta sẽ tìm hiểu DRY là gì, tại sao nguyên tắc này quan trọng và cách áp dụng DRY trong lập trình hiệu quả.

DRY là gì?

DRY là viết tắt của “Don’t Repeat Yourself”, được giới thiệu bởi Andy Hunt và Dave Thomas trong quyển sách The Pragmatic Programmer. Nguyên tắc này khuyến khích lập trình viên không nên viết lại mã cùng chức năng nhiều lần, thông qua việc tách biệt và tái sử dụng các khía cạnh chung. Mục đích chính của DRY là giảm thiểu sự dư thừa trong mã, giúp dễ bảo trì và hạn chế sai sót khi thay đổi.

Tại sao nguyên tắc DRY quan trọng?

  1. Giảm thiểu sai sót: Khi mã có nhiều đoạn lặp lại, bất cứ khi bạn muốn thay đổi logic, bạn sẽ phải tìm kiếm và thay đổi tất cả các đoạn mã liên quan. Nếu bỏ sót một điểm nào đó, điều này có thể dẫn đến lỗi. Việc áp dụng DRY sẽ giúp giảm thiểu nguy cơ này.
  2. Tối ưu hoá việc bảo trì mã: Mã nguồn sạch sẽ và ngắn gọn hơn khi các phần logic chung được tách ra thành hàm hoặc module tái sử dụng. Việc thay đổi sẽ trở nên đơn giản vì bạn chỉ cần chỉnh sửa tại một nơi thay vì nhiều nơi khác nhau.
  3. Tăng tính tái sử dụng: Khi bạn tách biệt các logic chung thành các module hoặc hàm riêng biệt, bạn có thể tái sử dụng chúng trong nhiều ngữ cảnh khác nhau, giúp tiết kiệm thời gian và tăng tính nhất quán.

Cách áp dụng nguyên tắc DRY trong lập trình

  1. Sử dụng hàm tái sử dụng: Bất cứ khi bạn nhận thấy có một phần logic lặp lại nhiều lần trong mã, hãy tách nó thành một hàm để có thể tái sử dụng.
  2. Module hoá các chức năng chung: Các chức năng như kiểm tra đăng nhập, xử lý dữ liệu hay tương tác với cơ sở dữ liệu có thể được module hoá để tái sử dụng trong nhiều phần của ứng dụng.
  3. Sử dụng các mô hình hỗ trợ: Đối với các hệ thống lớn, bạn có thể áp dụng các mô hình như MVC (Model-View-Controller) để chia nhỏ trách nhiệm, giảm thiểu việc lặp lại các chức năng chung.

Ví dụ áp dụng DRY trong JavaScript

Dưới đây là một ví dụ đơn giản để minh hoạ cách áp dụng nguyên tắc DRY trong JavaScript:

Code không tuân thủ DRY:

function calculateAreaRectangle(width, height) {
  return width * height;
}

function calculateAreaSquare(side) {
  return side * side;
}

console.log(calculateAreaRectangle(5, 10)); // 50
console.log(calculateAreaSquare(5)); // 25

Trong ví dụ này, chúng ta có hai hàm calculateAreaRectanglecalculateAreaSquare có logic tương tự nhau. Điều này dẫn đến sự lặp lại không cần thiết.

Code tuân thủ DRY:

function calculateArea(shape, dimensions) {
  switch (shape) {
    case 'rectangle':
      return dimensions.width * dimensions.height;
    case 'square':
      return dimensions.side * dimensions.side;
    default:
      throw new Error('Unknown shape');
  }
}

console.log(calculateArea('rectangle', { width: 5, height: 10 })); // 50
console.log(calculateArea('square', { side: 5 })); // 25

Trong mã tuân thủ DRY, chúng ta sử dụng một hàm calculateArea duy nhất cho cả hình chữ nhật và hình vuông. Điều này giúp tránh lặp lại logic và dễ bảo trì hơn.

Lỗi thường gặp khi không áp dụng DRY

Không áp dụng DRY có thể khiến mã nguồn trở nên phức tạp và dễ phát sinh lỗi. Mã dư thừa khiến việc bảo trì mất nhiều thời gian và nguy cơ sai sót tăng cao, đặc biệt khi mã logic có thay đổi mà bạn quên cập nhật ở một số nơi.

Kết luận

Nguyên tắc DRY không chỉ là một quy tắc trong lập trình, mà còn là một triết lý giúp cải thiện tính hiệu quả, tính bảo trì và tính nhất quán trong phát triển phần mềm. Việc tuân thủ DRY sẽ giúp bạn tăng tính tác động và giảm thiểu những rắc rối phát sinh khi phải xử lý mã trong tương lai.

Hãy bắt đầu áp dụng nguyên tắc DRY ngay hôm nay để tăng tính chuyên nghiệp cho mã nguồn của bạn!

Thẻ:,

- Ảnh đại diện bài viết -

Không có bình luận nào

Bình luận!

Địa chỉ email của bạn sẽ không được công khai. Các trường bắt buộc được đánh dấu *.