• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak powinien wyglądać dobrze napisany program?

+10 głosów
673 wizyt
pytanie zadane 8 kwietnia 2015 w Offtop przez 1110200039910 Gaduła (4,630 p.)
Jak według Was powinien wyglądać dobrze napisany program? Powinny być w nim odstępy pomiędzy danymi działaniami, a może nie?

12 odpowiedzi

+6 głosów
odpowiedź 8 kwietnia 2015 przez efiku Szeryf (75,420 p.)
edycja 9 kwietnia 2015 przez efiku

Kod powinien: 

  • Spełniać potrzebę biznesową klienta
  • Zgodny z zasadami SOLID 
  • Zawierać jak najmniej komentarzy KOD POWINIEN BYĆ CZYTELNY ( Uncle Bob "clean code" ) 
  • NIE PISANY W NOTATNIKACH , IDE jest od tego 
  • Zawierać testy BDD i TDD. 
  • Funkcja = jedna operacja

Moim zdaniem:)

Edit: Cebulaki minusują? No cóz.. proponuje się dokształcić w googlach czo to SOLID, BDD, Clean Code i TDD, bo coś czuję, że się wam przyda wink Ach ta nasza polska mentalność.

komentarz 17 kwietnia 2015 przez Eerie Mądrala (7,130 p.)
Czemu jak najmniej komentarzy? Ja tam uważam zupełnie na odwrót i obszernie komentuję wszystko co tylko się da. Dzięki temu jak po jakimś czasie wrócę do kodu, to będzie mi łatwiej zrozumieć o co biega.
komentarz 17 kwietnia 2015 przez efiku Szeryf (75,420 p.)

Wiadomo, czasami komentarze są przymusem, ale pozwól, że zacytuję Ci z książki wujka Bob'a "czysty kod" str. 75: 
"W rzeczywistości komentarze są w najlepszym przypadku koniecznym złem. Jeżeli nasz język programowania jest wystarczająco ekspresyjny lub mamy wystarczający talent, bywykorzystywać ten język, aby wyrażać nasze zamierzenia, nie będziemy potrzebowac zbyt wielu komentarzy"

Skoro komentujesz wszystko obszernie co tylko się da, to znaczy, że Twój kod nie jest czysty - każdy programista Ci to powie :P 

(Strona 77): "Czytelny kod nie wymaga komentarzy". Czytelny kod to taki który czytasz jak artykuł w gazecie, klasa mówi o tym co robi, funkcje/metody opisują siebie same, czytając zmienne wiesz o co chodzi bo nie są one zapisane np  int a,b,c,d. 

Przykład: 


// A

// Sprawdzenie czy pracownik ma prawo do wszystkich korzyści
if (( employee.flags & HOURLY_FLAG) && ( employee.age > 65 ) )


// B

if ( employee.isEligibleForFullBenefits() ) 


 

Ja osobiście wolałbym zobaczyć przykład drugi, bo jak czytam kod , to po prostu sam mi się opisuje. Pozdrawiam :)

PS: Jeżeli nie masz tej książki, to poszukaj jej sobie i ją zakup, naprawdę Ci się przyda i zrozumiesz dlaczego nie warto pisać komentarzy :) ( Aczkolwiek musisz choć trochę znać OOP ) 

 

komentarz 17 kwietnia 2015 przez Eerie Mądrala (7,130 p.)

O kurde, każdego dnia człowiek uczy się czegoś nowego :) Dzięki :D Ale ja tam niechluj w ogóle nie jestem. Piszę czytelny kod i jeszcze go dodatkowo komentuję.

Ja bym to zrobił tak:
 

// Sprawdzenie czy pracownik ma prawo do wszystkich korzyści
if ( employee.isEligibleForFullBenefits() ) 

 

komentarz 17 kwietnia 2015 przez efiku Szeryf (75,420 p.)

Ten komentarz nad ifem też jest zbędny :P 
isEligibleForFullBenefits = Sprawdzenie czy pracownik ma prawo do wszystkich korzyści

