Jak tworzyć "dobry kod"

0

Witam serdecznie,
Chciałbym udoskonalić tworzony przeze mnie, macie jakieś dobre rady lub żródła które pomogą mi osiągnąć ten cel?
Pozdrawiam.

0

Poczytaj sobie o Agile development

0

Masz na myśli wersję pod używany język?
Edit
Chyba znalazłem OReilly The Art of Agile Development ?
Jakieś inne porady?

0

Agile to cała gama metodologii jak wytwarzać oprogramowanie i jest to chyba trochę za szeroka tematyka jeżeli ktoś chce tylko poprawić jakość pisanego przez siebie kodu. poza tym agile to nie panaceum na wszystko i jest jeszcze wiele metodyk kaskadowych/waterflow, które w niektórych typach projektów sprawują się lepiej.

Jeżeli już dobrze czaisz programowanie zorientowane obiektowo to polecam najpierw poczytać klasyki:
Wzorce projektowe - http://wysylkowa.pl/ks898059.html
Refaktoryzacja kodu - http://www.czytam.pl/k,az_79493,Refaktoryzacja-ulepszanie-struktury-istniejacego-kodu-Fowler-Martin-Beck-Kent-Brant-John-Opdyke-William-Roberts-Don.html

Praktyczne i przydatne niezależne od metodologii :)

0

Dobry pomysł to też dzielić kod na dużo małych funkcji/metod, które robią tylko jedną rzecz. To bardzo zwiększa czytelność kodu.

0

To może jeszcze jedno pytanie,
Jak patrzycie na kod to jakie jego cechy sprawiają że uważacie że jest dobry?
Może taki gdzie jest konsekwencja nazewnicza, dobrze dobrane nazwy, co jeszcze ?

0

Jak patrzycie na kod to jakie jego cechy sprawiają że uważacie że jest dobry?
Może taki gdzie jest konsekwencja nazewnicza, dobrze dobrane nazwy, co jeszcze ?

Skończcie wreszcie z tym nazewnictwem :-) - to najmniej ważna rzecz..

Kilka aspektów, które przemawiają za dobrym kodem (mowie o OOP oczywiście...):

  • łatwa przenośność kodu
  • wszelkie zmiany w logice łatwe do zrealizowania (zmiany nie mogą wymagać "przepisywania klas od nowa")
  • performance (czy twoja aplikacja zniesie 10tys. użytkowników?)

Można to zrealizować przez różne techniki:

  • sensowny podział na klasy i moduły (dobra enkapsulacja, stosowanie dziedziczenia, brak chorych powiązań i zależności, stosowanie sprawdzonych praktyk OOP)
  • wzorce projektowe
  • podział na warstwy (MVC) (nie mowie o frameworku ASP.MVC, tylko o samej architekturze...)
  • nie duplikować kodu!
  • unit testy (zapewniona stabilność i gwarancja, że zmiany nie zepsują istniejącej logiki)

Jeśli już mowa o stylu pisania, to zamiast nazewnictwa dałbym:

  • nie stosować ekstremalnie długich linii w kodzie
  • w kodzie nie powinno być wszelkiej konfiguracji (konfiguracja - do plików konfiguracyjnych)
  • usunąć zbędne komentarze, przykład:

public int DoorNumber; // Number of the door

Maniacy OOP mówią, że kod idealny jest tak napisany, że wszelkie zmiany w aplikacji wymagają jedynie dopisania nowego kodu, a nie modyfikacji już istniejącego.

0

Deti - to ja proponuje mały eksperyment. Weź jakiś open sourcowy kod którego nie znasz i po podmieinaj nazwy na coś w stylu AAAA, ABAA, BBBB. Ciekawe czy będziesz w ogóle w stanie znaleźć to co Cię interesuje (nie mówiąc już o pełnym zrozumieniu). IMHO dobre nazewnictwo poprawia czytelność nawet zwalonego designu.

0

A jaki jest dobry projekt Open Source, z którego warto brać przykład?

0
walec51 napisał(a)

Wzorce projektowe - http://wysylkowa.pl/ks898059.html

No bez jaj :|
Wzorce projektowe dla ludzi - http://helion.pl/ksiazki/hfdepa.htm

tomii napisał(a)

A jaki jest dobry projekt Open Source, z którego warto brać przykład?

