- บทความที่ถกเถียงเรื่องความสามารถในการอ่านของโค้ดแบบเชิงเส้น โดยท้าทายมุมมองที่นำเสนอใน Google Testing Blog
- ผู้เขียนไม่เห็นด้วยกับข้ออ้างของ Google Testing Blog ที่ว่าฟังก์ชันซึ่งแยกระดับของ abstraction ออกมาจะอ่านง่ายกว่า
- ผู้เขียนโต้แย้งว่าโค้ดแบบเชิงเส้นที่อ่านจากบนลงล่างนั้นเป็นธรรมชาติกว่าและเข้าใจง่ายกว่าโค้ดที่ต้องสลับไปมาระหว่างหลายระดับของ abstraction
- ผู้เขียนอธิบายข้อโต้แย้งนี้ด้วยตัวอย่างฟังก์ชันอบพิซซ่า พร้อมตั้งคำถามว่าฟังก์ชันอบพิซซ่าควรอุ่นเตาอบเองหรือควรคาดหวังให้มีการอุ่นเตาอบไว้ล่วงหน้า
- ผู้เขียนเสนอว่าความอ่านง่ายของโค้ดไม่ได้เกิดจากโครงสร้างที่แยกระดับ abstraction แต่เกิดจากการอธิบายอย่างชัดเจนว่าแต่ละส่วนของโค้ดทำอะไร
- ผู้เขียนคัดค้านการแยกฟังก์ชันย่อยออกจากโค้ดเชิงเส้น โดยสรุปว่าโดยเฉพาะในกรณีที่ถูกใช้งานเพียงครั้งเดียว ประโยชน์ที่ได้ไม่คุ้มกับการสูญเสียความเป็นเชิงเส้น
- ผู้เขียนยังชี้ให้เห็นปัญหาที่อาจเกิดขึ้นกับฟังก์ชันอบพิซซ่า โดยตั้งคำถามว่าทำไมจึงต้องสร้างเตาอบใหม่ทุกครั้งที่ทำพิซซ่า ซึ่งอาจก่อให้เกิดปัญหาด้านประสิทธิภาพในโค้ดจริง
- ผู้เขียนเสนอว่าเตาอบควรเป็นพารามิเตอร์ของฟังก์ชัน และผู้เรียกควรเป็นผู้รับผิดชอบในการจัดเตรียมมัน อีกทั้งฟังก์ชันควรคืนค่าเป็นกล่องแทนที่จะเป็นพิซซ่า
1 ความคิดเห็น
ความคิดเห็นบน Hacker News