แสดงความคิดเห็นหน้าที่ของคุณเสมอ..!!

Nov 26 2022
การแสดงความคิดเห็นเกี่ยวกับบางสิ่งบางอย่างโดยพื้นฐานแล้วเป็นวิธีการหนึ่งสำหรับบางคนในการตัดสินหรือให้มุมมองที่แตกต่างออกไปเกี่ยวกับบางสิ่ง ไม่ว่าจะเป็นในแง่ดีหรือไม่ดีในกระบวนการ เราจะพิจารณาว่าเราจะปรับปรุงตามความคิดเห็นนั้นหรือเพียงแค่เพิกเฉยต่อความคิดเห็นนั้น ที่มอบให้กับเรา แต่ในโพสต์นี้ เราจะไม่พูดถึงเรื่องการเมือง แต่เป็นเรื่องทางเทคนิคเกี่ยวกับการพัฒนาเว็บมากกว่า และมุมมองของฉันคือทำไมเราต้องทำสิ่งนี้ในระหว่างที่เราเขียนโค้ดของเรา
ภาพถ่ายโดย Ferenc Almasi บน Unsplash

การแสดงความคิดเห็นเกี่ยวกับบางสิ่งนั้นเป็นวิธีการหนึ่งสำหรับบางคนในการตัดสินหรือให้มุมมองที่แตกต่างออกไปเกี่ยวกับบางสิ่ง ไม่ว่าจะเป็นในแง่ดีหรือไม่ดีในกระบวนการ เราจะพิจารณาว่าเราจะปรับปรุงตามความคิดเห็นนั้นหรือเพียงแค่เพิกเฉยต่อความคิดเห็นนั้น ที่มอบให้กับเรา

แต่ในโพสต์นี้ เราจะไม่พูดถึงเรื่องการเมือง แต่เป็นเรื่องทางเทคนิคเกี่ยวกับการพัฒนาเว็บมากกว่า และมุมมองของฉันคือทำไมเราต้องทำสิ่งนี้ในระหว่างที่เราเขียนโค้ดของเรา

ในการสนทนาของเราครั้งนี้ เราจะเห็นความสำคัญของการแสดงความคิดเห็นเกี่ยวกับฟังก์ชันที่เราสร้างขึ้นเอง แน่นอนว่าใน 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;

บทสรุป

แสดงความคิดเห็นเกี่ยวกับฟังก์ชันของเรา ขึ้นอยู่กับว่าจะใช้อย่างไร พารามิเตอร์ที่กำหนดนั้นซับซ้อนมาก ? หรือสามารถอ่านได้จากฟังก์ชันการตั้งชื่อและอาร์กิวเมนต์ ที่ สร้างขึ้น?

แต่ถ้าคุณรู้สึกว่าฟังก์ชันนี้จำเป็นต้องได้รับการแสดงความคิดเห็น นั่นจะดีกว่า เพราะมันคือการทำให้นักพัฒนาคนต่อไป (มนุษย์) ดูแลได้ง่ายขึ้น

ขอขอบคุณ.