Jeśli musisz zacząć myśleć o wydajności, masz kłopoty. Powinieneś cały czas myśleć o wydajności. Podejrzewam, że dobrzy programiści będą myśleć o wydajności, nawet jeśli nie zamierzają, w stylu „mężczyźni myślą o seksie co siedem sekund”…
Ważne jest, jakie działania podejmiecie w oparciu o całe to myślenie. Myśli są tanie, ale działania mogą złamać kod i skrócić terminy.
W większości przypadków jedynym sensownym działaniem będzie nic nie robić: ustaliłeś, że twój kod nie będzie wywoływany wystarczająco często, aby można było zaobserwować problemy z wydajnością - być może jest to fragment kodu startowego, który uruchamia się raz na komputer dla 1% twojej potencjalnej bazy użytkowników, może to trochę zbędnego kodu serwera zatopionego w morzu powolnego dostępu do bazy danych, może to tylko liczba całkowita w niekrytycznej części kodu.
Dość często podejrzewasz, że dana operacja może powodować problem z wydajnością, który można rozwiązać za pomocą prostej zmiany. Jest na przykład dokuczliwe uczucie, że uruchamianie złożonego zapytania SQL przy każdym żądaniu lub dwukrotne proszenie o ten sam fragment danych ze słownika będzie dla ciebie złe. Tutaj przydaje się znajomość technik optymalizacji i być może najbardziej zaskakujący wniosek:
Jeśli znasz szybką technikę, która prawie na pewno poprawi wydajność fragmentu kodu, nie rób tego.
Jeśli teraz możesz o tym pomyśleć, możesz to zrobić w pięć minut później. Trzymanie go poza kodem (ale być może w // TODOkomentarzu) pozostawia kod czystszy i pozwala zaoszczędzić czas do pracy nad inną funkcją, a jednocześnie nie marnować czasu, jeśli w końcu wyrzucisz ten kod później. Jeśli oryginalny kod okaże się powodować problemy z wydajnością podczas testowania, wróć i zastosuj szybką technikę.
Nie mówię tutaj, że powinieneś unikać pisania kodu, który jest idiomatyczny tylko dlatego, że dzieje się to szybciej. Napisz idiomatyczny kod zgodnie z najlepszymi praktykami, które poprawiają wydajność i czytelność oraz redukują błędy. Po prostu, jeśli masz wybór między idiomatycznym kodem z książki a szybszą, ale łatwą do napisania alternatywą, zawsze wybieraj czytelność zamiast szybkości.
Jedyną trudną sytuacją jest sytuacja, w której wydaje się, że nie ma łatwego sposobu na poprawienie wydajności kodu, a jednak boleśnie oczywiste jest, że kawałek kodu zepsuje się, gdy tylko zostanie dostarczony - pełne przejście do bazy danych za każdym kliknięciem, sto zapytań SQL na stronę w witrynie lub coś równie strasznego. Właśnie tam musisz się zatrzymać i przemyśleć coś jeszcze. Są to zwykle problemy związane z architekturą, których i tak nie można rozwiązać na skalę lokalną. Potwierdź swoje podejrzenia szybkim skokiem lub prototypem, poszukaj podobnych doświadczeń i typowych rozwiązań oraz rozważ zmianę architektury lub spadek funkcji.