เจาะประเด็น
Python / Tools
แก้ปัญหาพายทอนพังตอนลองของใหม่ด้วยวิธีดิบแต่ได้ผล
เมื่อขยับไปใช้เวอร์ชันใหม่แล้วติดบั๊ก ลบไฟล์ล็อกทิ้งซะแล้วชีวิตจะดีขึ้นเอง
ทีมข่าว เอไอไทย.com
⏱ อ่าน 2 นาที
บางทีเครื่องมือจัดการ dependency ตัวเก่งก็สร้างปัญหาให้เราซะเองจากการพยายามฉลาดเกินไป
พอเราลองขยับขยายโปรเจกต์ไปใช้ Python 3.15 ที่เพิ่งมาใหม่ สิ่งที่มักจะตามมาคือความมึนงงกับ dependency ที่พังไม่เป็นท่า และในฐานะคนที่คลุกคลีกับวงการนี้มานาน Simon Willison แกเจอทางออกที่ทั้งง่ายและตรงไปตรงมาจนน่าตกใจ
เรื่องมันเริ่มจากเวลาที่เราซนไปรันเทสโค้ดด้วยเครื่องมืออย่าง uv แล้วเจ้ากรรมนายเวรมันดันสร้างไฟล์ uv.lock ค้างเอาไว้ในเครื่อง แม้ว่าเราจะตั้งค่าใน .gitignore ให้มันไม่หลุดไปขึ้นกิตฮับก็เถอะ แต่มันก็ยังนอนนิ่งอยู่แถวๆ นั้นแหละ
ปกติแล้วสำหรับคนทำไลบรารี การมีไฟล์ล็อกพวกนี้ติดไว้มันถือว่าเสียมารยาทนิดหน่อย เพราะเราไม่อยากไปบังคับตายตัวว่าคนอื่นที่เอาของเราไปใช้ต้องล็อกเวอร์ชันเป๊ะตามที่เรากำหนด แต่พอมันเผลอมีไฟล์นี้คาไว้บนเครื่องเนี่ยแหละ ตัวปัญหาจึงบังเกิด
ล่าสุดเขาก็เพิ่งเจอเคสปวดหัวสดๆ ร้อนๆ ตอนรันติดตั้งไลบรารีแล้วเจออีเรอร์ฟ้องหน้าตาเฉยว่าตัวแปลภาษารุ่นใหม่ล่าสุดมันล้ำหน้าเกินกว่าที่ไลบรารีตัวนั้นจะรองรับไหว จนถึงขั้นคอมไพล์ไม่ผ่านกันเลยทีเดียว
ปัญหานี้มันสะท้อนให้เห็นว่าความพยายามในการล็อกเวอร์ชันให้เป๊ะของเครื่องมือสมัยใหม่อาจกลายเป็นดาบสองคม เวลาที่สภาพแวดล้อมรอบตัวมันวิ่งเร็วกว่าตัวแพ็กเกจที่เราใช้
ทางแก้ของเขาก็ไม่มีอะไรซับซ้อนเลย แค่กดลบไฟล์ตัวต้นเหตุนั้นทิ้งไปซะ แล้วสั่งรันคำสั่งเทสใหม่ แค่นี้ทุกอย่างก็กลับมาใช้งานได้ราบรื่นเหมือนเดิมแบบงงๆ
บางครั้งวิธีแก้ปัญหาทางเทคนิคที่ดูโคตรจะบ้านๆ อย่างการลบไฟล์ทิ้งเนี่ยแหละเวิร์กที่สุดแล้ว ไม่ต้องไปนั่งงัดแงะแก้โค้ดให้เสียเวลา
ที่มา: Simon Willison's Weblog — อ่านต้นฉบับ
ความคิดเห็น 1
กำลังโหลดความคิดเห็น...