Tất cả nhật ký · Đăng ngày 2026-10-22

Một ứng dụng TOEIC thực sự lớn cỡ nào? Kiểm kê quy mô Chinh Phục 990: 650,000 dòng mã, 28,640 câu hỏi, 80,000 tệp âm thanh

Tính từ ngày đầu tiên viết dòng mã cho đến hôm nay, Chinh Phục 990 vừa tròn 156 ngày tuổi. Chúng tôi đã lật mở toàn bộ dự án và đếm tất cả mọi thứ: mã nguồn, câu hỏi, học liệu, hình ảnh, âm thanh, video, lịch sử thay đổi, phiên bản phát hành, bài viết và tài liệu thiết kế. Bài viết này trải hết mọi con số ra bàn, giải thích cách tính từng con số, tiện thể kể rõ chuyện gì thực sự diễn ra sau khi bạn bấm nút "Báo cáo sự cố" trong ứng dụng — cùng những con số mà bạn không nên quá coi trọng.

Tóm tắt trước: một bảng tổng hợp

Hạng mục Con số
Số ngày phát triển 156 ngày (lần lưu đầu tiên vào 2026-05-19)
Mã nguồn 654,678 dòng
Bài kiểm tra tự động 5,069 bài
Câu hỏi (7 Part TOEIC + bài tập bổ trợ) 28,640 câu
Tiếng Anh trong câu hỏi và học liệu khoảng 1.16 triệu từ tiếng Anh
Chuỗi dịch đối chiếu 976,479 chuỗi
Hình ảnh 7,153 ảnh (trong dự án ứng dụng) + 2,538 tranh vẽ (trên đám mây)
Tệp âm thanh 79,854 tệp, khoảng 80 giờ
Video 24 video
Thay đổi mã nguồn / Yêu cầu gộp đã duyệt / Phiếu công việc 5,523 lần / 1,521 gói / 1,226 phiếu
Phiên bản phát hành 81 bản (1.0.0 → 1.74.0)
Trang web / Bài viết trên trang chủ (trước khi đăng bài này) 445 trang / 84 bài
Tài liệu thiết kế và kỹ thuật 234 bản, 57,536 dòng

Dưới đây chúng ta sẽ điểm qua từng mục một.

Happysaur đứng trên chiếc thang nhỏ, kéo thước dây đo chồng giấy cao vượt khỏi khung hình — bài viết này chính là một lần đo đạc toàn bộ dự án từ đầu đến cuối.

Mã nguồn: 650,000 dòng, và tệp lớn nhất không chứa một chút logic nào

Phân khu Số tệp Số dòng
Bản thân ứng dụng 301 297,228
Bài kiểm tra tự động 303 133,087
Phiên bản web 426 116,584
Kịch bản tạo, kiểm tra và phát hành nội dung 336 89,262
Hệ thống đám mây (chuyển tiếp báo cáo, xác thực gói đăng ký…) 25 10,256
Trình tạo trang web chính thức 8 7,568
Đoạn mã riêng cho từng hệ điều hành điện thoại 5 693
Tổng cộng 1,404 654,678

Một vài chi tiết đáng chú ý:

  • Tệp lớn nhất là tệp văn bản giao diện: 20,712 dòng, và không có lấy một dòng "chương trình" nào trong đó. Mọi câu chữ xuất hiện trong ứng dụng đều nằm ở đây: 2,960 mục văn bản giao diện, 16,839 chuỗi ký tự. Đứng thứ hai là màn hình trang chủ với 17,232 dòng. Chúng tôi biết chứ, và chúng tôi cũng rất muốn tách nhỏ nó ra.
  • Trong số 297,000 dòng của bản thân ứng dụng, khoảng 19,000 dòng là các bảng được chương trình tạo tự động từ dữ liệu (chẳng hạn bảng khai triển cho bài học gốc từ, hay bảng từ loại cho quy tắc giải đề). Những dòng này không hẳn là được "viết" ra, nhưng chúng vẫn phải được biên dịch và kiểm thử.
  • Bản thân ứng dụng có 3,945 đơn vị chương trình, trong đó 1,550 là thành phần giao diện và khoảng 380 là màn hình hoàn chỉnh. Có 98 loại dữ liệu đồng bộ giữa các thiết bị, mỗi loại đều có quy tắc hợp nhất riêng — đó lại là chủ đề cho một bài viết khác.
  • 133,000 dòng mã kiểm thử bằng 45% quy mô của bản thân ứng dụng. Có tổng cộng 5,069 bài kiểm tra tự động, và mỗi thay đổi đều phải vượt qua toàn bộ số đó trước khi được gộp vào bản chính thức. Phiên bản web còn có thêm 21,000 dòng mã kiểm thử nữa.

