Nếu bạn phải bắt đầu suy nghĩ về hiệu suất, bạn sẽ gặp rắc rối. Bạn nên suy nghĩ về hiệu suất tất cả các thời gian. Trên thực tế, tôi nghi ngờ các lập trình viên giỏi sẽ nghĩ về hiệu suất ngay cả khi họ không có ý định, trong một «đàn ông nghĩ về tình dục cứ sau bảy giây».
Điều quan trọng là những hành động bạn sẽ thực hiện dựa trên tất cả những suy nghĩ đó. Suy nghĩ là rẻ, nhưng hành động có thể phá vỡ mã và thổi thời hạn.
Hầu hết thời gian, hành động hợp lý duy nhất sẽ không làm gì cả: bạn đã xác định rằng đoạn mã của bạn sẽ không được gọi thường xuyên đủ để các vấn đề về hiệu năng có thể quan sát được. Có lẽ đó là một đoạn mã khởi động chạy một lần trên mỗi máy tính cho 1% cơ sở người dùng tiềm năng của bạn, có thể đó là một chút mã máy chủ dự phòng bị nhấn chìm trong một biển truy cập cơ sở dữ liệu chậm, có thể đó chỉ là một phép gán số nguyên trong một phần mã không quan trọng.
Rất thường xuyên, bạn nghi ngờ rằng một hoạt động nhất định có thể gây ra vấn đề hiệu suất có thể được giải quyết bằng một thay đổi đơn giản. Chẳng hạn, cảm giác dai dẳng khi chạy một truy vấn SQL phức tạp trên mỗi yêu cầu hoặc yêu cầu cho cùng một dữ liệu từ từ điển hai lần, sẽ rất tệ cho bạn. Đây là nơi kiến thức về các kỹ thuật tối ưu hóa có ích, và có lẽ kết luận đáng ngạc nhiên nhất xảy ra:
Nếu bạn biết về một kỹ thuật nhanh chóng gần như chắc chắn sẽ cải thiện hiệu suất của một đoạn mã, đừng làm điều đó.
Nếu bạn có thể nghĩ về nó bây giờ, bạn chắc chắn có thể làm điều đó trong năm phút sau. Giữ nó ra khỏi mã (nhưng, có lẽ, trong một// TODO
bình luận) để lại trình dọn dẹp mã và giúp bạn tiết kiệm thời gian trước đó để làm việc với một tính năng khác, trong khi không lãng phí thời gian nếu bạn kết thúc việc ném mã đó sau đó. Nếu mã ban đầu không gây ra vấn đề về hiệu năng khi được kiểm tra, hãy quay lại và áp dụng kỹ thuật nhanh của bạn.
Tôi không nói ở đây rằng bạn nên tránh viết mã đó là thành ngữ chỉ vì nó xảy ra nhanh hơn. Viết mã thành ngữ theo các thực tiễn tốt nhất để cải thiện năng suất và khả năng đọc và giảm lỗi. Chỉ là nếu bạn có sự lựa chọn giữa mã sách thành ngữ và một thay thế nhanh hơn nhưng dễ viết, hãy luôn tìm kiếm sự dễ đọc thay vì tốc độ.
Tình huống khó khăn duy nhất là khi dường như không có cách nào dễ dàng để cải thiện hiệu suất mã, và rõ ràng là một đoạn mã sẽ bị phá vỡ ngay khi nó gửi cho một cơ sở dữ liệu đầy đủ trên mỗi lần nhấp, hàng trăm yêu cầu SQL trên mỗi trang trên trang web, hoặc bất cứ điều gì tương tự khủng khiếp. Đây là nơi bạn thực sự cần dừng lại và suy nghĩ thêm. Đây thường là những vấn đề kiến trúc không thể giải quyết trên quy mô địa phương. Xác nhận sự nghi ngờ của bạn bằng một đột biến hoặc nguyên mẫu nhanh chóng, tìm kiếm các trải nghiệm tương tự và các giải pháp phổ biến và xem xét thay đổi kiến trúc hoặc giảm tính năng.