บันทึกทั้งหมด · เผยแพร่เมื่อ 2026-10-22
แอป TOEIC หนึ่งแอปใหญ่แค่ไหนกันแน่? เปิดตัวเลขเบื้องหลัง พิชิต 990: โค้ด 650,000 บรรทัด, โจทย์ 28,640 ข้อ, ไฟล์เสียง 80,000 ไฟล์
นับจากวันแรกที่เริ่มเขียนโค้ดจนถึงวันนี้ พิชิต 990 มีอายุครบ 156 วันพอดี เราได้รื้อทั้งโปรเจกต์ออกมาไล่นับทุกอย่างตั้งแต่ต้น ไม่ว่าจะเป็นโค้ด โจทย์ เนื้อหาบทเรียน รูปภาพ ไฟล์เสียง วิดีโอ ประวัติการแก้ไข เวอร์ชันที่ปล่อย บทความ ไปจนถึงเอกสารการออกแบบ บทความนี้จะกางตัวเลขทั้งหมดออกมาให้ดู อธิบายว่าแต่ละตัวเลขได้มาอย่างไร แวะเล่าให้ฟังว่าเกิดอะไรขึ้นหลังจากที่คุณกด "รายงานปัญหา" ในแอป — และบอกด้วยว่าตัวเลขไหนที่คุณไม่ควรจริงจังกับมันมากนัก
สรุปสั้นๆ ก่อน: ตารางรวมทั้งหมด
| รายการ | ตัวเลข |
|---|---|
| จำนวนวันที่พัฒนา | 156 วัน (บันทึกครั้งแรกเมื่อ 2026-05-19) |
| โค้ดโปรแกรม | 654,678 บรรทัด |
| การทดสอบอัตโนมัติ | 5,069 รายการ |
| โจทย์คำถาม (TOEIC ทั้ง 7 Part + แบบฝึกหัดเสริม) | 28,640 ข้อ |
| ภาษาอังกฤษในโจทย์และเนื้อหาบทเรียน | ประมาณ 1.16 ล้านคำ |
| ข้อความคำแปลเทียบเคียง | 976,479 รายการ |
| รูปภาพ | 7,153 รูป (ในโปรเจกต์แอป) + 2,538 ภาพวาด (บนคลาวด์) |
| ไฟล์เสียง | 79,854 ไฟล์ ประมาณ 80 ชั่วโมง |
| วิดีโอ | 24 คลิป |
| การแก้ไขโค้ด / คำขอรวมโค้ดที่ตรวจแล้ว / ใบงาน | 5,523 ครั้ง / 1,521 ชุด / 1,226 ใบ |
| เวอร์ชันที่ปล่อย | 81 เวอร์ชัน (1.0.0 → 1.74.0) |
| หน้าเว็บไซต์ / บทความ (ก่อนเผยแพร่บทความนี้) | 445 หน้า / 84 บทความ |
| เอกสารการออกแบบและวิศวกรรม | 234 ฉบับ, 57,536 บรรทัด |
ต่อไปเราจะไล่ดูทีละรายการ

