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