คุณจะใช้การพิมพ์เป็ดในจาวาสคริปต์โดยไม่ตรวจสอบคุณสมบัติและวิธีการได้อย่างไร
ง่าย: ไม่ต้องตรวจสอบคุณสมบัติและวิธีการเสมอไป
ในรูบีสิ่งที่คุณกำลังโทรเรียกว่า "ไก่พิมพ์" ในภาษาที่พิมพ์เป็ดแบบไดนามิกคุณเพียงแค่เชื่อว่าผู้ที่โทรหาคุณผ่านวัตถุที่เหมาะสม เป็นหน้าที่ของผู้โทรที่จะให้เกียรติสัญญาของเขา
ฉันรู้ว่าจาวาสคริปต์ใช้การพิมพ์เป็ดและตอนแรกฉันคิดว่านี่จะทำให้ความแตกต่างง่ายเมื่อเทียบกับภาษาที่พิมพ์อย่างยิ่งเช่น C #
คุณกำลังสับสนในการพิมพ์หลายแกนในแนวตั้ง มีการพิมพ์สี่แกนตั้งฉาก:
- เมื่อ : การพิมพ์แบบไดนามิก (ไม่รู้จักและตรวจสอบประเภทจนกว่าจะถึงรันไทม์) กับการพิมพ์แบบคงที่ (รู้จักและตรวจสอบประเภทก่อนรันไทม์)
- อะไร : การพิมพ์เป็ด (ประเภทจะขึ้นอยู่กับพฤติกรรม ), การพิมพ์โครงสร้าง (ประเภทจะขึ้นอยู่กับโครงสร้าง ) และการพิมพ์เล็กน้อย (ประเภทจะขึ้นอยู่กับชื่อ )
- เห็นไหม การพิมพ์ที่ชัดเจน (ประเภทจะต้องมีคำอธิบายประกอบอย่างชัดเจน) กับการพิมพ์โดยนัย (ประเภทจะอนุมาน)
- การพิมพ์ที่รัดกุมและการพิมพ์ที่ไม่รัดกุม - คุณอาจสังเกตเห็นว่าฉันไม่ได้ให้ชื่อลวงหรือคำอธิบายในวงเล็บเพราะนี่ไม่เหมือนคำศัพท์ทั้งเจ็ดด้านบน มีคำนิยามที่คลุมเครือประมาณครึ่งโหลซึ่งขัดแย้งกัน เป็นการดีที่คุณควรหลีกเลี่ยงข้อกำหนดเหล่านี้โดยสิ้นเชิงและหากคุณต้องใช้ให้กำหนดอย่างแม่นยำก่อน
เนื่องจากคุณกล่าวถึง C #: ส่วนใหญ่จะเป็นแบบสแตติก แต่สนับสนุนการพิมพ์แบบไดนามิกผ่านประเภทdynamic
ส่วนใหญ่จะถูกพิมพ์ชื่อ แต่ประเภทที่ไม่ระบุชื่อใช้การพิมพ์โครงสร้างและรูปแบบประโยค - พิมพ์หรือพิมพ์โครงสร้างส่วนใหญ่จะพิมพ์อย่างชัดเจน แต่สนับสนุนการพิมพ์โดยนัยสำหรับอาร์กิวเมนต์ประเภททั่วไปและตัวแปรท้องถิ่น (แม้ว่ากรณีตัวแปรท้องถิ่นค่อนข้างแปลกเมื่อเทียบกับภาษาอื่น ๆ ส่วนใหญ่เพราะคุณไม่สามารถออกจากประเภทแทนคุณต้อง ให้มันหลอกประเภทที่ชัดเจนvar
กล่าวอีกนัยหนึ่งถ้าคุณต้องการประเภทที่แน่นอนคุณต้องพูดอย่างนั้น) ไม่ว่า C # นั้นจะพิมพ์อย่างรุนแรงหรือไม่ก็ตามเป็นคำนิยามของคำสองคำที่คุณใช้อย่างไรก็ตามโปรดทราบว่าอาจมีข้อผิดพลาดประเภท runtime มากมายใน C # โดยเฉพาะอย่างยิ่งเนื่องจากความแปรปรวนของอาร์เรย์ที่ไม่ปลอดภัย
ฉันรู้ว่าฉันไม่สามารถตรวจสอบได้ แต่การติดตามข้อผิดพลาดรันไทม์ของจาวาสคริปต์อาจเป็นฝันร้ายเพราะพวกเขามักจะไม่เกิดขึ้นเมื่อเกิดข้อผิดพลาดในรหัส
การดีบักไม่ใช่ทักษะที่ง่ายต่อการเรียนรู้ อย่างไรก็ตามมีเทคนิคในการทำให้การดีบักง่ายขึ้นเช่นSaff Squeezeเป็นเทคนิคที่อธิบายโดย Kent Beck ซึ่งใช้การทดสอบและการปรับโครงสร้างใหม่สำหรับการดีบัก:
การทดสอบการถดถอยและ Saff Squeeze
Kent Beck สถาบันทรีริเวอร์ส
บทคัดย่อ: เพื่อแยกข้อบกพร่องได้อย่างมีประสิทธิภาพเริ่มต้นด้วยการทดสอบระดับระบบและแบบอินไลน์และพรุนอย่างต่อเนื่องจนกว่าคุณจะมีการทดสอบที่เล็กที่สุดที่เป็นไปได้ที่แสดงให้เห็นข้อบกพร่อง