นักพัฒนาสร้างไลบรารีอ่าน HTML5 จากศูนย์โดยใช้ LLM ช่วย ผ่านการทดสอบ 100%
Body
Emil Stenström Head of AI Product จากบริษัท Odevo เล่าถึงประสบการณ์การสร้างไลบรารี JustHTML ที่เป็น HTML5 parser ที่เขียนด้วยภาษาไพธอนล้วนๆ และไม่มีการใช้ไลบรารีอื่นภายนอก เครื่องมือสำคัญที่เขาใช้คือ LLM ช่วยเขียนโปรแกรม
เป้าหมายของการพัฒนาคือการสร้างไลบรารีที่ผ่านการทดสอบ html5lib-tests ช่วงแรกของการพัฒนา Stenström ใช้ GitHub Copilot ใน Agent Mode พัฒนาจากศูนย์จนกระทั่งผ่านการทดสอบถึง 30% แต่ก็เริ่มตัน จนกระทั่งเขาใช้ Cluade Sonnet 3.7 จึงค่อยๆ แก้ไขมาเรื่อยๆ จนผ่านถึง 100% แต่โค้ดทำงานช้ามากๆ ระหว่างนั้นเขาออปติไมซ์ด้วยการพอร์ต tokenizer ไปเขียนด้วย Rust ซึ่งทำให้เร็วขึ้น แต่ Stenström ไม่เข้าใจโค้ดใน Rust เลย
Stenström หันไปดูโค้ดโครงการ html5ever ที่เขียนด้วย Rust แล้วพบว่าประสิทธิภาพดีมาก เขาจึงอาศัยการพอร์ตโครงสร้างจาก html5ever มาและพัฒนาโครงการจนผ่านการทดสอบทั้งหมด จากนั้นให้ Gemini 3 Pro ออปติไมซ์โค้ดในภาษาไพธอนโดยตรง และได้โค้ดที่เร็วขึ้นจนน่าพอใจ จากนั้นก็รันทดสอบเพื่อลบโค้ดที่ไม่ถูกใช้งานออกไป แล้วรัน fuzzer เพื่อสร้างโค้ดตัวอย่าง 3 ล้านไฟล์เพื่อตรวจสอบว่ามีจุดใดทำให้แครชได้หรือไม่ ถึงจุดนี้ไลบรารีก็พร้อมใช้งาน
Stenström สรุปบทเรียนจากการพัฒนาไลบรารี JustHTML และการเขียนโค้ดด้วย AI ไว้ 5 ข้อ
ตัวโครงการ JustHTML ใช้เวลาพัฒนารวมเกือบ 1 ปี (ดูจาก AI ที่ใช้ต่างกันหลายรุ่น Gemini 3 Pro เพิ่งออกมาไม่นาน) โค้ดรวมมีความยาว 3,000 บรรทัด Stenström ยืนยันว่าไม่มีทางพัฒนาได้เร็วขนาดนี้หากไม่มี AI agent แต่ก็ยังต้องตรวจโค้ดและตัดสินใจจำนวนมาก
ที่มา - FriendlyBit
lew Tue, 16/12/2025 - 12:37
Continue reading...
Body
Emil Stenström Head of AI Product จากบริษัท Odevo เล่าถึงประสบการณ์การสร้างไลบรารี JustHTML ที่เป็น HTML5 parser ที่เขียนด้วยภาษาไพธอนล้วนๆ และไม่มีการใช้ไลบรารีอื่นภายนอก เครื่องมือสำคัญที่เขาใช้คือ LLM ช่วยเขียนโปรแกรม
เป้าหมายของการพัฒนาคือการสร้างไลบรารีที่ผ่านการทดสอบ html5lib-tests ช่วงแรกของการพัฒนา Stenström ใช้ GitHub Copilot ใน Agent Mode พัฒนาจากศูนย์จนกระทั่งผ่านการทดสอบถึง 30% แต่ก็เริ่มตัน จนกระทั่งเขาใช้ Cluade Sonnet 3.7 จึงค่อยๆ แก้ไขมาเรื่อยๆ จนผ่านถึง 100% แต่โค้ดทำงานช้ามากๆ ระหว่างนั้นเขาออปติไมซ์ด้วยการพอร์ต tokenizer ไปเขียนด้วย Rust ซึ่งทำให้เร็วขึ้น แต่ Stenström ไม่เข้าใจโค้ดใน Rust เลย
Stenström หันไปดูโค้ดโครงการ html5ever ที่เขียนด้วย Rust แล้วพบว่าประสิทธิภาพดีมาก เขาจึงอาศัยการพอร์ตโครงสร้างจาก html5ever มาและพัฒนาโครงการจนผ่านการทดสอบทั้งหมด จากนั้นให้ Gemini 3 Pro ออปติไมซ์โค้ดในภาษาไพธอนโดยตรง และได้โค้ดที่เร็วขึ้นจนน่าพอใจ จากนั้นก็รันทดสอบเพื่อลบโค้ดที่ไม่ถูกใช้งานออกไป แล้วรัน fuzzer เพื่อสร้างโค้ดตัวอย่าง 3 ล้านไฟล์เพื่อตรวจสอบว่ามีจุดใดทำให้แครชได้หรือไม่ ถึงจุดนี้ไลบรารีก็พร้อมใช้งาน
Stenström สรุปบทเรียนจากการพัฒนาไลบรารี JustHTML และการเขียนโค้ดด้วย AI ไว้ 5 ข้อ
- บอกเป้าหมายที่วัดได้ให้ AI: อย่าบอกว่าให้ปรับปรุงโค้ดเฉยๆ แต่บอกชุดทดสอบที่ต้องการทดสอบ
- ตรวจสอบโค้ดเสมอ เพื่อเรียนรู้จากโค้ดที่ AI เขียนด้วย
- บอกให้ AI คิดใหม่ได้ บางครั้งโค้ดดูไม่ดี ก็อาจจะบอกแค่ว่าไม่ชอบโค้ดที่ AI เขียนมา เพื่อให้มันเสนอแนวทางใหม่
- เก็บโค้ดใน version control เสมอ เพื่อจะได้ย้อนกลับได้
- ปล่อยให้ AI ทำผิดพลาด เพื่อให้มันเก็บเป็นความรู้ อย่าแก้ไขทุกความผิดพลาดไปทั้งหมด
ตัวโครงการ JustHTML ใช้เวลาพัฒนารวมเกือบ 1 ปี (ดูจาก AI ที่ใช้ต่างกันหลายรุ่น Gemini 3 Pro เพิ่งออกมาไม่นาน) โค้ดรวมมีความยาว 3,000 บรรทัด Stenström ยืนยันว่าไม่มีทางพัฒนาได้เร็วขนาดนี้หากไม่มี AI agent แต่ก็ยังต้องตรวจโค้ดและตัดสินใจจำนวนมาก
ที่มา - FriendlyBit
lew Tue, 16/12/2025 - 12:37
Continue reading...