โค้ดโปรแกรม: 650,000 บรรทัด และไฟล์ที่ใหญ่ที่สุดไม่มีตรรกะโปรแกรมเลยแม้แต่นิดเดียว
| ส่วนงาน | จำนวนไฟล์ | จำนวนบรรทัด |
|---|---|---|
| ตัวแอปหลัก | 301 | 297,228 |
| การทดสอบอัตโนมัติ | 303 | 133,087 |
| เวอร์ชันเว็บ | 426 | 116,584 |
| สคริปต์สำหรับสร้าง ตรวจสอบ และเผยแพร่เนื้อหา | 336 | 89,262 |
| ระบบหลังบ้านบนคลาวด์ (ส่งต่อรายงาน ตรวจสอบการสมัครสมาชิก…) | 25 | 10,256 |
| ตัวสร้างเว็บไซต์ | 8 | 7,568 |
| โค้ดส่วนย่อยเฉพาะระบบปฏิบัติการมือถือ | 5 | 693 |
| รวม | 1,404 | 654,678 |
รายละเอียดบางส่วนที่น่าสนใจ:
- ไฟล์ที่ใหญ่ที่สุดคือไฟล์ข้อความอินเทอร์เฟซ มี 20,712 บรรทัด และไม่มีบรรทัดไหนที่เป็น "โค้ดโปรแกรม" เลย ทุกประโยคที่แสดงในแอปอยู่ในไฟล์นี้ทั้งหมด ประกอบด้วยข้อความอินเทอร์เฟซ 2,960 รายการ หรือคิดเป็น 16,839 สตริง อันดับสองคือหน้าแรกของแอป มี 17,232 บรรทัด เรารู้ดี และเราก็อยากแยกไฟล์มันออกเหมือนกัน
- ในโค้ดตัวแอปหลัก 297,000 บรรทัด มีประมาณ 19,000 บรรทัดที่เป็นตารางซึ่งโปรแกรมสร้างขึ้นจากข้อมูลโดยอัตโนมัติ (เช่น ตารางขยายของบทเรียนรากศัพท์ ตารางชนิดของคำสำหรับกฎเหล็กในการทำโจทย์) บรรทัดเหล่านี้จะนับว่า "เขียนเอง" ก็คงไม่ได้ แต่พวกมันต้องถูกคอมไพล์และต้องผ่านการทดสอบจริงๆ
- ตัวแอปหลักมีหน่วยโปรแกรมทั้งหมด 3,945 หน่วย ในจำนวนนี้เป็นคอมโพเนนต์หน้าจอ 1,550 รายการ และเป็นหน้าจอสมบูรณ์ประมาณ 380 หน้า มีข้อมูลที่ซิงก์ข้ามอุปกรณ์ได้ 98 ประเภท ซึ่งแต่ละประเภทมีกฎการรวมข้อมูลของตัวเอง — เรื่องนี้ไว้ค่อยเล่าในบทความหน้า
- โค้ดทดสอบจำนวน 133,000 บรรทัด คิดเป็น 45% ของขนาดตัวแอปหลัก มีการทดสอบอัตโนมัติทั้งหมด 5,069 รายการ ซึ่งการแก้ไขทุกครั้งจะต้องผ่านการทดสอบทั้งหมดนี้ก่อนจึงจะรวมเข้ากับเวอร์ชันจริงได้ ส่วนเวอร์ชันเว็บมีโค้ดทดสอบแยกอีก 21,000 บรรทัด
อีกอย่างหนึ่ง "จำนวนบรรทัดของโค้ด" คือตัวชี้วัดประสิทธิภาพการทำงานที่แย่ที่สุดในโลก มันไม่ได้วัดคุณภาพ แต่วัดว่ามีของที่ต้องคอยดูแลรักษามากแค่ไหน ความหมายที่แท้จริงของโค้ด 650,000 บรรทัดก็คือ ไม่ว่าคุณจะแก้อะไร มีโค้ดถึง 650,000 บรรทัดที่อาจพังเพราะคุณได้

