[UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a

Tutaj umieszczamy tematy związane z językami programowania niepasującymi do innych działów.
Regulamin forum
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
Awatar użytkownika
j23
Expert
Expert
Posty: 506
Rejestracja: czwartek 08 paź 2015, 18:40

[UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a

Postautor: j23 » ś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
Internet łączy ludzi, którzy dzielą się swoimi zainteresowaniami, pomysłami i potrzebami, bez względu na geograficzne (przeciwności).
BOB TAYLOR, PARC

Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

Re: [UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a

Postautor: Zegar » czwartek 22 wrz 2022, 08:56

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

Awatar użytkownika
j23
Expert
Expert
Posty: 506
Rejestracja: czwartek 08 paź 2015, 18:40

Re: [UNIVERSALNE] - 5 Zasad programowania wg Rob'a Pike'a

Postautor: j23 » czwartek 22 wrz 2022, 15:01

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ć... :!:
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),
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 :lol: ) 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. ;)
:like:
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


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 1 gość