Nhân tiện, "số dòng mã" là thước đo năng suất tệ nhất thế giới. Nó không đo chất lượng, mà đo số lượng những thứ cần bảo trì. Ý nghĩa thực sự của 650,000 dòng là: bất kể bạn sửa thứ gì, luôn có 650,000 dòng có nguy cơ bị bạn làm hỏng.

Happysaur cẩn thận rút một khối gỗ ra khỏi tòa tháp gỗ cao đang hơi nghiêng đi — mã nguồn càng nhiều, sửa một chỗ càng dễ làm hỏng nhiều thứ.

Câu hỏi: 28,640 câu, chia làm hai nhóm

Nhóm thứ nhất là 7 Part chính thức của bài thi TOEIC, gồm 11,032 câu hỏi, chia vào 4,364 bộ câu hỏi:

Part Số câu hỏi
Part 1 Mô tả hình ảnh 335
Part 2 Hỏi – Đáp 1,375
Part 3 Hội thoại ngắn 2,082
Part 4 Bài nói ngắn 1,536
Part 5 Điền vào câu 1,216
Part 6 Điền vào đoạn văn 680
Part 7 Đọc hiểu 3,808

Nhóm thứ hai là bài tập bổ trợ, gồm 17,608 câu hỏi: cụm từ 9,417, từ vựng 3,834, ngữ pháp 2,445, kết hợp từ 1,000, sắp xếp câu 441, sửa lỗi sai 246, nhận diện giọng đọc 225.

Một câu hỏi không phải cứ viết xong là xong. Mọi câu hỏi từ Part 1 đến Part 7 đều có nhãn độ khó và nghĩa đối chiếu — ở từng lựa chọn với Part 3–7, còn Part 1 và 2 thì nghĩa đối chiếu nằm ở bản chép lời vì các lựa chọn được nghe chứ không đọc; 8,329 câu trong số đó (ba phần tư) có dẫn chứng đáp án — chỉ rõ câu nào trong bài đọc hoặc đoạn hội thoại chứng minh cho đáp án đúng; Part 5 và Part 6 có thêm nhãn ngữ pháp; và 5,682 câu thuộc Part 5–7 có lời giải chi tiết. Còn về việc ngân hàng câu hỏi đã đủ dùng hay chưa, chúng tôi đã tính toán dựa trên 9,854 bản sao lưu đám mây trong bài Ngân hàng câu hỏi TOEIC có đủ dùng không? (bằng tiếng Trung).

Học liệu: những thứ ngoài câu hỏi còn nhiều hơn cả câu hỏi