Metoda jednocześnie opisuje samą siebie :D 

https://translate.google.pl/?ie=UTF-8&hl=pl&client=tw-ob#en/pl/is%20Eligible%20For%20Full%20Benefits

komentarz 17 kwietnia 2015 przez efiku Szeryf (75,420 p.)
Spokojnie, nie mówię, że jesteś niechluj czy coś:) Komentarze to zło konieczne, jeżeli piszesz czytelny kod,  w sumie to nie wiem czy piszesz w OPP, jeśli to jest OOP to same interfejsy powinny mówić co ta klasa robi itd:)

Pozdrawiam:)!
komentarz 17 kwietnia 2015 przez Eerie Mądrala (7,130 p.)
Co to OPP i co to OOP? Wyjaśnisz tak w jednym zdaniu? Nie chce mi się googlować i nie chce się zagłębiać, chcę tak tylko pokrótce ogarnąć o co chodzi. Jedno zdanie wystarczy.
komentarz 17 kwietnia 2015 przez efiku Szeryf (75,420 p.)

Ach byka zrobiłem, miało być OOP nie OPP :D 

object-oriented programming = Słynna Obiektówka :) Klasy itd.. 

+2 głosów
odpowiedź 8 kwietnia 2015 przez Pan Kulomb Pasjonat (18,630 p.)
Powinien być czytelny i nie powinien mieć redundancji.
+2 głosów
odpowiedź 8 kwietnia 2015 przez Vakoss. Bywalec (2,870 p.)
Dobrze napisany program według mnie powinien być przejrzysty. Zajmujący jak najmniej pamięci oraz jak najlepiej wytłumaczony. Jeśli przesyłasz komuś swój kod źródłowy programu lub chcesz wytłumaczyć go to najlepiej zastosować komentarze.
+1 głos
odpowiedź 8 kwietnia 2015 przez krecik1334 Maniak (58,370 p.)
Czysty kod, wydajne algorytmy O(log(n)) lub O(n), sformatowany najlepiej w AStyle (przynajmniej tak mi się najlepiej widzi), nie używający archaicznych standardów.
1
komentarz 8 kwietnia 2015 przez Pan Kulomb Pasjonat (18,630 p.)
No nie zawsze da się osiągnąć taką złożoność.
1
komentarz 8 kwietnia 2015 przez krecik1334 Maniak (58,370 p.)
Ale taka jest wymarzona.
+1 głos
odpowiedź 8 kwietnia 2015 przez Wiktor Stary wyjadacz (11,100 p.)
Przede wszystkim chodzi o czytelność kodu. Również przy nauce, na przykład C++ ważne jest też aby deklarować zmienne pełnymi nazwami zamiast: x, y, z, ponieważ jak po pewnym czasie wrócisz do takiego programu to nie będziesz miał problemów z odświeżeniem sobie tego co napisałeś.

Pozdrawiam.
+1 głos
odpowiedź 8 kwietnia 2015 przez MatexQ Bywalec (2,260 p.)
W uporządkowaniu kodu HTML może Ci posłużyć opcja beauty, która jest w edytorze online codeanywhere. Nie wiem czy inne edytory coś takiego posiadają. Z kodem php może pomieszać, ale kod HTML'a układa ładnie :)
+1 głos
odpowiedź 8 kwietnia 2015 przez Vizard Użytkownik (750 p.)

Dokładnie opisany komentarzami (Po paru mięsiącach przerwy spojrzysz na kod i nie będziesz wiedział o co chodzi) oraz czytelnie rozmieszczony za pomocą TAB czy wspomnianego AStyle. Po trzecie łatwy dla piszącego czyli jeśli niezbyt rozumiesz klasy to bez klas :D

