Tôi đã gặp nhiều người chống lại bất cứ điều gì có thể được coi là "tối ưu hóa" theo nghĩa tiếng Anh của từ này, và họ thường trích dẫn nguyên văn câu nói (một phần) "tối ưu hóa sớm là gốc rễ của mọi tội lỗi" như một lời biện minh cho lập trường của họ, ngụ ý rằng họ diễn giải bất cứ điều gì tôi đang nói là "tối ưu hóa sớm". Tuy nhiên, những quan điểm này đôi khi rất cố chấp đến mức họ loại bỏ khá nhiều bất kỳ loại sai lệch thuật toán hoặc cấu trúc dữ liệu nào khỏi việc triển khai "ngây thơ" thuần túy nhất ... hoặc ít nhất là bất kỳ sai lệch nào so với cách họ đã làm trước đây.Làm thế nào người ta có thể tiếp cận những người như thế này theo cách khiến họ "mở tai" lại sau khi họ tắt máy khi nghe về "hiệu suất" hoặc "tối ưu hóa"? Làm thế nào để tôi thảo luận về một chủ đề thiết kế / triển khai có ảnh hưởng đến hiệu suất mà không cần mọi người nghĩ ngay: "Anh chàng này muốn dành hai tuần cho mười dòng mã?"
Bây giờ, lập trường về việc "tất cả tối ưu hóa có sớm và do đó xấu" hay không đã được đề cập ở đây cũng như ở các góc khác của Web , và nó đã được thảo luận về cách nhận biết khi tối ưu hóa là sớm và do đó là xấu , nhưng Thật không may, vẫn có những người trong thế giới thực không hoàn toàn cởi mở với những thách thức đối với niềm tin của họ vào Chống tối ưu hóa.
Những nỗ lực trước đây
Một vài lần, tôi đã thử cung cấp trích dẫn đầy đủ từ Donald Knuth để giải thích rằng "tối ưu hóa sớm là xấu" ↛ "tất cả tối ưu hóa đều xấu":
Chúng ta nên quên đi những hiệu quả nhỏ, nói về 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi tội lỗi. Tuy nhiên, chúng ta không nên bỏ qua cơ hội của mình trong 3% quan trọng đó.
Tuy nhiên, khi cung cấp toàn bộ trích dẫn, đôi khi những người này thực sự trở nên tin tưởng hơn rằng những gì tôi đang làm là Premature Optimization ™ và đào sâu và từ chối lắng nghe. Nó gần như là từ "tối ưu hóa" làm họ sợ: Đôi khi, tôi có thể đề xuất thay đổi mã cải thiện hiệu suất thực tế mà không bị phủ quyết bằng cách đơn giản tránh sử dụng từ "Optimiz (e | ation)" ( và "hiệu suất" cũng vậy - từ đó cũng đáng sợ) và thay vào đó sử dụng một số biểu thức như "kiến trúc thay thế" hoặc "triển khai được cải thiện". Vì lý do này, nó thực sự có vẻ như đây thực sự là chủ nghĩa giáo điều và thực tế không phải họ đánh giá những gì tôi nói một cách nghiêm túc và sau đó bác bỏ nó là không cần thiết và / hoặc quá tốn kém.