"Câu hỏi" chỉ là cánh cửa bước vào luyện tập. Bên dưới các học phần từ vựng, cụm từ và ngữ pháp là tầng tầng lớp lớp dữ liệu:

  • 3,834 từ vựng, mỗi từ đều có: định nghĩa từ điển, câu chuyện từ nguyên, các cụm kết hợp từ (tổng cộng 19,930 cụm), phát âm theo ba giọng và câu ví dụ đọc thành tiếng. Ngoài ra còn có 737 họ từ, 201 nhóm từ phái sinh, 152 gốc từ và phụ tố, 145 bản đồ chủ đề, cùng từ điển tra cứu 10,176 mục chỉ cần nhấn giữ vào bất kỳ từ nào là mở ra.
  • 3,022 cụm từ, 9,417 câu hỏi, chia thành 196 họ cụm từ; 149 cụm từ có câu chuyện xuất xứ.
  • 48 chủ đề ngữ pháp, mỗi chủ đề đều có bài giảng giải; kèm theo Sách ngữ pháp gồm 46 chương, mỗi mục một tranh truyện, tổng cộng 139 tranh.
  • Tiếng Anh thực dụng hằng ngày: 290 câu tục ngữ tiếng Anh (12 chủ đề), 230 từ dễ phát âm sai (8 kiểu bẫy), 480 điển tích văn hóa (9 phần), 136 truyện từ vựng hài nhảm (34 cấp độ, mỗi cấp bốn truyện).
  • Khác: 93 bài học gốc từ, 83 thẻ mẹo nhỏ, 240 câu nghe chép chính tả, 225 câu hỏi so sánh giọng đọc (mỗi câu ba giọng), 77 cấp độ danh sách nghe từ vựng, 2,538 tranh vẽ từ vựng, cùng một đài phát thanh từ vựng đã ra mắt 10 tập và đang lấy ý kiến mọi người (khoảng 860 tập khác đã thu âm xong và đang chờ lên sóng).

Cộng toàn bộ số văn bản này lại: khoảng 1.16 triệu từ tiếng Anh trong các câu hỏi và bản chép lời (487,000 từ ở phần đọc, 673,000 từ ở bản chép lời phần nghe), cùng 976,479 chuỗi dịch dùng để đối chiếu. Toàn bộ nội dung nằm trong 563 tệp dữ liệu, tổng dung lượng 230 MB. Nếu tính mỗi trang 250 từ và mỗi cuốn sách dày 400 trang, khối lượng này tương đương khoảng mười một cuốn sách rưỡi.

Hình ảnh, âm thanh, video

Hình ảnh trong dự án ứng dụng có 7,153 tấm:

Loại Số lượng
Nhãn dán biểu đạt nghĩa từ vựng 3,672
Ảnh chụp màn hình cửa hàng và ảnh quảng bá 1,029
Hình minh họa, ảnh chụp màn hình và thẻ chia sẻ trên trang web 565
Hình minh họa điển tích văn hóa 484
Ảnh chụp và biểu đồ phần nghe Part 1 357
Tranh truyện trong Sách ngữ pháp 139
Hình minh họa truyện từ vựng 136
Lâu đài trong chiến dịch công thành từ vựng 78
Linh vật Happysaur ở đủ mọi tư thế 29
Biểu tượng, nhận diện thương hiệu, nhân vật đài phát thanh, khác 664

Ngoài ra còn có 2,538 bức tranh vẽ từ vựng đặt trên đám mây, chỉ tải về khi bạn bấm mở từ đó chứ không đóng gói kèm theo ứng dụng.

Âm thanh là khối lớn nhất. Dự án chứa 79,854 tệp âm thanh. Chúng tôi đã lấy mẫu ngẫu nhiên 250 tệp để đo thời lượng rồi nhân lên, ước tính tổng thời lượng khoảng 80 giờ — nếu thức trắng để nghe từ đầu đến cuối sẽ mất hơn ba ngày:

Loại Số tệp Thời lượng ước tính
Âm thanh câu hỏi phần nghe (Part 1–4) 9,306 ≈ 21 giờ
Danh sách nghe từ vựng (từ, nghĩa, đánh vần, câu ví dụ, kết hợp từ) 54,996 ≈ 40 giờ
Đọc câu ví dụ từ vựng 6,639 ≈ 10 giờ
Phát âm từ vựng (giọng Mỹ) 3,834 ≈ 1 giờ
Đọc cụm từ 3,064 ≈ 1 giờ
Luyện nghe giọng đọc 1,365 ≈ 1 giờ
Câu hỏi khởi động, từ dễ phát âm sai 650 < 1 giờ