โจทย์คำถาม: 28,640 ข้อ แบ่งเป็นสองกอง
กองแรกคือข้อสอบ TOEIC ทั้ง 7 Part โดยตรง มี 11,032 ข้อ แบ่งอยู่ในชุดข้อสอบ 4,364 ชุด:
| Part | จำนวนข้อ |
|---|---|
| Part 1 บรรยายภาพ | 335 |
| Part 2 ถาม-ตอบ | 1,375 |
| Part 3 บทสนทนาสั้น | 2,082 |
| Part 4 บทพูดคนเดียว | 1,536 |
| Part 5 เติมคำในประโยค | 1,216 |
| Part 6 เติมคำในบทความ | 680 |
| Part 7 การอ่านจับใจความ | 3,808 |
กองที่สองคือแบบฝึกหัดเสริม มี 17,608 ข้อ: วลี 9,417 ข้อ, คำศัพท์ 3,834 ข้อ, ไวยากรณ์ 2,445 ข้อ, คำที่ใช้คู่กัน 1,000 ข้อ, เรียงประโยค 441 ข้อ, แก้ไขข้อผิดพลาด 246 ข้อ และแยกแยะสำเนียง 225 ข้อ
โจทย์แต่ละข้อไม่ได้จบแค่เขียนเสร็จแล้วใช้ได้เลย ทุกข้อตั้งแต่ Part 1 ถึง Part 7 มีป้ายระบุระดับความยากและคำแปลกำกับไว้ — Part 3 ถึง 7 แปลที่แต่ละตัวเลือก ส่วน Part 1 และ 2 ซึ่งตัวเลือกใช้ฟังไม่ใช่อ่าน คำแปลจะอยู่ที่บทพูด ในจำนวนนี้มี 8,329 ข้อ (สามในสี่) ที่มีหลักฐานคำตอบ เพื่อชี้ให้เห็นว่าประโยคไหนในบทความหรือบทสนทนาที่สนับสนุนคำตอบนั้น ส่วน Part 5 และ Part 6 จะมีป้ายกำกับไวยากรณ์เพิ่มเข้ามา และอีก 5,682 ข้อใน Part 5–7 มีคำอธิบายเฉลยอย่างละเอียด ส่วนคำถามที่ว่าคลังข้อสอบมีเพียงพอหรือไม่ เราได้คำนวณจากข้อมูลสำรองบนคลาวด์ 9,854 ชุดไว้แล้วในบทความ คลังข้อสอบ TOEIC พอไหม? (ภาษาจีน)
เนื้อหาบทเรียน: สิ่งที่อยู่นอกเหนือจากโจทย์ มีมากกว่าตัวโจทย์เสียอีก
"โจทย์คำถาม" เป็นเพียงประตูทางเข้าของการฝึกฝนเท่านั้น โมดูลคำศัพท์ วลี และไวยากรณ์ ต่างก็มีข้อมูลซ้อนทับกันอยู่ข้างใต้อีกหลายชั้น:
- คำศัพท์ 3,834 คำ ซึ่งแต่ละคำประกอบด้วย ความหมายตามพจนานุกรม เรื่องราวรากศัพท์ คำที่ใช้คู่กัน (รวมทั้งหมด 19,930 ชุด) เสียงอ่านในสามสำเนียง และเสียงอ่านประโยคตัวอย่าง นอกจากนี้ยังมีตระกูลคำศัพท์ 737 ตระกูล คำแผลง 201 ชุด รากศัพท์และหน่วยคำเติม 152 รายการ แผนผังคำศัพท์ตามหัวข้อ 145 แผ่น และคลังพจนานุกรม 10,176 รายการที่คุณสามารถกดค้างที่คำไหนก็ได้เพื่อเปิดดูความหมาย
- วลี 3,022 รายการ โจทย์ 9,417 ข้อ แบ่งออกเป็น 196 ตระกูลวลี โดยในจำนวนนี้มี 149 วลีที่มาพร้อมเรื่องราวที่มา
- ไวยากรณ์ 48 หัวข้อ ทุกหัวข้อมีคำอธิบายอย่างละเอียด พร้อมด้วย หนังสือไวยากรณ์ อีก 46 บท ซึ่งแต่ละหัวข้อย่อยมีภาพการ์ตูนประกอบหนึ่งภาพ รวมทั้งหมด 139 ภาพ
- ภาษาอังกฤษใช้จริงในชีวิตประจำวัน: สุภาษิตภาษาอังกฤษ 290 ประโยค (12 หัวข้อ), คำศัพท์ที่ออกเสียงยาก 230 คำ (กับดักการออกเสียง 8 ประเภท), เกร็ดความรู้ทางวัฒนธรรม 480 เรื่อง (9 หมวด) และเรื่องเล่าคำศัพท์สุดเพี้ยน 136 เรื่อง (34 ระดับ ระดับละสี่เรื่อง)
- อื่นๆ: บทเรียนรากศัพท์ 93 บท, การ์ดเคล็ดลับ 83 ใบ, ประโยคฝึกเขียนตามคำบอก 240 ประโยค, โจทย์เปรียบเทียบสำเนียง 225 ข้อ (ข้อละสามสำเนียง), เพลย์ลิสต์ฟังคำศัพท์พกพา 77 ระดับ, ภาพวาดประกอบคำศัพท์ 2,538 ภาพ และรายการวิทยุคำศัพท์ที่ปล่อยออกมาแล้ว 10 ตอนและกำลังเปิดรับฟังความคิดเห็นจากทุกคนอยู่ (โดยมีอีกประมาณ 860 ตอนที่อัดเสียงเสร็จเรียบร้อยและรอปล่อยอยู่แล้ว)
เมื่อนำข้อความทั้งหมดนี้มารวมกัน ในโจทย์และสคริปต์การฟังจะมีคำภาษาอังกฤษประมาณ 1.16 ล้านคำ (การอ่าน 487,000 คำ, สคริปต์การฟัง 673,000 คำ) และข้อความคำแปลเทียบเคียงอีก 976,479 รายการ เนื้อหาทั้งหมดเก็บอยู่ในไฟล์ข้อมูล 563 ไฟล์ ขนาดรวม 230 MB หากคำนวณที่หน้าละ 250 คำ เล่มละ 400 หน้า ก็จะเทียบเท่ากับหนังสือราวสิบเอ็ดเล่มครึ่ง
รูปภาพ ไฟล์เสียง และวิดีโอ
รูปภาพในโปรเจกต์แอปมีทั้งหมด 7,153 รูป:
| ประเภท | จำนวน |
|---|---|
| สติกเกอร์ความหมายคำศัพท์ | 3,672 |
| ภาพหน้าจอสำหรับสโตร์และภาพโปรโมต | 1,029 |
| ภาพประกอบเว็บไซต์ ภาพหน้าจอ และการ์ดสำหรับแชร์ | 565 |
| ภาพประกอบเกร็ดความรู้ทางวัฒนธรรม | 484 |
| ภาพถ่ายและกราฟิกสำหรับการฟัง Part 1 | 357 |
| การ์ตูนในหนังสือไวยากรณ์ | 139 |
| ภาพประกอบเรื่องเล่าคำศัพท์ | 136 |
| ปราสาทในโหมดตีป้อมคำศัพท์ | 78 |
| มาสคอต Happysaur ในท่าทางต่างๆ | 29 |
| ไอคอน แบรนด์ ตัวละครรายการวิทยุ และอื่นๆ | 664 |
นอกจากนี้ยังมีภาพวาดประกอบคำศัพท์อีก 2,538 ภาพที่เก็บไว้บนคลาวด์ ซึ่งจะดาวน์โหลดก็ต่อเมื่อคุณกดเปิดดูคำศัพท์นั้นๆ โดยไม่ได้แพ็กรวมมากับตัวแอป
ไฟล์เสียงคือส่วนที่ใหญ่ที่สุด ในโปรเจกต์มีไฟล์เสียงอยู่ถึง 79,854 ไฟล์ เราสุ่มตัวอย่างมา 250 ไฟล์เพื่อวัดความยาวแล้วคำนวณเทียบกลับไป ประเมินได้ว่ามีความยาวรวมประมาณ 80 ชั่วโมง — ถ้าฟังรวดเดียวตั้งแต่ต้นจนจบโดยไม่นอนเลยจะต้องใช้เวลามากกว่าสามวัน:
| ประเภท | จำนวนไฟล์ | ความยาวโดยประมาณ |
|---|---|---|
| ไฟล์เสียงโจทย์การฟัง (Part 1–4) | 9,306 | ≈ 21 ชั่วโมง |
| เพลย์ลิสต์ฟังคำศัพท์พกพา (คำศัพท์, ความหมาย, การสะกดคำ, ประโยคตัวอย่าง, คำที่ใช้คู่กัน) | 54,996 | ≈ 40 ชั่วโมง |
| เสียงอ่านประโยคตัวอย่างคำศัพท์ | 6,639 | ≈ 10 ชั่วโมง |
| เสียงอ่านคำศัพท์ (สำเนียงอเมริกัน) | 3,834 | ≈ 1 ชั่วโมง |
| เสียงอ่านวลี | 3,064 | ≈ 1 ชั่วโมง |
| การฝึกฟังสำเนียง | 1,365 | ≈ 1 ชั่วโมง |
| โจทย์อุ่นเครื่องและคำศัพท์ที่ออกเสียงยาก | 650 | < 1 ชั่วโมง |
นี่ยังไม่รวมไฟล์เสียงอ่านคำศัพท์สำเนียงบริติชและออสเตรเลียอีก 7,668 ไฟล์ที่อยู่บนคลาวด์และจะดาวน์โหลดเมื่อใช้งาน รวมถึงประโยคฝึกเขียนตามคำบอก 240 ประโยค เสียงเล่านิทาน 136 เรื่อง และเสียงบรรยากาศห้องสอบ 159 แทร็กที่กระจายอยู่ตามมุมอื่นๆ ของโปรเจกต์ ในบรรดาไฟล์เพลย์ลิสต์ฟังคำศัพท์พกพา 54,996 ไฟล์ มีอยู่ 3,834 ไฟล์ที่เป็นการสะกดคำทีละตัวอักษร — ไม่มีใครอยากนั่งอัดเสียงแบบนี้ด้วยตัวเอง เราเลยให้คอมพิวเตอร์ช่วยอัดให้แทน

