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
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 8 gości