Con số đó còn chưa tính 7,668 tệp phát âm từ vựng giọng Anh và giọng Úc nằm trên đám mây chỉ tải về khi cần, cùng 240 câu nghe chép chính tả, 136 bài đọc truyện và 159 đoạn âm thanh bối cảnh phòng thi ở các góc khác của dự án. Trong 54,996 tệp của danh sách nghe từ vựng, có 3,834 tệp đánh vần từng chữ cái một của từ — chẳng ai muốn tự đọc và thu âm phần này cả, nên chúng tôi đã nhờ máy tính đọc giúp.

Happysaur đeo tai nghe, hai tay ôm cốc sứ, ngồi giữa một ngọn núi nhỏ toàn băng cát-xét khi ngoài cửa sổ trời đã khuya — nghe hết toàn bộ số tệp âm thanh này phải mất hơn ba ngày.

Video là ít nhất: 24 video trên YouTube được dẫn liên kết từ trang web chính thức (23 video ngắn và 1 video dài), chia làm 2 danh sách phát. Trong dự án chỉ có 1 tệp video dùng để minh họa. Thời gian lẽ ra dành để làm video phần lớn đã đổ vào tất cả những thứ kể trên.

Nhật ký phát triển: 5,523 lần thay đổi, 1,521 yêu cầu gộp đã duyệt, 81 phiên bản

Giải thích trước ba thuật ngữ. Mỗi lần lưu mã nguồn thành một bản ghi chính thức gọi là một commit (thay đổi); một gói thay đổi phải được người khác duyệt và vượt qua bài kiểm tra trước khi gộp vào bản chính thức, gói đó gọi là một PR (yêu cầu gộp); còn mỗi lỗi (bug), báo cáo hay đề xuất đều là một issue (phiếu công việc).

  • 5,523 lần thay đổi, 156 ngày, trung bình 35 lần mỗi ngày, tính cả cuối tuần. Tháng Bảy đạt đỉnh với 1,408 lần, các tháng sau đó đều duy trì trong khoảng 1,250 đến 1,400.
  • 1,521 yêu cầu gộp, 1,509 gói trong số đó đã được gộp. Mỗi gói đều phải vượt qua toàn bộ 5,069 bài kiểm tra tự động trước tiên; có 213 gói có chuỗi thảo luận từ năm bình luận trở lên, thường là khi người duyệt và người viết trao đổi qua lại vài vòng.
  • 1,226 phiếu công việc, 1,190 phiếu đã đóng. Trong đó 562 phiếu là báo cáo câu hỏi, 534 phiếu là góp ý phản hồi — nói cách khác, 1,096 phiếu (89%) là do các bạn mở bằng cách bấm nút "Báo cáo sự cố" trong ứng dụng. Đội ngũ kiểm thử lớn nhất của dự án này không hề nhận lương. 130 phiếu còn lại là do chính chúng tôi mở: đề xuất tính năng, lỗi (bug) và việc cần làm. Dây chuyền này xứng đáng có một mục riêng ngay bên dưới.
  • 81 phiên bản phát hành, từ bản 1.0.0 ngày 19 tháng 5 đến bản 1.74.0 hôm nay, trung bình 1.9 ngày ra một bản. Đây không phải là kế hoạch từ trước, mà nhìn lại mới nhận ra.
  • Ngoài ra chúng tôi còn gửi 106 thông báo trong ứng dụng, bao gồm vài đợt khảo sát — kết quả đợt gần nhất nằm ở bài Người dùng bảo chúng tôi đi sai hướng rồi (bằng tiếng Trung).

Chuyện gì xảy ra sau khi bạn bấm "Báo cáo sự cố"?