วิดีโอมีน้อยที่สุด: มีวิดีโอบน YouTube ที่ลิงก์จากเว็บไซต์อยู่ 24 คลิป (วิดีโอสั้น 23 คลิป และวิดีโอยาว 1 คลิป) แบ่งเป็น 2 เพลย์ลิสต์ ส่วนในตัวโปรเจกต์มีไฟล์วิดีโอสาธิตอยู่เพียง 1 คลิปเท่านั้น เวลาที่ควรจะนำไปทำวิดีโอ ส่วนใหญ่ถูกนำไปใช้ทำสิ่งต่างๆ ข้างบนหมดแล้ว
บันทึกการพัฒนา: การแก้ไข 5,523 ครั้ง, คำขอรวมโค้ดที่ตรวจแล้ว 1,521 ชุด, 81 เวอร์ชัน
ขออธิบายคำศัพท์สามคำก่อน ทุกครั้งที่มีการบันทึกโค้ดเป็นประวัติอย่างเป็นทางการจะเรียกว่า commit (การแก้ไข) การแก้ไขชุดหนึ่งจะต้องผ่านการตรวจสอบจากคนอื่นและผ่านการทดสอบก่อนจึงจะรวมเข้ากับเวอร์ชันจริงได้ ซึ่งชุดการแก้ไขนี้เรียกว่า PR (คำขอรวมโค้ด) และทุกบั๊ก การรายงานปัญหา หรือข้อเสนอแนะ จะนับเป็น issue (ใบงาน)
- การแก้ไข 5,523 ครั้ง ใน 156 วัน เฉลี่ยวันละ 35 ครั้งโดยนับรวมวันหยุดสุดสัปดาห์ด้วย เดือนกรกฎาคมพีคที่สุดที่ 1,408 ครั้ง หลังจากนั้นทุกเดือนจะอยู่ที่ระหว่าง 1,250 ถึง 1,400 ครั้ง
- คำขอรวมโค้ด 1,521 ชุด รวมเข้าแล้ว 1,509 ชุด ทุกชุดจะต้องผ่านการทดสอบอัตโนมัติทั้ง 5,069 รายการก่อน มีอยู่ 213 ชุดที่มีการพูดคุยโต้ตอบกันตั้งแต่ห้าความคิดเห็นขึ้นไป ซึ่งปกติหมายความว่าคนตรวจและคนเขียนถกกันไปมาหลายรอบ
- ใบงาน 1,226 ใบ ปิดไปแล้ว 1,190 ใบ ในจำนวนนี้เป็นรายงานปัญหาเกี่ยวกับโจทย์ 562 ใบ และข้อเสนอแนะทั่วไป 534 ใบ — พูดอีกอย่างคือ ใบงาน 1,096 ใบ (89%) เปิดโดยพวกคุณผ่านปุ่ม "รายงานปัญหา" ในแอป ทีมทดสอบที่ใหญ่ที่สุดของโปรเจกต์นี้ไม่ได้รับเงินเดือน ส่วนอีก 130 ใบที่เหลือเป็นใบงานที่เราเปิดเอง ทั้งข้อเสนอฟีเจอร์ บั๊ก และสิ่งที่ต้องทำ กระบวนการทำงานส่วนนี้ควรค่าแก่การแยกเล่าอีกหนึ่งหัวข้อเต็มๆ ด้านล่างนี้เลย
- 81 เวอร์ชันที่ปล่อย นับตั้งแต่ 1.0.0 เมื่อวันที่ 19 พฤษภาคม มาจนถึง 1.74.0 ในวันนี้ เฉลี่ยแล้วปล่อยอัปเดตทุกๆ 1.9 วัน นี่ไม่ใช่สิ่งที่วางแผนไว้ล่วงหน้า แต่เพิ่งมารู้ตัวตอนหันกลับมานับดูนี่แหละ
- นอกจากนี้เรายังส่งประกาศในแอปไป 106 ครั้ง รวมถึงแบบสอบถามอีกหลายครั้ง — ซึ่งผลลัพธ์ครั้งล่าสุดอยู่ในบทความ ผู้ใช้บอกว่าเรามาผิดทางแล้ว (ภาษาจีน)
เกิดอะไรขึ้นหลังจากที่คุณกด "รายงานปัญหา"?
คุณกด "รายงานปัญหา" ในข้อใดข้อหนึ่ง พิมพ์สองประโยค แล้วกดส่ง จากนั้นสิ่งเหล่านี้จะเกิดขึ้น:
- ภายในไม่กี่วินาที มันจะกลายเป็นใบงาน ส่งเข้าสู่ระบบติดตามงานของเรา ไปต่อคิวรวมกับ 1,226 ใบข้างต้น ข้อมูลที่คุณไม่ต้องกรอกเอง แอปได้แนบมาให้เรียบร้อยแล้ว ได้แก่ รหัสข้อของโจทย์นั้น เวอร์ชันแอปของคุณ รุ่นโทรศัพท์ เวอร์ชันระบบปฏิบัติการ และภาษาที่คุณใช้งาน ข้อมูลเหล่านี้คือสิ่งที่จำเป็นที่สุดในการแก้บั๊ก และเป็นสิ่งที่คนเขียนอีเมลเกือบทุกคนลืมบอกเสมอ
- โทรศัพท์ของคุณจะจำหมายเลขใบงานนี้ไว้ เมื่อเข้าไปที่ "การตั้งค่า → รายงานของฉัน" คุณจะเห็นสถานะปัจจุบันของมัน: ได้รับแล้ว → กำลังดำเนินการ → แก้ไขแล้ว หากเราอ่านแล้วยังไม่เข้าใจ สถานะจะเปลี่ยนเป็น "รอข้อมูลเพิ่มเติมจากคุณ" พร้อมปุ่มข้างๆ ให้คุณกดส่งข้อมูลเพิ่มได้ทันที ไม่ต้องมีบัญชี ไม่ต้องใช้อีเมล และไม่ต้องล็อกอินที่ไหนทั้งสิ้น
- ทุกข้อความที่เราตอบกลับในใบงาน จะปรากฏบนโทรศัพท์ของคุณแบบคำต่อคำ คุณสามารถตอบกลับ แนบรูปเพิ่ม หรือแม้แต่กดเปิดใบงานขึ้นมาใหม่หลังจากที่เราปิดงานไปแล้วเพื่อบอกว่า "ยังใช้ไม่ได้" ก็ได้
- เมื่อแก้ไขเสร็จแล้ว ใบงานจะถูกติดป้ายกำกับด้วยเวอร์ชันที่แก้ไข ฝั่งของคุณจะแสดงข้อความว่า "แก้ไขแล้วในเวอร์ชัน 1.xx" และที่หน้าแรกของแอปจะขึ้นแจ้งเตือนว่า "รายงานของคุณมีการอัปเดต" คุณจะรู้ได้ทันทีว่าถึงเวลาอัปเดตแอปแล้ว และรู้ด้วยว่าอัปเดตไปเพื่ออะไร

นี่คือเหตุผลที่เราขอร้องทุกคนซ้ำแล้วซ้ำเล่าให้ใช้การกด "รายงานปัญหา" ในแอป แทนที่จะแจ้งผ่านช่องทางอื่น:
- อีเมล: ไม่มีรหัสข้อ ไม่มีเวอร์ชันแอป ไม่มีรุ่นโทรศัพท์ ทำให้เราต้องเขียนอีเมลกลับไปถามสามคำถามนี้ก่อน แถมยังไม่ได้อยู่ในระบบติดตามงาน จึงถูกอีเมลฉบับถัดไปดันตกไปได้ง่ายมาก
- แบบสอบถาม: แบบสอบถามเป็นแบบไม่ระบุตัวตน เราเห็นปัญหาแต่ตามหาคนแจ้งเพื่อถามรายละเอียดเพิ่มเติมไม่ได้ และไม่มีทางบอกคุณได้เลยเมื่อเราแก้ไขเสร็จแล้ว
- รีวิวในสโตร์ (ช่องทางที่แย่ที่สุด): เราตอบกลับแบบสาธารณะได้หนึ่งครั้ง แต่ไม่มีบทสนทนาต่อจากนั้น ถามเลขข้อหรือเวอร์ชันก็ไม่ได้ แจ้งคุณเมื่อแก้ไขเสร็จก็ไม่ได้ ที่แย่กว่านั้นคือ รีวิวหนึ่งดาวที่เขียนว่า "ข้อ 1,204 เฉลยผิด" จะยังคงค้างอยู่บนหน้าสโตร์ไปอีกหลายปี แม้ว่าโจทย์ข้อนั้นจะได้รับการแก้ไขตั้งแต่วันรุ่งขึ้นแล้วก็ตาม
ใบงานทั้ง 1,096 ใบที่ส่งผ่านปุ่ม "รายงานปัญหา" ในแอป มีคนอ่านทุกใบ มีคนตอบทุกใบ และมีการแจ้งเตือนกลับไปเมื่อแก้ไขเสร็จ ส่วนรายงานที่ส่งมาทางช่องทางอื่น เราทำได้เพียงพยายามอย่างเต็มที่เท่านั้น
เว็บไซต์: 445 หน้า, 84 บทความ
ก่อนเผยแพร่บทความนี้ เว็บไซต์ handy990.happysaur.com มีทั้งหมด 445 หน้า โดยเป็นเวอร์ชันภาษาจีนตัวเต็ม 102 หน้า บทความแบ่งออกเป็นห้าหมวด รวมทั้งหมด 84 บทความ ได้แก่ เอกสารทางเทคนิค 24 บทความ, เกร็ดความรู้ภาษาอังกฤษ 33 บทความ, คู่มือสอบ TOEIC 14 บทความ, รายงานสนามสอบจริง 3 บทความ และบันทึกการพัฒนา 10 บทความ — ซึ่งบทความที่คุณกำลังอ่านอยู่นี้คือบทความที่ 11
เอกสารการออกแบบ: 234 ฉบับ, 57,000 บรรทัด
ตามปกติคงไม่มีใครมานั่งนับสิ่งนี้ แต่มันน่าจะอธิบายได้ดีที่สุดว่า "โปรเจกต์นี้สร้างขึ้นมาอย่างไร" ทุกฟีเจอร์จะต้องมีเอกสารการออกแบบก่อนเริ่มเขียนโค้ดเสมอ: ฟีเจอร์นี้แก้ปัญหาอะไร ทำไมถึงเลือกวิธีนี้แทนที่จะเป็นวิธีนั้น ข้อมูลจัดเก็บอย่างไร ทดสอบอย่างไร และมีอะไรบ้างที่เราจงใจไม่ทำ เมื่อฟีเจอร์เปิดใช้งานแล้ว เอกสารจะยังคงอยู่ เพื่อให้คนถัดไปที่จะเข้ามาแก้ไขได้อ่านเอกสารก่อนลงมือ
| หมวดหมู่ | จำนวนฉบับ |
|---|---|
| การออกแบบฟีเจอร์ | 81 ฉบับ, 31,142 บรรทัด |
| มาตรฐานการเขียนเนื้อหาและการตรวจสอบ | 24 |
| วิศวกรรม (การซิงก์, บัญชี, การเก็บข้อมูลระบบ, การโฮสต์สื่อ, เวอร์ชันเว็บ) | 18 |
| การตลาด | 16 |
| ข้อความโปรโมต | 57 |
| โมเดลธุรกิจ | 4 |
| ข้อความบนสโตร์ | 6 |
| อื่นๆ | 28 |
ข้างๆ กันนั้นยังมีชุด "เครื่องมือสำหรับสร้างเครื่องมือ" อีกทั้งชุด ได้แก่ สคริปต์ 336 ตัว, คำสั่งบิลด์ในคลิกเดียว 51 รายการ และเวิร์กโฟลว์สำเร็จรูป 11 ชุด (สำหรับการออกโจทย์ ตรวจโจทย์ ปล่อยเวอร์ชันใหม่ แก้บั๊ก ไปจนถึงการเขียนบทความแบบนี้…) โค้ดเหล่านี้ไม่มีแม้แต่บรรทัดเดียวที่จะไปปรากฏอยู่ในแอป แต่ถ้าไม่มีพวกมัน เนื้อหาทั้งหมดข้างต้นก็คงไม่สามารถสร้างออกมาได้
ตัวเลขอีกบางส่วนที่จัดเข้าหมวดไหนไม่ได้
- ในโปรเจกต์มีไฟล์ทั้งหมด 117,208 ไฟล์ ขนาด 5.06 GB และเมื่อรวมประวัติการแก้ไขทั้งหมดทุกครั้ง จะมีขนาด 8.7 GB
- มีเนื้อหากึ่งสำเร็จรูปอีก 2.4 GB ที่ยังไม่ผ่านการตรวจสอบและยังไม่ได้นำเข้าแอป
- โมดูลแบบฝึกหัดเสริม 32 โมดูล (ยังไม่รวมสุภาษิต การออกเสียง เกร็ดวัฒนธรรม และเรื่องเล่า ที่อยู่ในกลุ่ม "ภาษาอังกฤษใช้จริงในชีวิตประจำวัน")
- ข้อมูลสำรองบนคลาวด์ 9,854 ชุด (ข้อมูล ณ วันที่ 8 กันยายน)
ทีมเล็กๆ เจ็ดคนทำทั้งหมดนี้ได้อย่างไร?
พิชิต 990 สร้างโดยทีมงานเจ็ดคน ในเวลา 156 วัน (ทีมงานเจ็ดคนคือข้อมูลอย่างเป็นทางการที่เว็บไซต์นี้ยืนกรานมาโดยตลอด หากคุณเปิดไปเจอคำว่า "ถูกสร้างและดูแลอย่างอิสระ" ในหน้า "เกี่ยวกับทีมผู้พัฒนา" ของแอป ขอให้ทำเป็นมองไม่เห็นไปเสีย และถ้าคุณลองนับจำนวนคนที่ถูกพูดถึงด้านล่างแล้วได้แค่คนเดียว นั่นเป็นเพราะอีกหกคนชอบเก็บตัวเงียบๆ) พูดตามตรง วิธีทำงานของเราไม่มีความลับอะไรเลย มีเพียงกฎไม่กี่ข้อที่ตั้งไว้ตั้งแต่วันแรกและไม่เคยแหกกฎเลยนับแต่นั้นมา:
- เขียนเอกสารก่อน แล้วค่อยเขียนโค้ด เอกสารการออกแบบฟีเจอร์ทั้ง 81 ฉบับข้างต้นไม่ได้มาเขียนย้อนหลังทีหลัง ฟีเจอร์ไหนที่ยังคิดไม่ตกเรื่อง "ทำไปทำไม" และ "อะไรที่จะไม่ทำ" เราจะยังไม่เริ่มลงมือเด็ดขาด
- เนื้อหาทุกชิ้นต้องผ่านสายการผลิตเดียวกัน โจทย์ทุกข้อต้องผ่านขั้นตอน: ออกโจทย์ → ตรวจสอบความซ้ำซ้อนกับคลังข้อสอบเดิม → คนตรวจทาน → เผยแพร่ ไม่ว่าจะเป็นบทความการอ่านใน Part 7 หรือคำแปลของสุภาษิตเพียงประโยคเดียว ก็ต้องผ่านกระบวนการเดียวกันทั้งหมด เครื่องมือต่างๆ (รวมถึงเครื่องมือ AI) ช่วยร่างต้นฉบับและช่วยหาจุดผิดพลาด แต่ไม่มีโจทย์แม้แต่ข้อเดียวที่ขึ้นระบบโดยไม่ผ่านตาคนตรวจ
- มีการทดสอบเฝ้าหน้าประตูไว้ การทดสอบอัตโนมัติ 5,069 รายการ ที่ทุกชุดของการแก้ไขต้องผ่านทั้งหมด นี่คือเหตุผลที่ทำให้เรากล้าปล่อยอัปเดตทุกๆ 1.9 วัน
- ผู้ใช้เป็นคนบอกเราว่าตรงไหนพัง 89% ของใบงานมาจากปุ่ม "รายงานปัญหา" ในแอป เราตอบกลับทุกใบ และเมื่อแก้ไขเสร็จเราก็แจ้งให้ผู้รายงานทราบในแอปโดยตรง

