[UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a
: środa 14 wrz 2022, 16:12
Ciekawy zbiór 5 zasad sformułowanych przez Rob'a Pike'a:
5 zasad programowania Roba Pike'a:
Zasada 1.Nie możesz przewidzieć, gdzie program zamierza poświęcić swój czas. Wąskie gardła pojawiają się w zaskakujących miejscach, więc nie próbuj zgadywać i hack'ować szybkości jego działania, dopóki nie udowodnisz, że to właśnie tam jest wąskie gardło.
Zasada 2.Pomiar. Nie dostrajaj prędkości, dopóki nie zmierzysz (funkcjonującego kodu), a nawet wtedy nie rób tego, chyba że (TA) jedna część kodu jest ważniejsza od całej jego reszty.
Zasada 3.Fantazyjne algorytmy są wolne, gdy n jest małe, a n jest zwykle małe. Fantazyjne algorytmy mają duże stałe. Dopóki nie wiesz, że n często będzie duże, nie wymyślaj. (Nawet jeśli n jest duże, użyj najpierw reguły 2.)
(* n - stała występująca gdy określa się jakość/szybkość algorytmów i ich stopień skomplikowania)
Zasada 4.Fantazyjne algorytmy są bardziej podatne na błędy niż algorytmy proste i są znacznie trudniejsze do zaimplementowania. Używaj prostych algorytmów oraz prostych struktur danych.
Zasada 5.Dane górują ponad wszystkim. Jeśli wybrałeś właściwe struktury danych i dobrze je zorganizowałeś, algorytmy prawie zawsze będą oczywiste. Struktury danych, a nie algorytmy, mają kluczowe znaczenie dla programowania.
___/ * * * \___
Zasady Pike'a 1 i 2 przedstawiają słynną maksymę Tony'ego Hoare'a „Przedwczesna optymalizacja jest źródłem wszelkiego zła”.
Ken Thompson przeformułował zasady 3 i 4 Pike'a jako „W razie wątpliwości użyj algorytmów typu brute-force”.
Zasady 3 i 4 to przykłady filozofii projektowania KISS (Keep It Simple Stupid = Trzymaj się może i głupich aczkolwiek prostych metod).
Zasada 5 została wcześniej opisana przez Freda Brooksa w "Mityczny Osobo-Miesiąc" ("The Mythical Man-Month"). Zasada 5 jest często skracana do określenia: "pisania głupiego kodu, który używa inteligentnych obiektów".
Przetłumaczone na podstawie:
https://users.ece.utexas.edu/~adnan/pike.html
5 zasad programowania Roba Pike'a:
Zasada 1.Nie możesz przewidzieć, gdzie program zamierza poświęcić swój czas. Wąskie gardła pojawiają się w zaskakujących miejscach, więc nie próbuj zgadywać i hack'ować szybkości jego działania, dopóki nie udowodnisz, że to właśnie tam jest wąskie gardło.
Zasada 2.Pomiar. Nie dostrajaj prędkości, dopóki nie zmierzysz (funkcjonującego kodu), a nawet wtedy nie rób tego, chyba że (TA) jedna część kodu jest ważniejsza od całej jego reszty.
Zasada 3.Fantazyjne algorytmy są wolne, gdy n jest małe, a n jest zwykle małe. Fantazyjne algorytmy mają duże stałe. Dopóki nie wiesz, że n często będzie duże, nie wymyślaj. (Nawet jeśli n jest duże, użyj najpierw reguły 2.)
(* n - stała występująca gdy określa się jakość/szybkość algorytmów i ich stopień skomplikowania)
Zasada 4.Fantazyjne algorytmy są bardziej podatne na błędy niż algorytmy proste i są znacznie trudniejsze do zaimplementowania. Używaj prostych algorytmów oraz prostych struktur danych.
Zasada 5.Dane górują ponad wszystkim. Jeśli wybrałeś właściwe struktury danych i dobrze je zorganizowałeś, algorytmy prawie zawsze będą oczywiste. Struktury danych, a nie algorytmy, mają kluczowe znaczenie dla programowania.
___/ * * * \___
Zasady Pike'a 1 i 2 przedstawiają słynną maksymę Tony'ego Hoare'a „Przedwczesna optymalizacja jest źródłem wszelkiego zła”.
Ken Thompson przeformułował zasady 3 i 4 Pike'a jako „W razie wątpliwości użyj algorytmów typu brute-force”.
Zasady 3 i 4 to przykłady filozofii projektowania KISS (Keep It Simple Stupid = Trzymaj się może i głupich aczkolwiek prostych metod).
Zasada 5 została wcześniej opisana przez Freda Brooksa w "Mityczny Osobo-Miesiąc" ("The Mythical Man-Month"). Zasada 5 jest często skracana do określenia: "pisania głupiego kodu, który używa inteligentnych obiektów".
Przetłumaczone na podstawie:
https://users.ece.utexas.edu/~adnan/pike.html