Odakle ti to da vecina profi programera pravi sw ofrlje, pa se posle ispravljaju greske ?!?!?!? Koliko ti to znas
profi programera (kad kazem profi, mislim na profi, ne oni koji samo dobijaju pare za svoj posao) i njihov nacin rada ?
Problem nastaje zbog toga sto su programski zadaci (oni malo jaci od cd/video kluba) vrlo komplexni. Stvar se dobro proanalizira i rastavi na sastavne delove koji se uredno zavrse (znaci, plan+implementacija+testiranje+dokumentacija). Medjutim problemi pocinju da nastaju kada te delove treba sastaviti nazad u celinu, pogotovo ako imamo na umu tim od pedesetak programera, gde nije retkost da se radilo i u vise jezika, alata i stilova. Naravno da su interfejsi planirani, ali budi siguran da u procesu implementacije neke stvari moraju biti izmenjene da bi se resio neki konkretan problem koji jednostavno nije mogao biti predvidjen planiranjem. I recimo da si za resenje problema morao da upotrebis dodatni thread i taj jedan je dodvoljan da ugrozi stabilnost celog procesa (zbog ocajne strukture OSa ili nesto slicno) jer threadova ima suvise (vise od 16, recimo), nisu sinhronizovani, ili nesto trece. Onda ispada da treba nesto da se isece kao celina i odvoji u odvojen proces. Ili da se uzima real-time kernel. Ili da se ponovo menja taj izvorni modul i izabere neki drugaciji model za resenje problema. Dakle, primer je jednostavan i ne tako redak. Da je sve tako jednostavno, svi bi se bavili programiranjem, ali nije. To je krvav i zaj*ban posao i kada problem iskrsne (a ume da iskrsne), ima da se radi noci i dan, subotom i nedeljom dok se problem ne resi ili oci ne ispadnu. I uvek moze da se desi da ti jenegde ostao potencijalni lutajuci pointer koji moze da zezne neku memorijsku lokaciju samo usled odredjenog spleta uslova, pa ga zato nisi otkrio.
Za one koje je mrzelo sve da citaju: sa porastom kompleksnosti programa, raste i broj problema - to je neizbezno. I nema veze sa 'ofrlje' pisanjem programa. Debugger je majka programerskih alata i nauci da ga koristis, Misko, jer ces ga cesto ljubiti
Stoji Geekova konstatacija (samo malo preformulisana by me

) : nemoj da zuris nikada sa implementacijom. Potrosi rado nedelju-dve vremena vise pre samog programiranja u razmisljanju kako ces resiti stvari. Kada krenes sa kodiranjem, ne mozes da si priustis takav luksuz da kreces iz pocetka, jer si neke stvari u brzini prevideo. Nestrpljivost i brzopletost su dve prve osobine koje ljudima udare u glavu kod programiranja. Sama izrada ideje i plana projekta zna da uzme cak i trecinu vremena planiranu za izvrsenje, a samo dve trecine kodiranje.