
EVE ย้ายโค้ด 2.4 ล้านบรรทัด บทเรียนสำหรับสคริปต์เก่าที่ออฟฟิศไม่กล้าแตะ
EVE Online เริ่มย้ายโค้ด 2.4 ล้านบรรทัด แปลว่าเบื้องหลังเกมทั้งระบบกำลังถูกปรับโดยผู้เล่นยังเล่นต่อ ตามประกาศวันที่ 25 สิงหาคม 2026 ครับ เป้าหมายคือย้ายไป Python 3 ซึ่งเป็นภาษาสำหรับเขียนคำสั่งให้คอมพิวเตอร์รุ่นใหม่กว่า แต่ขั้นแรกยังใช้ตัวรันรุ่นเดิมอยู่ ตามReal Python
สำหรับคนทำงานไทย เรื่องนี้ชวนให้ตรวจโปรแกรมเล็กๆ ที่ใช้รวมยอดหรือทำรายงานประจำวัน ถ้าที่ทำงานมีไฟล์ซึ่งทุกคนใช้แต่ไม่มีใครกล้าแก้ ลองหยิบกรณีนี้ไปคุยกับทีมดูครับ บทเรียนอยู่ที่การรักษางานเดิมระหว่างปรับระบบ มากกว่าการแข่งว่าใครใช้ของใหม่ก่อน
สรุป 30 วินาที: เกิดอะไรขึ้น
ผู้พัฒนาคือ Fenris Creations ซึ่งเดิมชื่อ CCP Games ตามReal Python สื่อนี้อธิบายว่า EVE เป็นเกมยานอวกาศแบบ MMO หรือเกมออนไลน์ที่ผู้เล่นจำนวนมากอยู่ในโลกเดียวกัน เกมเปิดตัวในปี 2003 แปลว่าระบบเดิมรับใช้ผู้เล่นมาตั้งแต่ยุคอินเทอร์เน็ตก่อนหน้านี้นานมาก ตามประกาศ EVE
ทีม EVE ระบุว่าใช้ Stackless Python 2.7 ตั้งแต่ปี 2010 แปลว่ารุ่นที่ใช้ทำงานจริงไม่ได้เปลี่ยนมานาน ตามประกาศทางการ Stackless คือ Python แบบที่ช่วยจัดการงานย่อยจำนวนมาก ซึ่งจะอธิบายต่อด้านล่าง ส่วนเลขรุ่นเก่าในข่าวนี้หมายถึงฐานที่เกมกำลังทยอยออกจากมันครับ
ขั้นแรกถูกนำขึ้นระบบจริงวันที่ 25 สิงหาคม 2026 แปลว่าการปรับเริ่มเกิดขึ้นแล้วในปลายเดือนนั้น ตามทีม EVE งานช่วงนี้ทำให้โค้ดรองรับภาษาใหม่และเก่าได้ โดยยังรันด้วยรุ่นเก่า ตามReal Python จึงต้องแยกคำว่าเริ่มย้ายออกจากคำว่าย้ายเสร็จ
Real Python ฉบับวันที่ 5 ตุลาคม 2026 หยิบเรื่องนี้มาสรุปในข่าวประจำเดือน แปลว่านี่คือการกลับมาพูดถึงประกาศเก่า ไม่ใช่วันเริ่มโครงการใหม่ ขณะที่Massively Overpowered รายงานตั้งแต่วันประกาศและย้ำว่าผู้เล่นแทบไม่เห็นความเปลี่ยนแปลงในช่วงแรก
ทำไมเรื่องนี้เกี่ยวกับคุณ
ลองนึกถึงสคริปต์ หรือโปรแกรมสั้นๆ ที่ทำงานซ้ำแทนคน เช่น รวมไฟล์ยอดขายหรือจัดรายงานส่งหัวหน้า นี่เป็นตัวอย่างเพื่อช่วยสำรวจงานของคุณ ไม่ใช่ข้อมูลว่าบริษัทไทยแห่งใดใช้ระบบเดียวกับ EVE ถ้าผลลัพธ์จากไฟล์นั้นไปใช้ตัดสินใจเรื่องเงิน คนที่ควรช่วยตรวจจึงมีทั้งผู้ใช้รายงานและผู้ดูแลโปรแกรม
เหตุผลที่ EVE ยอมเริ่มย้ายไม่ได้มีแค่ความเก่าครับ ทีม EVE ระบุว่าเครื่องมือและชุดโค้ดสำเร็จรูปสมัยใหม่มุ่งไปที่ภาษาใหม่ การอยู่กับรุ่นเดิมทำให้ต้องดูแลสิ่งต่างๆ เองมากขึ้น แทนที่จะใช้เวลาไปปรับเกมให้ดีขึ้น
Python 2.7 สิ้นสุดการสนับสนุนอย่างเป็นทางการในปี 2020 แปลว่าการที่โปรแกรมยังเปิดติดไม่ได้หมายถึงการสนับสนุนยังอยู่ ตามประกาศ EVE แต่ข่าวนี้ไม่ได้ระบุช่องโหว่เฉพาะหรือเหตุโจมตีเกม จึงไม่ควรสรุปว่าทุกสคริปต์เก่ากำลังถูกโจมตีครับ
สำหรับเจ้าของร้านหรือพนักงานออฟฟิศ สิ่งที่ทำได้คือช่วยบอกว่าผลแบบไหนถึงถูกต้อง เช่น รายงานต้องรวมยอดอย่างไรและข้อมูลไหนต้องอยู่ครบ นักศึกษาหรือคนเริ่มเขียนโปรแกรมก็ใช้กรณีนี้ฝึกแยกการรันสำเร็จจากการได้คำตอบที่ถูกต้องได้ แล้วถ้าโปรแกรมเปิดได้เหมือนเดิม เราจะรู้ได้อย่างไรว่ามันยังคิดเหมือนเดิม?
ทำงานยังไง
Python เป็นภาษาเขียนโปรแกรม ส่วนตัวรันคือโปรแกรมที่อ่านคำสั่งนั้นแล้วทำงานให้ เครื่องมือที่ตรวจว่าคำสั่งเขียนถูกกฎเรียกว่า compiler หรือเครื่องมือตรวจและแปลงคำสั่ง ทีม EVE ใช้ตัวรันจริงของทั้งภาษาเก่าและใหม่ตรวจไฟล์ เพื่อไม่ตัดสินจากการมองโค้ดอย่างเดียว
Stackless ใช้สิ่งที่เรียกว่า tasklets หรืองานย่อยน้ำหนักเบาซึ่งสลับกันทำงานได้ ทีม EVE อธิบายว่ามันช่วยให้เครื่องแม่ข่ายส่วนหนึ่งจัดการผู้เล่นพร้อมกันได้จำนวนมาก แปลแบบคนใช้เกมคือ ระบบต้องแบ่งงานเบื้องหลังของผู้เล่นให้ทำต่อกันได้ ไม่ใช่ดูแลคำสั่งจากคนเดียวแล้วจบ
ความต่างระหว่างภาษาเก่ากับใหม่มีทั้งรูปคำสั่งและความหมายของคำสั่ง EVE ระบุว่าบางคำสั่งเก่าไม่ผ่านกฎของภาษาใหม่เลย ส่วนบางคำสั่งผ่านแต่คำนวณต่างกัน นอกจากนี้ภาษาใหม่ยังจัดการข้อความเป็นแบบเดียวสม่ำเสมอขึ้น ซึ่งทีมคาดว่าจะช่วยเรื่องการทำเกมหลายภาษา
วิธีย้ายของ EVE เริ่มจากใช้ Python-Future ซึ่งเป็นเครื่องมือช่วยเขียนคำสั่งเก่าใหม่โดยอัตโนมัติ ตามประกาศทางการ เครื่องมือนี้อาศัยกลไกแปลงโค้ดที่ชื่อ 2to3 เพื่อปรับรูปคำสั่งให้ทั้งสองรุ่นยอมรับ แต่ความเข้ากันได้ตรงนี้ยังไม่ได้ยืนยันว่าผลลัพธ์เหมือนเดิมทุกกรณี
เปรียบกับการปรับปรุงคอนโดที่คนยังพักอยู่ครับ ต้องตรวจระบบเดิมและแบ่งงานเป็นส่วนก่อนลงมือ ผู้อยู่อาศัยยังต้องใช้น้ำและเข้าห้องได้ระหว่างปรับ ส่วนข้อมูลผู้เล่นคือสิ่งที่ต้องรักษาให้ครบ การทำห้องใหม่เสร็จจึงไม่ได้แปลว่าทั้งอาคารพร้อมเปลี่ยนระบบทันที
จากการตรวจครั้งแรก ทีม EVE รายงานว่าไฟล์ 95.9% ผ่านการตรวจคำสั่งทั้งสองรุ่น แปลว่ารูปภาษาเดิมส่วนใหญ่ไม่ได้ขวางการเริ่มย้าย ตัวเลขนี้เป็นผลตรวจที่บริษัทเปิดเผยในประกาศ EVE ไม่ใช่ผลทดสอบอิสระว่าเกมทำงานถูกต้องทั้งหมด
แต่ทีมพบคำสั่งประมาณ 20,000 บรรทัดที่ผ่านการตรวจแต่ทำงานต่างไป แปลว่างานหนักอยู่ที่การตัดสินใจเรื่องความหมายทีละจุด ตัวเลขประมาณนี้มาจากทีม EVE เพียงแหล่งต้นทางเดียว ครับ งานดังกล่าวอยู่ในขั้นถัดไป และทีมระบุว่าต้องใช้คนพิจารณาแทนการแก้อัตโนมัติ
จุดหักมุม: ทำสำเร็จเมื่อผู้เล่นไม่รู้สึกอะไร
แต่เป้าหมายของงานใหญ่ครั้งนี้คือความเงียบครับ ทีม EVE นิยามความสำเร็จว่าผู้เล่นไม่ควรสังเกตเห็นการย้าย นอกจากบางช่วงที่อาจลื่นขึ้น ทำงานเสร็จแล้วไม่มีใครรู้ นี่เป็นงานที่คำชมอาจมาในรูปของไม่มีใครแจ้งปัญหา
Massively Overpowered ย้ำว่าช่วงแรกถูกออกแบบให้มองไม่เห็นความเปลี่ยนแปลง ขณะที่ทีม EVE กำหนดให้ข้อมูลผู้เล่นเดิมอ่านกลับมาได้ตรงทุกอย่าง การเปิดเกมได้จึงเป็นเพียงส่วนหนึ่งของเงื่อนไขสำเร็จ
เรื่องเงิน / ผลกระทบ
ในเกม ตัวละคร แต้มทักษะ ทรัพย์สิน และเงินในกระเป๋าทั้งหมดถูกเขียนด้วยโค้ดเก่า ตามทีม EVE ทีมยืนยันว่าภาษาใหม่ต้องอ่านข้อมูลเหล่านี้กลับมาได้เหมือนเดิม เงินในเกมที่เรียกว่า ISK จึงเป็นส่วนของข้อมูลที่ต้องตรวจ ไม่ใช่เงินที่แปลงเป็นรายได้จริงในบทความนี้
ตัวอย่างที่ทีม EVE ยกคือการหารจำนวนเต็ม โดยเอาหนึ่งหารสอง ภาษาเก่าได้ศูนย์ ส่วนภาษาใหม่ได้ครึ่งหนึ่ง แปลว่าโปรแกรมอาจไม่แจ้งข้อผิดพลาดแต่ให้ตัวเลขต่างกัน ทีมระบุว่าค่าที่เกี่ยวข้องอาจเป็นความเสียหายในการต่อสู้ เงินในเกม หรือพิกัด จึงต้องตัดสินว่าแต่ละจุดควรมีความหมายแบบไหน
ถ้านำบทเรียนนี้มาคิดกับงานร้านค้าหรือออฟฟิศ ลองใช้ยอดรวม ส่วนลด และการแบ่งจำนวนเป็นกรณีทดสอบ ข้อนี้เป็นข้อเสนอสำหรับการเตรียมงาน ไม่ใช่รายงานว่าระบบบัญชีไทยมีปัญหาดังกล่าว การตรวจควรเริ่มจากกติกาทางธุรกิจที่ผู้ใช้ยืนยันได้ แล้วจึงดูว่าโปรแกรมใหม่รักษากติกานั้นหรือเปล่า
ฝั่งประโยชน์ Fenris ผ่านประกาศ EVE คาดหวังประสิทธิภาพและเครื่องมือที่ดีขึ้น เครื่องมือหาจุดผิดพลาดช่วยตรวจปัญหา ส่วนเครื่องมือวัดการทำงานช่วยดูว่าส่วนไหนใช้เวลามาก ทีมอธิบายว่าการเข้าถึงเครื่องมือสมัยใหม่จะช่วยแก้ปัญหาและพัฒนาฟีเจอร์ได้คล่องขึ้น
แต่บริษัทเองยังไม่ระบุว่าผู้เล่นจะได้ความเร็วเพิ่มจริงเท่าไร ตามประกาศทางการ จึงยังเอาข่าวนี้ไปคำนวณเวลาที่ประหยัดหรืองบที่ลดลงไม่ได้ แหล่งที่อ่านก็ไม่ได้เปิดเผยงบย้ายระบบ ทีมงานที่ใช้ หรือค่าใช้จ่ายเพิ่มเติมสำหรับผู้เล่นไทยครับ
สำหรับคนอนุมัติงบ ลองแยกงานตรวจคำสั่งออกจากงานยืนยันข้อมูลเดิมก่อนประเมินทรัพยากร อย่ากำหนดความสำเร็จจากจำนวนไฟล์ที่แก้เพียงอย่างเดียว ให้ผู้ใช้รายงานช่วยระบุผลลัพธ์สำคัญที่ต้องรักษาไว้ด้วย เพราะความถูกต้องเป็นสิ่งที่คนใช้ปลายทางตรวจร่วมกับทีมเทคนิคได้
ข้อมูลที่ยังไม่ชัด และจุดที่แหล่งข่าวพูดไม่ตรงกัน
เสียงสนับสนุนมาจาก Fenris Creations ผ่านประกาศ EVE บริษัทให้เหตุผลเรื่องความเร็ว เครื่องมือ และชุดโค้ดสำเร็จรูปที่เข้าถึงได้มากขึ้น อีกทั้งชี้ว่า EVE Frontier ใช้ระบบพื้นฐาน Carbon บนภาษาใหม่ได้แล้ว แปลว่าบริษัทมีตัวอย่างภายในที่ยืนยันว่าปลายทางเป็นไปได้
เสียงเตือนเรื่องความเสี่ยงก็มาจากทีม EVE เอง ในประกาศเดียวกัน ทีมระบุว่าเกมหลักมีข้อมูลผู้เล่นสะสมมายาวนานและต้องเปิดให้เล่นต่อ จึงยังต้องตรวจคำสั่งที่ทำงานต่างกันด้วยคน ตัวอย่าง Frontier สนับสนุนความเป็นไปได้ แต่ไม่ได้ยืนยันว่าข้อมูลและเงื่อนไขของเกมหลักตรวจครบแล้ว
Real Python เน้นข้อจำกัดว่าผ่านเพียงขั้นแรกและ Fenris ไม่ให้วันเสร็จ ขณะที่Massively Overpowered เน้นการเตรียมเกมสำหรับอนาคตและผลระยะยาว ทั้งคู่รายงานไปในทิศทางเดียวกับบริษัท ไม่มีแหล่งใดในชุดนี้ออกมาคัดค้านการย้ายโดยตรงครับ
จุดที่ต้องแยกคือเวลาประกาศกับเวลาหยิบข่าวมาสรุป EVE ลงประกาศปลายสิงหาคม ส่วนReal Python นำมาเล่าในฉบับเดือนตุลาคม นี่เป็นความต่างของบริบทการรายงาน ไม่ใช่หลักฐานว่าบริษัทเลื่อนวันเริ่ม หรือเพิ่งย้ายทั้งเกมในเดือนนี้
ในแหล่งที่ให้มา ยังไม่มีวันเสร็จ รุ่นย่อยของภาษาใหม่ที่เกมหลักจะใช้ หรือผลวัดความเร็วของเกมหลังย้าย ตามข้อจำกัดที่Real Python และทีม EVE ระบุ จึงยังตอบไม่ได้ว่าผู้เล่นไทยจะรู้สึกต่างเมื่อใด และข่าวนี้ไม่ใช่คำยืนยันว่าโครงการเสร็จแล้ว
แล้วเราควรทำอะไร
ขั้นตอนต่อไปนี้เป็นข้อเสนอให้นำบทเรียนมาปรับใช้กับงานของคุณ ไม่ใช่คำสั่งจากผู้พัฒนาเกม และไม่ใช่รายละเอียดแผนทั้งหมดของ EVE หลักที่อ้างอิงได้คือทีม EVE แบ่งย้ายหลายขั้นและแยกงานแก้อัตโนมัติจากงานที่ต้องใช้คน ให้เลือกขนาดงานตามระบบจริงของทีมครับ
คนทำงานทั่วไป ผู้ปกครองที่ดูแลกิจการ และเจ้าของร้าน: ทำตามได้เลย
- จดงานที่ต้องกดไฟล์หรือโปรแกรมเดิมเป็นประจำ เช่น รวมรายงานหรือเตรียมรายการสินค้า ระบุว่าใครใช้ผลลัพธ์และถ้างานหยุดจะกระทบขั้นตอนไหน อย่าเพิ่งสรุปว่าไฟล์เหล่านั้นเป็น Python ให้ผู้ดูแลตรวจยืนยันก่อน
- รวบรวมตัวอย่างข้อมูลเข้าและผลลัพธ์ที่ยืนยันว่าถูกต้อง รวมทั้งกติกาที่คนทำงานใช้อยู่จริง ส่งชุดนี้ให้ทีมที่รับผิดชอบเพื่อใช้เปรียบเทียบก่อนและหลังเปลี่ยนระบบ
- ถามหาเจ้าของโปรแกรมและวิธีแจ้งปัญหาที่ชัดเจน ระหว่างมีการย้ายให้ช่วยตรวจผลในงานที่คุณรู้ดีที่สุด ถ้ารายงานต่างไป ให้บอกความต่างพร้อมตัวอย่างแทนการกดทำซ้ำโดยไม่ตรวจ
ทีม IT และนักพัฒนา: ทำตามได้เลย
- สำรวจว่ามีสคริปต์ Python 2 อยู่ที่ไหน ใช้ตัวรันอะไร และพึ่งชุดโค้ดภายนอกใดบ้าง จดเส้นทางข้อมูลตั้งแต่รับเข้าจนส่งออก พร้อมผู้รับผิดชอบ อย่าเริ่มเปลี่ยนรุ่นจากชื่อไฟล์หรือความจำอย่างเดียว
- เพิ่มชุดทดสอบ หรือการให้โปรแกรมตรวจผลที่คาดหวัง ก่อนเริ่มแก้โค้ด เลือกข้อมูลที่สะท้อนงานจริงและกรณีที่การคำนวณเปลี่ยนแล้วมีผลต่อผู้ใช้ การอ่านข้อมูลเก่ากลับได้ตรงควรเป็นเงื่อนไขตรวจรับแยกต่างหาก
- แบ่งงานปรับรูปคำสั่งให้เข้ากันได้ออกจากงานตรวจพฤติกรรม วิธีนี้สอดคล้องกับขั้นแรกและขั้นถัดไปที่ EVE อธิบาย แต่เครื่องมือที่เกมเลือกไม่ใช่ข้อบังคับสำหรับทุกบริษัท ตรวจว่าเหมาะกับระบบของคุณก่อนนำมาใช้
- ย้ายเป็นส่วนที่ตรวจผลได้ และกำหนดจุดหยุดเมื่อผลต่างจากที่ตกลงไว้ เตรียมทางกลับไปใช้ระบบเดิมและข้อมูลสำรองก่อนเปลี่ยนงานจริง อย่าเขียนใหม่ทั้งชุดแล้วเปลี่ยนพร้อมกันเพียงเพราะอยากจบโครงการเร็ว
- ให้ผู้ใช้ปลายทางร่วมตรวจรายงานและข้อมูลสำคัญหลังแต่ละช่วง สำหรับนักศึกษาที่ทดลองกับงานฝึก ให้บันทึกผลก่อนแก้และอธิบายความต่างที่พบ เป้าหมายการฝึกคือเข้าใจเหตุผลของคำสั่ง ไม่ใช่เพียงทำให้ข้อความผิดพลาดหายไป
คนดูแลงบและหัวหน้าทีม ควรขอแผนที่มีผลตรวจรับสำหรับแต่ละช่วง รวมทั้งเวลาสำหรับผู้ใช้ช่วยทดสอบ การถามว่างานไหนต้องเหมือนเดิมช่วยให้คุยกับทีมเทคนิคได้แม้ไม่อ่านโค้ด ส่วนวันส่งงานควรผูกกับขอบเขตที่ตรวจได้ ไม่ยืมความหวังด้านความเร็วของเกมมาเป็นตัวเลขรับประกันของบริษัทตัวเอง
ผมมองว่า…
ผมมองว่า ข่าวนี้ไม่ใช่การเปลี่ยนภาษาเพื่อให้ดูทันสมัย แต่คือการรักษาความน่าเชื่อถือของงานเดิมพร้อมลดข้อจำกัดในอนาคต บริษัทเล็กไม่จำเป็นต้องมีโค้ดมหาศาลถึงจะเริ่มทำเรื่องนี้ได้ เริ่มจากรู้ว่าไฟล์ไหนสำคัญ ใครดูแล และผลที่ถูกต้องหน้าตาเป็นอย่างไรก่อนครับ
ผมมองว่า สิ่งที่ควรยืมจาก EVE คือวิธีแบ่งความเสี่ยงมากกว่ารายชื่อเครื่องมือ ทีม EVE เลือกจัดการรูปคำสั่งก่อน แล้วกันงานที่ต้องตัดสินความหมายไว้ให้คนตรวจ การแยกเช่นนี้ช่วยตั้งคำถามกับโครงการของเราได้ว่าแต่ละช่วงพิสูจน์อะไรแล้ว และยังเหลืออะไรที่ต้องรับผิดชอบ
ผมมองว่า คนใช้รายงานควรมีที่อยู่ในแผนย้ายด้วย เพราะเขาช่วยยืนยันกติกางานที่โค้ดต้องรักษาได้ การขอเวลาเขามาทดสอบตั้งแต่ต้นมีประโยชน์กว่ารอให้เจอผลต่างหลังเปลี่ยนระบบ และไม่ควรตำหนิคนที่ยังใช้ของเก่า ก่อนเข้าใจว่างานนั้นผูกกับข้อมูลและคนอื่นอย่างไร
ปิดท้าย: สิ่งที่ต้องจับตา
ความทันสมัยของระบบควรวัดจากความสามารถในการปรับต่อโดยรักษางานที่คนพึ่งพาไว้ได้ ช่วงต่อไปให้จับตาผลตรวจพฤติกรรมของโค้ดและประกาศทดสอบกับผู้เล่นเพิ่มเติม ซึ่งทีม EVE ระบุว่าจะขอความช่วยเหลือเมื่อถึงจุดสำคัญ ยังไม่มีวันย้ายเสร็จในรายงาน Real Python ที่อ่าน จึงควรรอหลักฐานเหล่านั้นแทนการเดากำหนดครับ
ที่ทำงานของคุณมีสคริปต์เก่าตัวไหนที่ควรเริ่มจดผลลัพธ์ที่ถูกต้อง ก่อนวันที่จำเป็นต้องย้ายระบบ?
Recap
- เกิดอะไรขึ้น: EVE เริ่มปรับโค้ดให้รองรับภาษาใหม่ แต่ขั้นแรกยังรันด้วยรุ่นเก่า ตามReal Python
- ตัวเลขที่ต้องจำ: โค้ด 2.4 ล้านบรรทัด แปลว่าเป็นงานปรับระบบขนาดใหญ่ที่ต้องแบ่งทำ ตามทีม EVE
- ใครเห็นต่าง: ไม่มีแหล่งในชุดนี้ค้านการย้ายโดยตรง บริษัทให้เหตุผลสนับสนุนพร้อมเตือนความเสี่ยง ส่วนReal Python เน้นว่ายังไม่มีวันเสร็จ
- ยังไม่รู้: วันจบโครงการ ผลความเร็วจริง และงบย้ายระบบยังไม่ปรากฏในแหล่งที่อ่าน
- กระทบคุณ: ใช้กรณีนี้สำรวจสคริปต์ในงาน เตรียมตัวอย่างผลที่ถูกต้อง และหาคนรับผิดชอบก่อนแก้
- สิ่งที่ต้องจับตา: ผลตรวจข้อมูลเดิมและการทดสอบช่วงต่อไปตามประกาศ EVE
- แหล่งอ้างอิง: 1 — EVE Online · 2 — Massively Overpowered · 3 — Real Python