Jądro Linuxa.

0

A ja proponuję się wyluzować , systematyka przychodzi z wiekiem i praktyką - stres zabija dobre pomysły:
TU

0
somekind napisał(a)

No bez jaj :|
Wzorce projektowe dla ludzi - http://helion.pl/ksiazki/hfdepa.htm

Obrazki juz pokolorowales?

// Egon weź nieco przystopuj - Q

0
somekind napisał(a)
walec51 napisał(a)

Wzorce projektowe - http://wysylkowa.pl/ks898059.html

No bez jaj :|
Wzorce projektowe dla ludzi - http://helion.pl/ksiazki/hfdepa.htm

Proponuje jednak te dla programistów :P

0
EgonOlsen napisał(a)

Obrazki juz pokolorowales?

// Egon weź nieco przystopuj - Q

E tam, ten dowcip akurat się udał :)
Albo i nie, bo pewno w założeniach to nie miał być dowcip ;P

walec51 napisał(a)

Proponuje jednak te dla programistów :P

W ogólnym przypadku jedno drugiego nie wyklucza. Czyżby w Twoim przypadku było inaczej? ;)

Można być tró i czytać encyklopedie, można sięgnąć do książki, której autorzy mieli pojęcie o dydaktyce i pomysł na przekazanie swojej wiedzy. Kwestia wyboru i masochizmu.
Zawsze po HF można sięgnąć do książki "dla programistów", tylko nie będzie raczej takiej potrzeby ;]

0
s_k napisał(a)

Można być tró i czytać encyklopedie, można sięgnąć do książki, której autorzy mieli pojęcie o dydaktyce i pomysł na przekazanie swojej wiedzy. Kwestia wyboru i masochizmu.
Zawsze po HF można sięgnąć do książki "dla programistów", tylko nie będzie raczej takiej potrzeby ;]

Kwestia czy potrzebujesz tej dydaktycznej nadbudówki żeby to zrozumieć, czy wolisz bardziej skrócony i konkretny opis. Ja wole przekaz jak inżynier do inżyniera, niż dydaktyk to ucznia.

poza tym jak ktoś mi na klasyk bandy czworga wyjeżdża z "no bez jaj" to raczej nie zasługuje na poważne traktowanie.
Aluzja do encyklopedii jest też bezsensowna. Książka ma formę katalogu ale prawie każdy z elementów katalogu jest wpleciony w use case projektowania edytora dokumentów na początku książki.

// trochę za dużo loginów chyba mam w tym forum :)

0
walec-51 napisał(a)

Kwestia czy potrzebujesz tej dydaktycznej nadbudówki żeby to zrozumieć, czy wolisz bardziej skrócony i konkretny opis. Ja wole przekaz jak inżynier do inżyniera, niż dydaktyk to ucznia.

Przecież jedno drugiemu nie przeczy. W HF jest krótko i konkretnie, obrazki i "dydaktyczna nadbudówka" nie rozciągają treści, tylko są po to, żeby łatwiej przekazać wiedzę czytelnikowi. Bo chyba po to książki są, nieprawdaż?
UML także jest bez sensu? ;>

poza tym jak ktoś mi na klasyk bandy czworga wyjeżdża z "no bez jaj" to raczej nie zasługuje na poważne traktowanie.

Dlatego, bo to klasyk? I nie można krytykować?
Jedni coś wynajdują, a inni potrafią to opisać, a kwestia oceny jakości książki pozostaje i tak czytelnikowi.

0

A ja mogę polecić książkę Code Complete.

0
somekind napisał(a)
tomii napisał(a)

A jaki jest dobry projekt Open Source, z którego warto brać przykład?

Jądro Linuxa.

Jesli ktos oczekuje OOD/P to kernel nie spelni jego wymagan.
Czysto strukturalny kod w C.
Oczywiscie wysokiej klasy i jak najbardziej warto z niego brac przyklad.
Szczegolnie tym ktorzy sa przeciwni programowaniu z "goto" :-D bo tam mozna to znalezc :).

0

Tak, Linux... Przecież ten kernel to jeden wielki burdel, przeładowany makrami w każdym możliwym miejscu. Architektura kodu też spójna jak cholera, stanowczo nie polecam zagłębiania się w tego coś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1