แสดงความคิดเห็นหน้าที่ของคุณเสมอ..!!
การแสดงความคิดเห็นเกี่ยวกับบางสิ่งนั้นเป็นวิธีการหนึ่งสำหรับบางคนในการตัดสินหรือให้มุมมองที่แตกต่างออกไปเกี่ยวกับบางสิ่ง ไม่ว่าจะเป็นในแง่ดีหรือไม่ดีในกระบวนการ เราจะพิจารณาว่าเราจะปรับปรุงตามความคิดเห็นนั้นหรือเพียงแค่เพิกเฉยต่อความคิดเห็นนั้น ที่มอบให้กับเรา
แต่ในโพสต์นี้ เราจะไม่พูดถึงเรื่องการเมือง แต่เป็นเรื่องทางเทคนิคเกี่ยวกับการพัฒนาเว็บมากกว่า และมุมมองของฉันคือทำไมเราต้องทำสิ่งนี้ในระหว่างที่เราเขียนโค้ดของเรา
ในการสนทนาของเราครั้งนี้ เราจะเห็นความสำคัญของการแสดงความคิดเห็นเกี่ยวกับฟังก์ชันที่เราสร้างขึ้นเอง แน่นอนว่าใน JavaScript ลองนึกภาพเรามีฟังก์ชั่นดังนี้:
function setLocation(x, y) {
window.location.href = `${x}://${y}`;
}
window.location.href = `${x}://${y}`;
คำอธิบายของข้อโต้แย้ง คืออะไร `x`
และ`y`
? ว่าเราจะกรอก`object`
หรือ`string`
หรืออาจจะกรอกพิเศษอะไรหรือเปล่า อีกอันหนึ่งเราใช้ Typescript กลไกข้อมูลประเภทจะทำโดย Typescript เองในรันไทม์หรืออาจอยู่ระหว่างการพัฒนาแต่เราจะใช้งาน JavaScript ได้อย่างไร
ใช่ ใน JavaScript (JS) อาร์กิวเมนต์ใน`setLocation`
ฟังก์ชันจะถูกแสดงโดยโปรแกรมแก้ไข IntelliSenseซึ่ง`any`
หมายถึงข้อมูลใดก็ตามที่ได้รับอนุญาต
อย่างที่คุณเห็นโดยพื้นฐานแล้ว มีปัญหาสองอย่างที่นี่ Computerและ a Humanเมื่อคอมพิวเตอร์อ่านโค้ดจะทำงานต่อไปไม่ว่าเราจะตั้งอาร์กิวเมนต์ชื่ออะไร แต่แล้วHumanล่ะ?
ฟังก์ชั่นที่เราสร้างจะยากสำหรับนักพัฒนาคนต่อไป (มนุษย์) ที่จะเข้าใจ เพราะไม่รู้จะส่งอะไรไปยัง`setLocation`
ฟังก์ชั่น มันต่างออกไป ถ้าเราแสดงความคิดเห็น
// 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}`;
}
เราจะพยายามแสดงความคิดเห็นเกี่ยวกับฟังก์ชั่นที่เราสร้างขึ้นตามมาตรฐานของJSDocเราจะเปลี่ยนความคิดเห็นด้านบนเป็นเช่นนี้
/**
* 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}`;
}
แท้จริงแล้วIntelliSenseสามารถช่วยผู้ใช้กำหนดสิ่งที่ควรส่งในฟังก์ชันนั้นเมื่อเราต้องการใช้ แต่ก็ไม่ได้เข้มงวด ในการพิมพ์ทั้งหมด
ซึ่งจะมีประโยชน์มากโดยเฉพาะถ้าเรามีฟังก์ชันที่เราควรส่ง data object เป็นพารามิเตอร์ของฟังก์ชัน เช่น เรามีฟังก์ชันแบบนี้
/**
* @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
};
}
เช่น เดียวกับ IntelliSenseทั่วไปที่จะให้คำแนะนำแก่เรา และคุณก็รู้ว่าสิ่งที่น่าสนใจกว่าสำหรับแนวทางนี้คือ
ในภาพด้านบนเราจะป้อนข้อมูลตามคำแนะนำจากIntelliSenseแน่นอนเราจะได้รับคำแนะนำจากบรรณาธิการของเรา น่าสนใจใช่ไหม
คำถามต่อไปคือเราควรแสดงความคิดเห็นเกี่ยวกับฟังก์ชันทั้งหมดที่เราสร้างขึ้นหรือไม่? ไม่แน่นอน ตัวอย่างของฟังก์ชันเช่นนี้
const sum = (firstNum, secondNum) => firstNum + secondNum;
บทสรุป
แสดงความคิดเห็นเกี่ยวกับฟังก์ชันของเรา ขึ้นอยู่กับว่าจะใช้อย่างไร พารามิเตอร์ที่กำหนดนั้นซับซ้อนมาก ? หรือสามารถอ่านได้จากฟังก์ชันการตั้งชื่อและอาร์กิวเมนต์ ที่ สร้างขึ้น?
แต่ถ้าคุณรู้สึกว่าฟังก์ชันนี้จำเป็นต้องได้รับการแสดงความคิดเห็น นั่นจะดีกว่า เพราะมันคือการทำให้นักพัฒนาคนต่อไป (มนุษย์) ดูแลได้ง่ายขึ้น
ขอขอบคุณ.