czy po prostu miałem szczęście, że nie muszę się tym zbytnio przejmować, czy też jestem złym programistą?
Dbasz o swoje wymagania? Jeśli wydajność nie jest wymagana, nie przejmuj się nią. Poświęcenie na to znacznego czasu jest niekorzystne dla twojego pracodawcy.
Do pewnego stopnia wydajność jest zawsze wymagana. Jeśli możesz uderzyć, nie zastanawiając się nad tym, masz rację, nie myśląc o tym.
Osobiście najczęściej kieruję się wydajnością, gdy moje testy trwają długo. Jestem zbyt niecierpliwy, aby czekać 5 minut na ukończenie zestawu testów. Ale zwykle rozwiązuje się to, bawiąc się testami.
Moje pytanie brzmi: dlaczego tak bardzo zależy na dużej liczbie programistów? Czy to naprawdę problem dla większości programistów,
Istnieje duża liczba programistów, którzy są uzasadnieni, jak bardzo im zależy. Są duże liczby, które nie są. Porozmawiajmy o tych, którzy nie są.
Jedną z pierwszych rzeczy, których programiści uczą się w szkole, po tym, jak sprawić, by rzeczy faktycznie działały, jest duża notacja O. Wielu z nich właściwie uczy się lekcji, a tym samym właściwie skupia się na rzeczach, na które dramatycznie wpływa n. Inni nie rozumieją matematyki i zabierają lekcję, że gdy już zadziała, musi być szybka. Co gorsza, niektórzy z tych uczniów nigdy nie dowiadują się więcej o tym, co jest ważne z twoim kodem, oprócz tego, że działa i działa szybko. Nieodebrane lekcje: spraw, aby było czytelne, zaprojektuj je dobrze, nie baw się w to bez powodu.
Knuth miał rację: przedwczesna optymalizacja jest źródłem wszelkiego zła. Ale kiedy to zadziała, jaki jest następny krok? Szybko, prawda? NIE! Następny krok jest czytelny. Czytelny jest pierwszy, następny, środkowy i ostatni krok. Wiele osób, które przeprowadzają niepotrzebne optymalizacje wydajności, dokłada czytelności do magistrali.
Niektórzy nawet odczuwają przewrotny dreszczyk emocji z powodu nieczytelnego kodu. Musieli cierpieć, patrząc na trudny do zrozumienia kod stworzony przez innych, więc teraz ich kolej na zwrot.
Wiem to, bo kiedyś to robiłem. Kiedyś przerobiłem doskonale czytelną 5-liniową strukturę, aż do nieczytelnego jednoliniowego wyrażenia logicznego i z dumą wysłałem ją do mojego profesora, który spodziewał się zaimponować, ponieważ mogłem stworzyć coś tak zwartego i zastraszającego. Nie dostałem pochwały, na którą liczyłem.
Jeśli kod pozostaje czytelny, szybkie później jest łatwe. Dlatego Knuth podkreśla „przedwczesne”, a nie „niepotrzebne”. Ponieważ na pewno szybsze jest lepsze. Ale lepszy jest lepszy tylko w zależności od tego, co poświęcisz za to. Więc poczekaj, aż dowiesz się, jakiej wydajności naprawdę potrzebujesz, zanim poświęcisz się dla niej. Niechętnie poświęcajmy czytelność, ponieważ po jej zniknięciu trudno jest odzyskać.
Poza czytelnością jest cały świat projektowania oprogramowania. O czym jest ta strona. Niektórzy nie mają pojęcia, co zrobić w zakresie projektowania. Ponieważ nie potrafią zaimponować designem, robią nieczytelny bałagan, więc ludzie nie mogą powiedzieć, że nie mają pojęcia. Ponieważ nikt nigdy nie naprawia ich kodu, musi to być dobry kod, prawda?
Dla niektórych wydajność jest wymówką, aby zrobić wszystko, co chcą. Programiści mają dużą moc i autonomię. Zaufano im. Nie nadużywaj zaufania.