Bạn bấm "Báo cáo sự cố" ở một câu hỏi nào đó, viết hai câu rồi gửi đi. Tiếp theo sẽ là như thế này:

  1. Chỉ trong vài giây, nó trở thành một phiếu công việc, rơi vào hệ thống theo dõi của chúng tôi, xếp chung hàng với 1,226 phiếu kể trên. Những thông tin bạn không cần tự điền thì ứng dụng đã đính kèm giúp bạn: mã câu hỏi, phiên bản ứng dụng, dòng điện thoại, phiên bản hệ điều hành và ngôn ngữ bạn đang dùng. Đây chính là những thứ cần thiết nhất để sửa lỗi, và cũng là những thứ người gửi email hầu như lúc nào cũng quên ghi.
  2. Điện thoại của bạn ghi nhớ mã số của phiếu công việc này. Vào mục "Cài đặt → Báo cáo của tôi", bạn sẽ thấy trạng thái hiện tại của nó: Đã tiếp nhận → Đang xử lý → Đã sửa. Nếu chúng tôi đọc chưa hiểu rõ ý bạn, trạng thái sẽ chuyển thành "Chờ bạn bổ sung thông tin", bên cạnh có sẵn nút để bạn viết thêm. Không cần tài khoản, không cần email, không cần đăng nhập ở bất kỳ đâu.
  3. Mỗi câu trả lời chúng tôi viết trên phiếu công việc đều xuất hiện nguyên văn trên điện thoại của bạn. Bạn có thể nhắn lại, đính kèm thêm ảnh, hoặc mở lại phiếu công việc sau khi chúng tôi đã đóng để bảo rằng "vẫn chưa hết lỗi".
  4. Sau khi sửa xong, phiếu công việc sẽ được gắn nhãn phiên bản đã sửa, phía máy bạn sẽ hiển thị "Đã sửa trong 1.xx", đồng thời màn hình trang chủ cũng hiện thông báo "Báo cáo của bạn có cập nhật". Bạn biết đã đến lúc cập nhật ứng dụng, và cũng biết rõ vì sao.

Truyện tranh ba khung: báo cáo bay từ điện thoại tới chỗ Happysaur, Happysaur ghim nó lên bảng công việc để xử lý từng cái một, sửa xong lại gửi kết quả bay về đúng chiếc điện thoại đó.

Đó là lý do chúng tôi luôn miệng nhờ mọi người dùng chức năng "Báo cáo sự cố" ngay trong ứng dụng thay vì các kênh khác:

  • Email: không có mã câu hỏi, không có phiên bản, không có dòng máy, nên trước tiên chúng tôi phải hồi âm hỏi lại ba câu hỏi đó; hơn nữa email không nằm trong hệ thống theo dõi nên rất dễ bị thư mới đè trôi mất.
  • Khảo sát: khảo sát là ẩn danh; chúng tôi nhìn thấy vấn đề nhưng không sao tìm được người gửi để hỏi thêm chi tiết, và cũng không có cách nào báo cho bạn biết khi đã sửa xong.
  • Đánh giá trên cửa hàng ứng dụng (kiểu tệ nhất): chúng tôi có thể trả lời công khai một lần, nhưng không có cuộc trò chuyện nào tiếp theo: không hỏi được số câu hỏi hay phiên bản, cũng không thể báo cho bạn khi đã sửa xong. Tệ hơn nữa, một đánh giá một sao viết rằng "Câu 1,204 sai đáp án rồi" sẽ còn treo trên trang cửa hàng suốt nhiều năm trời, dù câu hỏi đó đã được sửa ngay ngày hôm sau.

1,096 phiếu công việc gửi từ nút "Báo cáo sự cố" trong ứng dụng, phiếu nào cũng có người đọc, có người trả lời, và có thông báo khi sửa xong. Còn gửi qua những nơi khác, chúng tôi chỉ đành cố hết sức.

Trang web chính thức: 445 trang, 84 bài viết

