Ask HN: โปรแกรมเมอร์ที่ไม่ใช้การเติมโค้ดอัตโนมัติ/LSP ทำงานกันอย่างไร?
(news.ycombinator.com)- เป็นคำถามเกี่ยวกับว่านักพัฒนาที่ไม่ใช้ ฟีเจอร์ของ IDE เช่น การเติมโค้ดอัตโนมัติ, language server หรือ Copilot จัดการกับชนิดข้อมูลและฟิลด์ต่าง ๆ ในโค้ดเบสอย่างไร
- อยากรู้เกี่ยวกับ ขั้นตอนการพัฒนา และวิธีสำรวจโค้ดเมื่อทำงานโดยไม่มีเครื่องมือเหล่านี้ โดยเฉพาะวิธีค้นหาคำนิยามหรืออิมพลีเมนเทชันของฟังก์ชันที่อยู่ในไฟล์อื่น
- ยกตัวอย่างว่ารู้สึกว่าทำงานได้ยากหากไม่มีฟีเจอร์ go-to-definition ของ language server และอยากทราบว่ามีวิธีใดใช้แทนได้บ้าง
1 ความคิดเห็น
ความคิดเห็นจาก 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