Luôn bình luận chức năng của bạn ..!!

Nov 26 2022
Bình luận về điều gì đó về cơ bản là cách để ai đó đánh giá hoặc đưa ra một quan điểm khác về điều gì đó, cho dù đó là điều tốt hay xấu trong quá trình này, chúng tôi sẽ xem xét liệu chúng tôi sẽ cải thiện dựa trên điều đó hay chỉ bỏ qua nó, theo nhận xét mà đã cho chúng tôi. Tuy nhiên, trong bài đăng này, chúng ta sẽ không nói về chính trị mà nói về kỹ thuật Phát triển Web nhiều hơn và quan điểm của tôi là tại sao chúng ta cần làm điều này trong khi viết mã.
Ảnh của Ferenc Almasi trên Bapt

Bình luận về điều gì đó về cơ bản là cách để ai đó đánh giá hoặc đưa ra một quan điểm khác về điều gì đó, cho dù đó là điều tốt hay xấu trong quá trình này, chúng tôi sẽ xem xét liệu chúng tôi sẽ cải thiện dựa trên điều đó hay chỉ bỏ qua nó, theo nhận xét mà đã cho chúng tôi.

Tuy nhiên, trong bài đăng này, chúng ta sẽ không nói về chính trị mà nói về kỹ thuật Phát triển Web nhiều hơn và quan điểm của tôi là tại sao chúng ta cần làm điều này trong khi viết mã.

Trong phần thảo luận của chúng ta lần này, chúng ta sẽ thấy tầm quan trọng của việc bình luận về một chức năng mà chúng ta đã tự tạo ra, tất nhiên là bằng JavaScript. Hãy tưởng tượng chúng ta có một chức năng như thế này:

function setLocation(x, y) {
  window.location.href = `${x}://${y}`;
}

window.location.href = `${x}://${y}`;

Lời giải thích của các đối số `x``y`là gì? cho dù chúng tôi sẽ điền vào `object`hoặc `string`có thể chúng tôi có thể điền vào một số đầu vào đặc biệt? khác, chúng tôi sử dụng Bản mô tả, cơ chế dữ liệu loại sẽ được thực hiện bởi chính Bản mô tả trong thời gian chạy hoặc có thể trong quá trình phát triển , nhưng chúng ta sử dụng JavaScript thì sao?

Có, trong JavaScript (JS), các đối số trong `setLocation`hàm sẽ được trình soạn thảo IntelliSense hiển thị có nghĩa là `any`bất kỳ dữ liệu nào sẽ được cho phép.

Về cơ bản, như bạn có thể thấy, có hai vấn đề ở đây; ComputerHuman , khi máy tính đọc mã sẽ tiếp tục chạy bất kể tên đối số chúng ta đã đặt, nhưng Human thì sao?

Hàm chúng ta tạo ra sẽ khó hiểu đối với nhà phát triển tiếp theo (Con người), vì không biết gửi gì cho `setLocation`hàm, nếu chúng ta để lại nhận xét thì khác.

// args `x` with data type string, is a protocol
// args `y` with data type string, is a domain name
function setLocation(x, y) {
  window.location.href = `${x}://${y}`;
}

Chúng ta sẽ thử comment trên hàm mà chúng ta đã tạo, theo tiêu chuẩn của JSDoc thì chúng ta sẽ thay comment ở trên thành như sau

/**
 * A function that can be executed on address bar browser
 * @param {string} x a host url
 * @param {string} y a domain url
 */
function setLocation(x, y) {
  window.location.href = `${x}://${y}`;
}

Thật vậy, IntelliSense chỉ có thể giúp người dùng xác định những gì sẽ được gửi trong chức năng đó khi chúng tôi muốn sử dụng chức năng đó, nhưng nó không hoàn toàn được gõ nghiêm ngặt .

Điều này rất hữu ích, đặc biệt nếu chúng ta có một hàm mà chúng ta nên gửi một đối tượng dữ liệu làm tham số của hàm, ví dụ: chúng ta có một hàm như thế này

/**
 * @param {object} fullName
 * @param {string} fullName.firstName your first name
 * @param {string} fullName.lastName your last name
 */
function overwriteData(fullName) {
  return {
    firstName: "Adib",
    lastName: "Firman",
    ...fullName
  };
}

Giống như IntelliSense thông thường sẽ cho chúng tôi một gợi ý và bạn biết rằng điều thú vị hơn đối với phương pháp này là

Ở hình trên chúng ta sẽ nhập dữ liệu theo hướng dẫn từ IntelliSense tất nhiên chúng ta sẽ nhận được gợi ý từ trình soạn thảo, thú vị phải không?

Câu hỏi tiếp theo là chúng ta có nên bình luận về tất cả các chức năng mà chúng ta đã tạo không? Tất nhiên là không, một ví dụ về chức năng như thế này

const sum = (firstNum, secondNum) => firstNum + secondNum;

Phần kết luận

Đặt một số nhận xét về chức năng của chúng tôi, tùy thuộc vào cách nó sẽ được sử dụng, các tham số đã cho có phức tạp không? hoặc nó có thể đọc được từ chức năng đặt tên và các đối số được tạo không?

Nhưng nếu bạn cảm thấy rằng chức năng cần được đưa ra nhận xét, điều đó tốt hơn, bởi vì nó giúp nhà phát triển tiếp theo (Con người) dễ dàng bảo trì hơn.

Cảm ơn bạn.