+1 głos
odpowiedź 8 kwietnia 2015 przez Kamil_S Obywatel (1,310 p.)
Witam,
Książka pt. "Czysty Kod" :-). Pozatym jeżeli masz Code Blocks'a, to zapisz trochę kodu, kliknij prawym przyciskiem myszy na "placu" roboczym a następnie z menu podręcznego wybierz wtyczkę AStyle. To wbudowana wtyczka do wyrónywania kodu i poprawiania jego czytelności. Przyjrzyj się po takiej operacji jak to wygląda, a częściowo otrzymasz odpwiedź na swoje pytanie. Tylko częściowo, bo mimo, że należy trzymać się standardów, to jednak to subiektywna ocena każdego z nas może być inna :-).

Pozdrawiam :-).
+1 głos
odpowiedź 8 kwietnia 2015 przez kmieciak_m Mądrala (7,450 p.)

Powinien być przede wszystkim czytelny (o czym już wiele osób pisało). Od siebie dodam, że bardzo ważne są komentarze. Bez nich będzie ciężko powrócić do kodu po pewnym czasie. Jak spojrzałem po pół roku na mój kod z Pascala (teraz przerzuciłem się na C++) to zastanawiałem się czy aby na pewno ja go pisałem.wink

+1 głos
odpowiedź 8 kwietnia 2015 przez bossik21 Mądrala (5,750 p.)
Dobrze napisany kod zawiera :
Tabulacje - dzieki czemu kod jest czytelny i nie trzeba zastanawiać sie króte fragmenty kodu są w danym bloku.

Nazway zmiennych powinny wyglądać np tak "numberOfUsers" czyli każdy kolejny wyraz zaczyna się z wielkiej litery, pierwszy z małej., nie stosuj zmiennych krótkich typu "a" ,"b", "c" ... "z"

 ... ani "a1" ,"a2" ,"a3" , takie zmienne są nieczytelne i po pewnym czasie nie będziesz kompletnie wiedział co te zmienne robiły. A pomyśl tylko, że miałbyś rozszyfrowywać kod po kimś, kto takich zmiennych używał ...

Metody powinny być nazywane czasownikiem i powinny jasno opisywać co dana metoda robi.np "getUsersList", "setLanguage"

Metody powinny wykonywać tylko jedną rzecz, ale wykonywać ją śpiewająco.

Klasy powinny być nazywane rzeczownikiem " Samolot" , "Czlowiek" "User" "Kolo"

Komentarze powinny opisywać tylko najważniesjze i bardziej skomplikowane funkcjonalności programu, nie ma potrzeby przy każdej lini pisać komentarza, bo jest to zwyczajnie zbędne.
0 głosów
odpowiedź 8 kwietnia 2015 przez Adrian1999 Nałogowiec (34,560 p.)
Powinien być kolorowy ^^ ogółem, co przyjemne dla oka to i dla duszy, jeżeli się w tym ty połapiesz, i kod jest do wykorzystywania dla ciebie to ten kod jest cudny. Takie moje zdanie kolorowego Adriana!
0 głosów
odpowiedź 8 kwietnia 2015 przez daan Pasjonat (17,640 p.)

Kwestia względna cool Ilu programistów tyle opinii a dobry programista przeczyta każdy kod (chociaż w takim stopniu aby wiedzieć co robi). Jak zaczynałem przygode z kodem to robiłem sporo odstępów, klamry po każdym if'ie itd. Teraz raczej ich unikam (jak if ma wkonać jedną instrukcje to po co zapisywać to w 2 linijkach ? a może klamry do tego ? :D). Kolejna sprawa nazewnictwo, lepiej stosować dłuższe nazwy, szczególnie jako argumenty funkcji (czasami dobra nazwa może zastąpić komentarz). Ogólnie to temat rzeka ... i nigdy nie powstanie "idealny" styl kodowania bo zawsze znajdzie się osoba, która Ci powie, że to jest nieczytelne bo to i tamto laugh Pisz jak lubisz byle był widoczny progress.

Podobne pytania

+8 głosów
2 odpowiedzi 135 wizyt
0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 23 grudnia 2017 w C i C++ przez Huberti Gaduła (4,520 p.)
0 głosów
2 odpowiedzi 130 wizyt

88,661 zapytań

137,269 odpowiedzi

306,597 komentarzy

58,863 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...