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
[UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a
Regulamin forum
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
[UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC
BOB TAYLOR, PARC
Re: [UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a
j23 pisze:5 zasad programowania Roba Pike'a:
Kiedy się je czyta, wydają się być oczywiste. Ale nie każdy potrafiłby je sformułować...
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."A. Einstein
X is work. Y is play. Z is keep your mouth shut."A. Einstein
Re: [UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a
Tak jak przy wynalazkach... Kiedy jest zapotrzebowanie na rozwiązanie problemu, a przy tym powstaje cała masa tzw.f*ckup'ów (czyli po polsku -jakby to ujął jeden z profesorów z rodzynków- tzw. imperfekcji konstrukcyjnej czyli po ludzku spiep*%onej roboty),Zegar pisze:j23 pisze:5 zasad programowania Roba Pike'a:
Kiedy się je czyta, wydają się być oczywiste. Ale nie każdy potrafiłby je sformułować...
to w TEJ KONKRETNEJ CHWILI CZASU prawie nikt spośród tych wszystkich "naukowców", "geniuszy" i luminiarzy "specjalistów" nie potrafi podać gotowego, często prostego i oczywistego rozwiązania (za to wielu z nich spekulując i uprawiając zwykle hochsztaplerstwo udaje, że problem został rozwiązany -skrzętnie ukrywając swoje NIEUDANE "wynalazki" spośród których KAŻDY "wynalazek=f*ckup" pozostaje sierotą, bo kto by chciał się przyznać do czegoś takiego, no a już zwłaszcza osoba "oświecona" NAUKOWO z tzw.tytułem naukowym )...
I WTEDY pojawia się TA JEDNA osoba z boku, z prawdziwie światłym i otwartym umysłem (której z reguły nikt z tzw."naukowców", po angielsku tzw."society", nie słucha -bo po co słuchać byle tam kogo co "nie powinien wypowiadać się w kwestiach naukowych")
i mało tego, bo WTEDY WŁAŚNIE TA JEDNA osoba=prawdziwy WYNALZCA podaje TEN WŁAŚCIWY, często jedyny, ALGORYTM/WYNALAZEK/SPOSÓB na rozwiązanie problemu. Często też wówczas -pod pozorem braku podstaw prawnych i wobec innych okoliczności- ZOSTAJE POZBAWIONA DO SŁUSZNEGO NOSZENIA PRAW PATENTOWYCH jak przystaje na prawdziwego OJCA WYNALAZKU (bo przecież, no a jakże, wśród luminiarzy i tych "naukowców" co już "dawno podali to rozwiązanie" jest ich sporo)...
Ewentualnie -z reguły- tworzy się typowa sytuacja gdzie WYNALAZCA MUSI zrobić tzw.dobrą minę do złej gry, bo tak to już jest, że "sukces ma wielu <"ojców"> a tylko porażka pozostaje opuszczoną <"matką-sierotą">"...
Teraz zresztą osoby mające aspiracje do zostania wynalazcą mają (na polskie i europejskie realia) z reguły dwie drogi, tzn.albo do konieczności posiadania dość zasobnego portfela (żeby jakby "wykupić" sobie swoje WŁASNE prawa do patentu ) albo konieczności bycia naukowcem lub "naukowcem" gdzie często za najwyższą wartość uznaje się tzw.SCIENCE czyli naukę, a inne wyższe (a czasem i przewyższające) wartości celowo się nie wspomina, lub z premedytacją zapomina... a ewentualny wynalazek zręcznie rozciera w grupie osób gdzie nie każdy jest godzien nosić tytuł naukowca, a co dopiero wynalazcy.
P.S. Dlatego jestem wielkim zwolennikiem każdej jednej licencji typu Open Source, zwłaszcza MIT czy jednej z GPL.
Prywatnie uważam, że zwykła ludzka uczciwość nakazuje, aby pamiętać KTO był NAPRAWDĘ prawdziwym Ojcem każdego jednego wynalazku.
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC
BOB TAYLOR, PARC
Wróć do „Inne języki programowania”
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości