Chelsea đua vô địch? Hỏi Arteta ngay thì biết!

Chelsea đua vô địch? Hỏi Arteta ngay thì biết!

Posted by

Mọi người cứ hỏi Chelsea có vô địch không. Thôi dẹp đi. Cứ nhìn cách làm của Arteta bên Arsenal thì biết. Nó không phải là mua về rồi đá ngay, mà là cái hệ thống. Muốn thắng thì phải có nền móng vững chắc, không phải cứ hào nhoáng là được.

Cái này tôi vừa thấm thía tuần trước. Vụ tối ưu hóa API cho cái trang web nhỏ xíu của tôi. Ban đầu thì máu lắm, thấy bọn trẻ nó khoe dùng cái Framework X mới nhất (tôi gọi nó là ‘Flash’ cho nhanh). Nhìn nó chạy demo nhanh kinh khủng, cái mặt bằng ấy, ai chẳng muốn. Thế là tôi nhảy vào thử ngay, nghĩ là mình cũng chạy đua được với thiên hạ. Không cần phải xây từ từ như Arteta làm gì.

Quá Trình “Lên Gân” và Cái Kết Đắng

Tôi tải về, ngâm cứu, rồi bắt tay vào triển khai. Chỉ trong ba ngày thôi, tôi đẩy code lên môi trường thử nghiệm. Nhìn có vẻ ổn áp lắm. Nhưng cái sai lầm là tôi tin tưởng vào cái thư viện có sẵn quá, không xây dựng cái lõi riêng cho mình.

Mới lên sóng được một đêm, khách hàng bắt đầu truy cập đông hơn, thì toang ngay. Cái hệ thống cứ nhảy loạn xạ lỗi 500. Mã nguồn nhìn thì đẹp đẽ, nhưng chạy thì như rùa bò. Tôi cố gắng gỡ lỗi, nhưng cái “Flash” đó nó khó hiểu kinh khủng, nó giấu đi hết mọi thứ. Muốn biết lỗi ở đâu thì phải lục tung cả cái thư viện lên. Bực mình không chịu nổi.

Tôi gọi điện cho thằng bạn làm IT lâu năm, nó phán một câu: “Ông làm như Chelsea ấy, mua về hàng đống rồi mong nó ăn khớp luôn à? Bỏ đi. Xây lại cái nền đi.”

Chelsea đua vô địch? Hỏi Arteta ngay thì biết!

Hành Động Của “Giáo Sư” Arteta

Thế là tôi quăng cái “Flash” đó vào thùng rác, quay lại cái nền tảng cũ kỹ mà tôi đã xây dựng bằng GoLang từ hai năm trước (tôi gọi là ‘Structure’). Nó chậm hơn, nó cù lần hơn, nhưng nó chắc như đinh đóng cột. Tôi tự tay viết lại từng module nhỏ, từ gốc, không dùng thư viện lộn xộn nữa. Mọi thứ phải nằm trong lòng bàn tay của mình.

Đây là những gì tôi đã thực hiện theo kiểu “Arteta”:

  • Phân tích lại: Tôi vẽ sơ đồ toàn bộ luồng dữ liệu, loại bỏ những đoạn code dư thừa mà cái “Flash” kia đã nhét vào.
  • Xây dựng lõi: Viết lại các handler API, chỉ sử dụng các package cơ bản nhất của Go. Cái gì cần thì mới thêm vào, cái gì không cần thì dứt khoát bỏ.
  • Tạo ghi chú: Ghi chú thật chi tiết cho từng đoạn code, để lỡ có xảy ra chuyện gì thì biết đườngsửa ngay. Không phải mò mẫm nữa.

Cứ mỗi khi hoàn thành một module, tôi lại chạy thử nghiệm nội bộ (unit test) hàng chục lần. Phải chắc chắn là nó chịu được tải, nó ổn định.

Tôi mất thêm một tuần nữa, cày cuốc như một con trâu, nhưng cuối cùng thì cái API mới cũng chạy phà phà. Nó không nhanh như tên lửa, nhưng chắc chắn là không bao giờ sập giữa chừng. Cái nền tảngvững rồi.

Bài học xương máu đó, anh em ạ. Chelsea hay đội nào cũng thế. Muốn vô địch thì phải ổn định. Đừng ham cái sự hào nhoáng nhất thời. Hỏi Arteta đi, ổng xây từ móng, chứ không mua cái chức vô địchtháng Tám. Tôi chấp nhận chậm lại, để rồi ngủ ngon. Anh em nhớ kỹ cái này.