Bilo da spadaš u grupu početnika u kodiranju ili si koder svetske klase, greške u pisanju koda će uvek biti prisutne, pogotovu ako šibaš po tastaturi kao Neo kad učita kung fu u sebe, pa maltretira Morpheusa u simulaciji (Sci fi freak u meni ti preporučuje da pogledaš sve Matrix filmove, ako već nisi).
Prvi korak u debagovanju je provera greške u kucanju, jer je typo uvek prisutan, ali svakako isproveravaj sve ćoškove grešaka koje su ti iskočile, da vidiš precizno u čemu je problem. To je ujedno i prvi savet - uvek pregledaj sve što si ispisao, proveri typo, pa onda ostalo po redu.
Uspori malo, samuraju!
Drugi savet, uspori malo samuraju! Nećeš uštedeti vreme u pisanju koda tako što ćeš da izlupaš tastaturu, pa posle sa drugarima pičiš na reku na po jedno. Ubrzo ćeš shvatiti da u takvim situacijama ćeš više vremena provesti ispravljajući greške, bilo da su pomenuti typo ili su logičkog tipa. Dakle, polako, smireno i ne žuri… Mnogo :).
Čitaj grešku koju ti je izbacio text editor (IDE) u konzoli ili šta god da koristiš za kodiranje. Ovo već nije savet kako da smanjiš greške, koliko da brže rešiš problem.
QA je iz raja izašao
Postoji neko mišljenje da greške možeš smanjiti ako češće testiraš kod, ali iskreno, ja nisam jedan od njih, pa ne znam koliko ovo doprinosi produktvnosti generalno, ali ajde… Ljudi pričaju, savetuju, pa verovatno da ima nešto u tome. Lično, tek kad iskodiram neku celinu, tad testiram i pregledam iz više uglova, pa ako ne radi, tražim u čemu je problem. U veb developmentu imaš različite pristupe i biraš šta ti odgovara, ali već za neko kompleksnije programiranje, moraš da se opredeliš za neku od alternativa. Ima nas raznih i svako ima neki svoj fazon koji mu odgovara.
Dobra oprema zlata vredna
E sad ultimativni savet, koji će ti možda biti smešan (meni je bio dok nisam uvideo benefite), ali nabaci neku dobru tastaturu. I ja sam mislio da je ovo čista glupost, tastatura je tastatura, nema tu mnogo filozofije, navikneš se i pičiš. Teško je navići se na neke krševe, ali zato ako nabaciš nešto kvalitetno što ti odgovara, ozbiljno ćeš smanjiti mogućnost za grešku. Što se mene tiče, snobovski sam nabacio dva seta, jedan za gejming, jedan za kodiranje. Za gejming definitivno mehanička tastatura, samo proveri tipove tastera koji ti odgovaraju, a za kodiranje, meni lično odgovara lap top stil tastature koja ima plitak hod.
Ovo je što se tiče fizičkog tebe i tvojih navika, a što se tiče tehničkih aspekata pisanja koda, tu se malo odvajamo od tebe kao individuu i zalazimo u neka pravila pisanja koda. Imaš ih milione, zavisi od tima i koju metodologiju koriste u strukturi koda, kako razvijaju određenu aplikaciju, ali greške možeš da smanjiš pomenutim testiranjem, gde ćeš možda imati i pomoć QA tima (a možda i ne), Code review je isto tako solidna aktivnost za rešavanje grešaka u kodu, ne tako popularna kod programera, ali izgleda da pomaže.
Ukoliko si frontend dev i imaš potrebu odmah da sedneš za visual studio i da kuckaš kodove kao Hollywood hakeri, nemoj! Odmah da ti kažem, izbegavaj ovo po svaku cenu. Prvo nacrtaj dizajn ili sačekaj da ti dostavi dizajner, pa tek onda kodiraj. Mnogo potencijalnih grešaka ćeš izbeći, a uštedećeš mnogo vremena u dev fazi na duže staze.
Prati trendove i pravila pisanja, takozvane best practices, ovde ćeš steći skil u pisanju clean koda, na kome će ti ostali developeri u timu biti jako zahvalni. Ne obaziri se na to kako će umetnički da ti zgleda ekran sa tvojim kodom, koliko se fokusiraj da pišeš funkcionalne kodove. Ovo pričam, jer viđam previše instagram devojaka koje navodno kodiraju (čast izuzecima naravno – veliki respekt), pa poziraju ispred desk setapa da ‘’zviznu’’ sliku na instagram. Drugar je hteo da angažuje devojku koja ima takve slike na profilu, bio je iz fazona ona sigurno zna da kodira, ima iskustva i slično, aj angažovaću je da mi pomogne. Ispostavilo se da devojka nije koder nego izrađuje sajtove u wordpressu.
Koristi proverene biblioteke za neke funkcionalnosti koje ti trebaju, jer hvala Bogu, ogromna je zajednica koja radi na open source projektima, a mnogo je kvalitetnih stvari koje će ti pomoći u kodiranju.
Pomoć prijatelja
Pozovi kolegu developera da pogleda tvoj kod, da ti da sugestije pogotovu ako je kolega senior i ima više iskustva od tebe, jer dve glave su pametnije od jedne. Pravi češće pauze, ali naravno, ne preteruj u ovome. Isto tako, dokumentovanje je jako važan, doduše dosadan proces, ali pomaže u daljem radu. Kodiraj deo po deo, modul po modul, nemoj započinjati druge taskove (ukoliko to nije neophodno razume se), jer tako je najlakše napraviti grešku.
Greške jesu česte, ali imaš veliku pomoć u linteru, koji je odličan tool za kodiranje. Ovde ćeš čak i neke logičke greške izbeći, pa će te manje boleti glava. Većina text editora (IDE) imaju mogućnost instaliranja plagina koji su kao linter od velike pomoći što se tiče grešaka, tako da ćeš i greške u kucanju zaobići.
Moj banalni typo
Ovo je nešto što mi je palo na pamet iz iskustva, gde sam lupao glavu oko grešaka i uvek je neka glupost koja se zavukla. Da navedem primer, pravio sam u css-u animaciju za mobile menu i prilikom definisanja animacije (animation: fade-in 0.3s ease-in-out forwards;), otkucao sam ‘’forward’’ umesto ‘’forwards’’ i nisam mogao da skontam 3 sata zašto mi ne radi animacija. Dobar primer, kako glupa greška može da košta dosta vremena. Nadam se da ćeš ih imati što je manje moguće, to ti od srca želim :).
U svakom slučaju, greške će se dešavati, bilo da su mizerne ili one esencijalne, ali najbolji su način za učenje i unapređivanje tvojih skilova. Neke možeš da redukuješ, neke ne, ali nemoj ih se plašiti, ne stresiraj se ako ti kolega da savet, sugestiju ili konstruktivnu kritiku kako da nešto poboljšaš, unaprediš kod sebe ili kako bi nešto trebalo da se uradi. To će biti ključ tvog učenja, jer mnogi ljudi čak plaćaju seniore da ih mentorišu, kako bi prikupili dovoljno znanja i iskustva za neke ozbiljnije projekte. Iskoristi sve moguće blagodeti interneta da se konstantno unapređuješ.