Trước khi đăng bài này, trang web chính thức handy990.happysaur.com có 445 trang web, riêng bản tiếng Trung phồn thể có 102 trang. Bài viết được chia làm năm chuyên mục, tổng cộng 84 bài: 24 tài liệu kỹ thuật, 33 bài kiến thức tiếng Anh, 14 cẩm nang TOEIC, 3 báo cáo thực chiến và 10 nhật ký phát triển — bài bạn đang đọc là bài thứ 11.

Tài liệu thiết kế: 234 bản, 57,000 dòng

Hạng mục này thường chẳng mấy ai đếm, nhưng có lẽ nó lại nói rõ nhất về "cách dự án này được làm ra". Mỗi tính năng trước khi viết mã đều phải có một tài liệu thiết kế: giải quyết vấn đề gì, tại sao làm cách này mà không làm cách kia, lưu dữ liệu thế nào, kiểm thử ra sao, và những việc gì chủ đích không làm. Sau khi tính năng ra mắt, tài liệu vẫn được giữ lại, người tiếp theo chạm vào tính năng đó sẽ đọc tài liệu trước tiên.

Hạng mục Số bản
Thiết kế tính năng 81 bản, 31,142 dòng
Quy chuẩn biên soạn và duyệt nội dung 24
Kỹ thuật (đồng bộ, tài khoản, đo lường từ xa, lưu trữ đa phương tiện, bản web) 18
Tiếp thị 16
Nội dung quảng bá 57
Mô hình kinh doanh 4
Nội dung trên cửa hàng ứng dụng 6
Khác 28

Bên cạnh đó còn có cả một bộ "công cụ cho các công cụ": 336 kịch bản, 51 lệnh dựng bằng một thao tác và 11 quy trình làm việc đóng gói sẵn (ra đề, duyệt đề, phát hành phiên bản, sửa lỗi, viết những bài như thế này…). Không một dòng nào trong số đó xuất hiện trong ứng dụng, nhưng nếu thiếu chúng thì toàn bộ nội dung kể trên đều không thể làm ra được.

Vài con số khó xếp vào nhóm nào khác

  • Trong dự án có 117,208 tệp, dung lượng 5.06 GB; tính thêm toàn bộ lịch sử của mọi lần thay đổi là 8.7 GB.
  • Ngoài ra còn có 2.4 GB nội dung bán thành phẩm chưa qua khâu duyệt và chưa đưa vào ứng dụng.
  • 32 học phần bài tập bổ trợ (chưa tính các mục tục ngữ, phát âm, điển tích và truyện thuộc nhóm "Tiếng Anh thực dụng hằng ngày").
  • Tính đến ngày 8 tháng 9, có 9,854 bản sao lưu đám mây.

Đội ngũ bảy người nhỏ bé đã làm điều đó như thế nào?

Chinh Phục 990 được làm bởi bảy người trong 156 ngày. (Đội ngũ bảy người là thông tin chính thức mà trang web này kiên trì giữ vững bấy lâu nay. Nếu bạn tình cờ thấy dòng chữ "được phát triển và duy trì độc lập" ở trang "Về đội ngũ phát triển" trong ứng dụng, xin hãy coi như chưa nhìn thấy; còn nếu bạn đếm số người được nhắc đến bên dưới mà chỉ thấy có một, đó là vì sáu thành viên kia đều rất khiêm tốn và kín tiếng.) Thật lòng mà nói, cách làm chẳng có bí mật gì cả, chỉ có vài nguyên tắc được đặt ra ngay từ ngày đầu và chưa từng phá lệ:

  • Viết tài liệu trước, viết mã sau. 81 bản thiết kế tính năng kể trên không phải làm xong rồi mới viết bù. Một tính năng mà chưa nghĩ thông suốt "tại sao phải làm" và "những gì sẽ không làm" thì sẽ chưa bắt tay vào làm.
  • Nội dung đi trên cùng một dây chuyền sản xuất. Mỗi câu hỏi đều trải qua các bước: ra đề → đối chiếu trùng lặp với ngân hàng câu hỏi hiện có → người thật duyệt đề → đưa lên ứng dụng. Dù là một bài đọc Part 7 hay bản dịch của một câu tục ngữ thì cũng đều như vậy. Các công cụ (bao gồm cả công cụ AI) giúp tạo bản nháp đầu tiên và tìm lỗi, nhưng không có bất kỳ câu hỏi nào được đưa lên mà chưa qua mắt người thật kiểm duyệt.
  • Bài kiểm tra chặn ngay ở cửa. 5,069 bài kiểm tra tự động, mỗi gói thay đổi đều phải vượt qua toàn bộ. Đó là lý do chúng tôi dám phát hành phiên bản mới cứ mỗi 1.9 ngày.
  • Người dùng chỉ cho chúng tôi biết chỗ nào bị hỏng. 89% phiếu công việc đến từ nút "Báo cáo sự cố" trong ứng dụng. Chúng tôi trả lời từng phiếu một, và sau khi sửa xong cũng báo lại cho người gửi ngay trong ứng dụng.

