เจาะประเด็น
Python / Testing / AI
Wrapture: ไลบรารีใหม่ที่เขียนโดย AI 100% แต่ไม่ใช่ "vibe coding" ขี้เกียจ—มันคือวิศวกรรมที่คิดมาอย่างดี
Graham Dumpleton เจ้าพ่อ mod_wsgi ปล่อยเครื่องมือที่ทำให้การเทสต์และ tracing โค้ด Python ง่ายขึ้น—และมันคือบทพิสูจน์ว่า AI เขียนโค้ดได้ดีแค่ไหนถ้ามีคนคุม
ทีมข่าว เอไอไทย.com
⏱ อ่าน 4 นาที
คำถามที่แท้จริงของยุคนี้ไม่ใช่ "AI เขียนโค้ดได้ไหม" แต่คือ "คนที่สั่งมันรู้หรือเปล่าว่ากำลังทำอะไรอยู่" — Wrapture คือคำตอบของคำถามนั้น
ถ้าคุณเป็นคนที่ทำงานกับ Python มานาน ชื่อ Graham Dumpleton ต้องไม่แปลกหู เขาคือคนที่อยู่เบื้องหลัง mod_wsgi, ไลบรารี wrapt และ Python agent ของ New Relic—นี่คือระดับตำนานของวงการที่ไม่ได้มีคนแบบนี้บ่อยนัก และตอนนี้เขาปล่อยของใหม่ชื่อ Wrapture ออกมา
พูดง่ายๆ คือ Wrapture เอาคอนเซ็ปต์ monkeypatching จาก wrapt มาขยายให้มันใช้ได้ทั้งงาน testing และ tracing ในเวลาเดียวกัน มันจับ function หรือ method ไหนก็ได้ แล้วทำให้ทุกการเรียกใช้ถูกบันทึก หรือถูก override ให้คืนค่าอื่นแทน—เหมือนเป็นทั้งตัวแทน unittest.mock และเครื่องมือ observability ในแพ็กเกจเดียว
ฟังดูอาจไม่ว้าวเท่าไหร่ แต่เดี๋ยวก่อน—ประเด็นที่ทำให้เรื่องนี้ไม่ได้เป็นแค่ไลบรารี Python ธรรมดาๆ คือวิธีที่มันถูกสร้างขึ้นมา เพราะ Graham บอกตรงๆ ว่าโค้ดทุกบรรทัดและ documentation ทุกตัวอักษรใน Wrapture เขียนโดย AI assistant ที่ทำงานภายใต้การควบคุมของเขา
นี่คือจุดที่ผมอยากให้ทุกคนหยุดอ่านแล้วคิดตาม—เพราะมันต่างจากกระแส "vibe coding" ที่คนเอาพรอมต์เดียวไปยิงใส่ AI แล้วหวังผลลัพธ์สุดท้ายแบบมั่วๆ อย่างสิ้นเชิง Graham รู้ดีว่าเขากำลังทำอะไร เขาอยู่ในวงการนี้มานานพอจะรู้ว่าโค้ดที่ออกมาควรมีหน้าตาแบบไหน และ AI เป็นแค่เครื่องมือผลิต ไม่ใช่แหล่งออกแบบ
Wrapture มีอะไรให้ใช้บ้าง? อย่างแรกคือมันรองรับ OpenTelemetry ซึ่งเป็นมาตรฐาน observability ที่กำลังมาแรง และที่เจ๋งกว่าคือมันมีระบบ configuration-based ที่ให้คุณเพิ่ม tracing ให้โปรเจกต์ Python ที่มีอยู่แล้วได้โดยไม่ต้องแก้โค้ด—แค่เขียนไฟล์คอนฟิกแบบ TOML สั้นๆ ไม่กี่บรรทัดก็เสร็จ
Configuration-based tracing
กำหนด target, ชื่อ function ที่จะ observe และ sink ที่จะส่งข้อมูลออกไป—ทั้งหมดในไฟล์คอนฟิก ไม่ต้องแก้โค้ดเดิมสักบรรทัด
Test patterns ที่ใช้งานได้จริง
ทั้งการ stub ค่า, การ transform ผลลัพธ์จาก method เดิม—มีตัวอย่างให้เห็นชัดเจนว่ามันใช้แทน unittest.mock ได้จริง
OpenTelemetry support
เชื่อมต่อกับระบบ tracing ที่เป็นมาตรฐานได้ทันที ไม่ต้องเขียน adapter เอง
ที่สำคัญคือโปรเจกต์นี้เพิ่งอายุไม่กี่สัปดาห์—ยังเด็กมาก แต่ก็เริ่มต้นได้น่าสนใจอย่างยิ่ง และที่ทำให้มันน่าจับตามองเป็นพิเศษคือมันคือตัวอย่างแรกๆ ของ "agent-driven project" ขนาดใหญ่ที่ทำโดยคนที่รู้จริง ไม่ใช่คนที่มั่วแล้วหวังผล
ในโพสต์ถัดมา Graham ยังแสดงตัวอย่างการใช้งานจริงกับ unit testing—เช่นการผูก binding เข้ากับ method แล้วกำหนดให้มันคืนค่า stub หรือแม้แต่การเรียก method จริงแล้วค่อยแปลงผลลัพธ์ทีหลัง ซึ่งเป็นแพทเทิร์นที่ยืดหยุ่นกว่า unittest.mock แบบเดิมๆ เยอะ
สิ่งที่ผมชอบที่สุดในเรื่องนี้ไม่ใช่ตัวไลบรารี—แต่มันคือการพิสูจน์ว่า AI เขียนโค้ดได้ดีแค่ไหน ถ้าคนสั่งรู้จริงๆ ว่าต้องการอะไร Graham ไม่ได้แค่ "ลองให้ AI เขียนดู" เขาออกแบบสถาปัตยกรรมไว้ในหัว แล้วใช้ AI เป็นแขนขาที่พิมพ์โค้ดออกมาให้—นี่คืออนาคตของการพัฒนาซอฟต์แวร์ที่หลายคนยังจินตนาการไม่ถึง
Wrapture ยังเด็กเกินกว่าจะบอกว่ามันจะกลายเป็นมาตรฐานใหม่ของวงการ testing หรือเปล่า—แต่มันคือสัญญาณที่ชัดเจนว่า "AI เขียนโค้ด" กับ "วิศวกรใช้ AI เขียนโค้ด" คือคนละเรื่องกันโดยสิ้นเชิง และใครที่ยังคิดว่าการใช้ AI ในงาน dev คือการกดปุ่มแล้วรอผลลัพธ์—คุณกำลังตกยุค
ที่มา: Simon Willison's Weblog — อ่านต้นฉบับ
ความคิดเห็น 5
กำลังโหลดความคิดเห็น...