/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// Programowanie ze stylem by gminick /// /// /// /// /// /// /// /// /// /// /// v 1.0 /// /// /// /// /// Jesli czesto sie zdarza, ze musisz czytac kod kogos innego, z pewnoscia wiesz, ze czasem mozna spedzic wiele minut probujac zrozumiec naprawde prosty, ale zle napisany kawalek. W tym tekscie opisze moj styl, nikt nie musi sie stosowac, ale wydaje mi sie, ze kod tak napisany latwo jest przeczytac. Ponizej opisane technike pisania wypracowalem sobie, gdy bardzo duzo programowalem w Perlu. Kazdy kto zna Perla wie, ze tam naprawde bardzo latwo mozna skomplikowac nawet "Hello world\n" ;) Moja technike wypracowalem sobie swiadomie, robilem nawet testy, pisalem rozne programy, pierwsze napisane z mysla o stylu i drugie, bardzo enigmatyczne kawalki. Po paru tygodniach zagladalem do tego kodu. Duzo latwiej bylo zrozumiec kod napisany 'stylem' ;) Ale do rzeczy, zaczne od calkowitych podstaw. <<< 1 >>> #include void kod(void); int main(int argc, char **argv) { int n, c; char string[80]=""; n = c = 0; if(argc < 3) help(); kod(); return 0; } void kod(void) { ... } <<< 1 >>> Nie probuj zrozumiec tego kodu, bo nawet nie zwracalem uwagi na to, czy ma sens, chodzi tylko o zauwazenie kilku szczegolow, ktore znajdziesz w kazdym moim programie napisanym w c i bardzo prawdopodobne, ze kod napisany w innych jezykach bedzie wygladal podobnie. Tutaj najbardziej widac odstepy wielkosci 3 spacji :) Bo tak wlasciwie jest w moim kodzie zawsze bedzie: if(costam) do_it(); duzo latwiej przeczytac taki kawalek, niz np. if(costam) do_it(); pokaze to na obszerniejszym przykladzie: while(repeat == -1 && 1) {fprintf(fd, "%s", backs); fflush(fd); sleep(sec);} ta sama petla napisana w bardziej czytelny sposob wyglada tak: while(repeat == -1 && 1) { fprintf(stderr, fd, "%s", backs); fflush(fd); sleep(sec); } zrobilo sie z tego 5 linijek, ale kod duzo latwiej jest teraz zrozumiec i zmniejszylismy troche szanse popelnienia bledow. Teraz cos innego, kiedy piszemy np. petle w jakims warunku, dobrze jest zachowac te 3 spacje odstepu, w instrukcjach, tkre maja byc w petli, przyklad: if(zmienna == 0) { n = zrob_to(); for(i = 0; i < n; i++) zrobtamto(i); } latwiej zauwazyc, ze zrobtamto(i) ma byc wykonywane w petli, kiedy trzeba umiescic wiecej instrukcji, ja robie to tak: if(zmienna == 0) { for(i = 0; i < n; i++) { zrobto(i); zrobtamto(i); } } spotkalem sie kiedys z kodem, ktory krotko mozna by przedstawic tak: if(i==0){ n=zrob_cos(); for(i=0;i