Ảnh chụp tập thể với bảy chiếc ghế, chỉ có chiếc ghế chính giữa là có Happysaur đang ngồi vẫy tay, sáu chiếc ghế còn lại đều trống không — sáu người đồng nghiệp kia đều rất kín tiếng.

Bảy người (cứ tạm cho là vậy), 156 ngày, 650,000 dòng mã — nghe thì có vẻ rất nhanh. Nhưng thứ thực sự ngốn thời gian chưa bao giờ là "làm ra nó", mà là "sau khi làm ra rồi, phán đoán xem nó đã đúng hay chưa" — tài liệu và bài kiểm tra chính là cách để lưu giữ lại những phán đoán đó.

Nhưng thật lòng mà nói

Như thường lệ, hãy nói rõ với nhau:

  • Lớn không đồng nghĩa với tốt. 650,000 dòng mã, 28,000 câu hỏi, 80 giờ âm thanh chẳng có ý nghĩa gì với buổi luyện tập ngày mai của bạn cả. Điều quan trọng là 10 câu hỏi được đẩy cho bạn hôm nay có được chọn đúng hay không. Những con số này chỉ cho thấy "có bao nhiêu thứ phải chăm nom", chứ không phải "ứng dụng tốt đến đâu".
  • Thời lượng âm thanh là ước tính từ mẫu thử, sai số có thể lệch vài giờ. Số lượng từ tiếng Anh được tách theo khoảng trắng, không phải "từ" theo nghĩa ngôn ngữ học.
  • Số dòng mã bao gồm rất nhiều thứ không phải là chương trình: văn bản giao diện, bảng tạo tự động, bài kiểm tra. Nếu chỉ tính phần logic chương trình thực sự, con số rơi vào khoảng một nửa mức trên.
  • 562 phiếu báo cáo câu hỏi không phải là huy chương. Mỗi phiếu là một người dùng đã bị một câu hỏi có vấn đề làm mất thời gian. Con số lớn nghĩa là ngân hàng câu hỏi lớn và nhiều người dùng, nhưng cũng có nghĩa là chúng tôi còn nợ nhiều chỗ phải sửa.
  • Mọi con số đều tính tại ngày 22 tháng 10 năm 2026. Sang tuần sau là chúng đã sai rồi.

Happysaur quay lưng lại với ngọn núi thẻ câu hỏi, chỉ giơ lên đúng một tấm thẻ của ngày hôm nay — lớn không đồng nghĩa với tốt, điều quan trọng là vài câu hỏi gửi tới bạn hôm nay có được chọn đúng hay không.


Đây là một bài trong loạt nhật ký phát triển của Chinh Phục 990. Bài viết liên quan: Ngân hàng câu hỏi TOEIC có đủ dùng không? (bằng tiếng Trung) xem xét độ bao phủ của ngân hàng câu hỏi qua dữ liệu sử dụng, và Người dùng bảo chúng tôi đi sai hướng rồi (bằng tiếng Trung) là kết quả đợt khảo sát gần nhất của chúng tôi.

← Tất cả nhật ký