3 คะแนน โดย GN⁺ 2024-12-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นคำถามเกี่ยวกับว่านักพัฒนาที่ไม่ใช้ ฟีเจอร์ของ IDE เช่น การเติมโค้ดอัตโนมัติ, language server หรือ Copilot จัดการกับชนิดข้อมูลและฟิลด์ต่าง ๆ ในโค้ดเบสอย่างไร
  • อยากรู้เกี่ยวกับ ขั้นตอนการพัฒนา และวิธีสำรวจโค้ดเมื่อทำงานโดยไม่มีเครื่องมือเหล่านี้ โดยเฉพาะวิธีค้นหาคำนิยามหรืออิมพลีเมนเทชันของฟังก์ชันที่อยู่ในไฟล์อื่น
  • ยกตัวอย่างว่ารู้สึกว่าทำงานได้ยากหากไม่มีฟีเจอร์ go-to-definition ของ language server และอยากทราบว่ามีวิธีใดใช้แทนได้บ้าง

1 ความคิดเห็น

 
GN⁺ 2024-12-25
ความคิดเห็นจาก Hacker News
  • หนึ่งในโปรแกรมเมอร์พูดว่าหลังจากได้พบกับโปรแกรมเมอร์ผู้พิการทางสายตา เขาได้เรียนรู้ว่าความเป็นระเบียบของโค้ดมีความสำคัญเพียงใด นักพัฒนาผู้พิการทางสายตาย้ำว่ารหัสควรมีโครงสร้างที่ชัดเจนและมีตรรกะ ซึ่งนำไปสู่ความกังวลเรื่องการพึ่งพาฟีเจอร์ของ LSP/IDE ที่อาจบดบังข้อบกพร่องเชิงโครงสร้างของ codebase ได้

  • เขากล่าวว่า LSP จำเป็นในระบบที่มีการประกาศแบบชั่วคราวจำนวนมาก ตัวอย่างเช่น React/TypeScript ในขณะที่ codebase Python ที่ไม่ใช้ framework ส่วนใหญ่สามารถใช้ shell completion ได้เพียงพอ

  • มีนักพัฒนาอย่างน้อยสองแบบที่หลีกเลี่ยง LSP/LLM กลุ่มแรกคือกลุ่มที่พึ่งพาคนอื่นเสมือนเป็นโปรโตคอลเซิร์ฟเวอร์ภาษาแบบมนุษย์ กลุ่มที่สองคือผู้ที่เก่งในการสำรวจ codebase โดยใช้เครื่องมือเก่า

  • แนะนำให้ปิดการใช้งาน LSP เป็นเวลา 1 เดือน เพื่อให้ได้เรียนรู้คุณค่าของการจัดองค์กรโปรเจกต์ การตั้งชื่อไฟล์ และ import ที่เขียนแบบชัดเจน

  • ผู้ที่ใช้ shell เป็นสภาพแวดล้อมการพัฒนามักเลือกใช้เครื่องมือ CLI เพื่อคุ้นเคยกับโค้ด รักการคอมไพล์และการเช็กไทป์ที่รวดเร็ว และหลีกเลี่ยงสิ่งรบกวนทางสายตาจาก IDE

  • เขาแชร์ประสบการณ์ทำงานด้วย vim แบบไม่พึ่งตัวช่วย โดยชี้ว่าสำคัญมากในการใช้ tab และการตั้งชื่อให้ดี

  • เขาเปรียบเทียบกับการขับรถโดยไม่ใช้ GPS และเน้นว่าความคุ้นเคยเชิงลึกกับ codebase สำคัญมาก เขาไม่ได้ปฏิเสธ LSP แต่ยังคงชอบเครื่องมือแนว vim

  • เขาเชื่อว่าความช่วยเหลือมากมายอาจรบกวนได้ และการโฟกัสในสภาพแวดล้อมที่เงียบจึงสำคัญ ใช้มาตรฐาน POSIX utility เพื่ออ่านและค้นหาโค้ด

  • เขากล่าวว่าการจำและความเจ็บปวดเป็นสิ่งที่ช่วยให้การเรียนรู้ได้ผล เขาพบว่าการตั้งค่า vim ให้น้อยที่สุดช่วยให้เข้าใจความซับซ้อนของ Linux และภาษามากขึ้น

  • เขาได้ข้อสรุปว่าชุดเครื่องมือสมัยใหม่ช่วยรักษาผลผลิตได้แม้ไม่อยู่ในภาวะ flow ซึ่งกระตุ้นให้ลองใช้ความสามารถแบบสมัยใหม่เช่น VSCode