เจ็ดคน (เอาเป็นว่าอย่างนั้นแล้วกัน), 156 วัน, โค้ด 650,000 บรรทัด ฟังดูเหมือนเร็วมาก แต่สิ่งที่กินเวลาจริงๆ ไม่เคยเป็นการ "สร้างมันขึ้นมา" แต่เป็นการ "ตัดสินใจว่าสิ่งที่สร้างขึ้นมานั้นถูกต้องหรือยัง" ต่างหาก — และเอกสารกับการทดสอบก็คือวิธีบันทึกการตัดสินใจเหล่านั้นไว้
แต่พูดกันตามตรง
เหมือนเช่นเคย ขอพูดให้ชัดเจนตรงไปตรงมา:
- ใหญ่ไม่ได้แปลว่าดี โค้ด 650,000 บรรทัด โจทย์ 28,000 ข้อ หรือไฟล์เสียง 80 ชั่วโมง ไม่ได้มีความหมายอะไรกับการฝึกทำโจทย์ของคุณในวันพรุ่งนี้เลย สิ่งสำคัญคือโจทย์ 10 ข้อที่ระบบเลือกมาให้คุณในวันนี้ เป็น 10 ข้อที่เหมาะกับคุณจริงๆ หรือเปล่า ตัวเลขเหล่านี้บอกแค่ว่า "มีของที่ต้องดูแลมากแค่ไหน" ไม่ได้บอกว่า "มันดีแค่ไหน"
- ความยาวของไฟล์เสียงเป็นค่าประมาณจากการสุ่มตัวอย่าง ซึ่งอาจคลาดเคลื่อนได้หลายชั่วโมง ส่วนจำนวนคำภาษาอังกฤษใช้วิธีตัดแบ่งตามช่องว่าง ไม่ใช่ "คำ" ตามนิยามทางภาษาศาสตร์
- จำนวนบรรทัดของโค้ดรวมสิ่งที่ไม่ใช่โค้ดโปรแกรมเข้าไปเป็นจำนวนมาก ทั้งข้อความอินเทอร์เฟซ ตารางที่สร้างขึ้นอัตโนมัติ และการทดสอบ ถ้านับเฉพาะตรรกะของโปรแกรมจริงๆ ตัวเลขน่าจะอยู่ที่ประมาณครึ่งหนึ่งของตัวเลขข้างต้นเท่านั้น
- รายงานปัญหาโจทย์ 562 ใบไม่ใช่เหรียญรางวัล ทุกใบหมายถึงมีใครบางคนต้องเสียเวลาไปกับโจทย์ที่มีปัญหา ตัวเลขที่สูงแปลว่าคลังข้อสอบใหญ่และมีผู้ใช้มาก แต่ก็แปลว่ามีจุดที่เราติดค้างต้องตามแก้ไขอยู่มากเช่นกัน
- ตัวเลขทั้งหมดเป็นข้อมูล ณ วันที่ 22 ตุลาคม 2026 สัปดาห์หน้าตัวเลขพวกนี้ก็ไม่ตรงแล้ว

บทความนี้เป็นบันทึกการพัฒนาของ พิชิต 990 บทความที่เกี่ยวข้อง: คลังข้อสอบ TOEIC พอไหม? (ภาษาจีน) สำรวจความครอบคลุมของคลังข้อสอบจากประวัติการใช้งาน และ ผู้ใช้บอกว่าเรามาผิดทางแล้ว (ภาษาจีน) คือผลลัพธ์จากแบบสอบถามครั้งล่าสุด