Thời gian tải 5 giây là không thể chấp nhận. Nhưng đó lại là chuyện thường.

Khi khởi động một chương trình, mở một ứng dụng hay tải một website, có lẽ bạn phải chờ ít nhất vài giây. Đó là chuyện bình thường.

Nhưng đáng ra không nên như vậy.

Một khi khách hàng đã quen với tốc độ tải và phản hồi nhanh, họ sẽ chẳng bao giờ bỏ bạn để qua đối thủ - khi đã cảm nhận được sự khác biệt giữa ứng dụng nhanh của bạn và ứng dụng chậm của đối thủ, họ sẽ cực kỳ khó chịu với cái chậm.

Làm sao để có được lợi thế này, một vài sự thật trong thực tế và bạn cần hỏi lập trình viên những gì? Tất cả đều có trong bài viết này.

Thời gian tải 5 giây là không thể chấp nhận. Nhưng đó lại là chuyện thường.

Mọi thứ thực sự có thể nhanh đến mức nào?

Đây không phải bài viết kỹ thuật, nên ta cứ lướt qua vài con số cơ bản dễ hiểu rồi so sánh chúng với thực tế.

Một con CPU giá rẻ trong điện thoại bình dân có thể xử lý hàng tỷ lệnh mỗi giây x ít nhất 2 nhân (về cơ bản là 2 đơn vị xử lý).

Đọc dữ liệu từ ổ đĩa hiện đại đạt hàng nghìn megabyte mỗi giây - và một lần nữa, ngay cả trên điện thoại giá rẻ.

Truyền dữ liệu qua internet thấp nhất cũng đạt hàng trăm megabyte mỗi giây.

So sánh

Hãy lấy sản phẩm chậm nhất trước. Một trang web chất lượng cao ngay sau khi tải xong, ở mức lớn, có thể nặng 15 - 25 megabyte.

Nghĩa là tính tất tần tật, bạn nhập đường link vào trình duyệt đang mở và lẽ ra phải thấy website trong khoảng 1 - 2 giây - tải xong hoàn toàn.

Còn với một ứng dụng trên điện thoại, đó là các tập tin lưu sẵn trên máy, nên không có chuyện kết nối internet (tốc độ chậm nhất) ở đây. Với tốc độ hàng gigabyte mỗi giây, lẽ ra bạn phải thấy một ứng dụng thông thường mở ra và chạy được trong 0,15 - 0,25 giây.

Trong một ứng dụng, chương trình hay website đang mở, một thao tác chỉ đi qua tốc độ nhanh nhất của CPU và đôi khi là GPU. Khi bạn nhấn một nút, kết quả phải hiện ngay lập tức trên màn hình theo đúng nghĩa đen.

Thực tế hiện nay

Trong thực tế hiện nay, không phải lúc nào cũng đạt được những tốc độ đó. Nhưng như bạn có thể hình dung, đi từ 1 - 2 giây lên 5 giây thời gian tải cũng là chuyện không cần thiết, và website của bạn vẫn có thể mở trong 2 - 3 giây. Mà đó là với một trang web thực sự lớn lại còn thiếu tối ưu tử tế.

Cần hỏi lập trình viên những gì?

Bạn không cần hiểu chi tiết về công nghệ và lập trình. Đây không phải để làm một buổi phỏng vấn kỹ thuật.

Stack

Hãy bắt đầu bằng câu hỏi “Stack của bạn là gì?”. Câu đó là hỏi họ đang xây dựng bằng những công cụ và công nghệ nào, và xây dựng dựa trên cái gì. Nếu lập trình viên bắt đầu kể cho bạn nghe về đủ thứ công nghệ "ngầu" mà họ dùng, đó là một dấu hiệu đáng ngại. Tương tự nếu họ nói những từ kiểu như “webview”.

Tại sao? Bởi vì phần lớn phần mềm chậm chạp ngày nay được xây trên một thứ đã được xây trước đó, và thứ đó lại được xây trên một thứ khác xây trước nữa. Đó là một chuỗi. Nghĩa là tất cả những tốc độ nói trên, dù vẫn đúng, lại phải xử lý không phải dự án của bạn, mà là nhiều lớp chồng chất.

WordPress chậm vì nó làm mọi thứ kể cả khi bạn không cần.

Đo lường

Câu hỏi thứ hai là hỏi họ đo tốc độ như thế nào. Và mục tiêu tốc độ của họ là gì.

Đáng ngạc nhiên là khá nhiều lập trình viên nói rằng 5 giây là mục tiêu. Đó lại là một dấu hiệu đáng ngại nữa. Tương tự nếu họ không có câu trả lời đàng hoàng cho việc họ đo bằng cách nào - hoặc nếu câu trả lời là “bọn tôi mở lên rồi xem”.

Nhìn tận mắt và cảm nhận là một phần cần thiết của việc kiểm thử. Nhưng nó cũng là gốc rễ của nhiều vấn đề kiểu “máy tôi chạy được mà”.

Bạn nên bắt đầu yêu cầu các chỉ số tốc độ

Làm dự án của bạn cho đàng hoàng thì tốn công hơn. Nhưng không nhiều như bạn nghĩ đâu.

Các dự án nhỏ (như website một trang) gần như không có chênh lệch công sức đáng kể giữa việc làm mới hoàn toàn và dùng công cụ có sẵn. Các dự án lớn đòi hỏi phải lên kế hoạch cẩn thận, cân nhắc lợi hại, và hiểu vì sao lại dùng cái gọi là framework.

Một phần trong bản đặc tả sản phẩm của bạn không chỉ nên nói sản phẩm hoạt động ra sao, mà còn phải nhanh đến mức nào. Đây là một cuộc trao đổi rất quan trọng cần có.

Từ thực tế làm việc, chúng tôi hiểu rằng với người không rành kỹ thuật thì đây là một cuộc trò chuyện không mấy thoải mái. Đó là lý do tại LINK-V, chúng tôi dẫn dắt khách hàng qua từng bước bằng ngôn ngữ mà họ hiểu được. Suy cho cùng, phần mềm là lớp trung gian giữa con người và máy tính, và nếu chúng tôi làm phần mềm thì chúng tôi cũng hành xử theo đúng cách đó.

Tom J. · LINK-V