วิธีแก้ขัดเมื่อ open-source framework ภาษา GOเปลี่ยน แล้วมันทำให้งานของเราทำงานอย่างเดิมไม่ได้

Tossapon Nuanchuay
ntossapo
Published in
1 min readJan 29, 2017

เรื่องมีอยู่ว่ากำลังเร่งปั่นงาน NSC ที่ใช้ kataras/iris ในการพัฒนา ซึ่งอัพเดทบ่อยมากๆและ Test coverage ไม่มากพอ ถึงแม้ว่า build ใน ci ผ่าน แต่ก็ยังมี bug หลงเหลืออยู่ดี

หากนึกถึงปัญหาไม่ออกลองคิดดู เมื่อเจ้าของเฟรมเวิร์คเองแก้ code บางอย่าง เช่น

ctx.HostString()

เป็น

ctx.Host()

ผลกระทบมาทันทีเหมือน Butterfly Effect

ของเจ้าของเปลี่ยนนิดหน่อย ของเราเปลี่ยนเยอะเลยเพราะนำไปใช้เยอะมากและไม่รู้ว่าไฟล์ไหนต่อไฟล์ไหนบ้างที่ใช้ ต้องย้อนกลับไปอ่าน CHANGELOG กันเลย

ปัญหาสดๆร้อนเมื่อคืนวันที่ 30 มกราคม 2017 พบเห็นว่า web-socket ของ iris นั้นทำงานติดๆขัดๆ คือ อยู่ๆก็ close connection ไปดื้อๆ ไม่มีปี่ไม่มีขลุ่ย

พบเจออย่างนั้นก็ลองเอา file example ของเค้ามาลองรันดูก็เป็นเหมือนกันเลยแจ้ง issue ไป

ตามปกติแล้วหลังจากแจ้ง issue ก็ควรทำตัวมีประโยชน์โดยการไปหาว่ามันผิดพลาดตรงไหน ก็ลองตามๆไป ตามไป ตามมา ดันข้ามโปรเจคไปอยู่ใน kataras/go-websocket ซะงั้น ตามอ่านทั้ง .js และ .go ก็ไม่ค่อยจะรู้เรื่องและรู้สึกเสียวสันหลังเพราะงานมันก็ใกล้จะส่งเลย กระวนกระวาย หัวใจเต้นแรง

อยู่ๆก็เกิด idea

ทำไมเราไม่ลอง checkout กลับไป version เก่าวะ!!

จากนั้นก็ลอง checkout กลับไปยัง version เก่า ประมาณ 24 วันที่แล้ว รู้สึกหายใจคล่องขึ้นมาทันที โปรแกรมทำงานได้ปกติดี โล่งไปอีกหนึ่งงาน

แต่ก็อย่าลืมงานอีกงานคือตามหาเบาะแสปัญหาที่เกิดขึ้นใน commit ใหม่ ถ้าหาได้ก็ช่วยๆกันแก้ แต่ตอนนี้ตี 3 แล้วขอนอนก่อนละกัน Zzz

--

--