Dobri programeri su stručnjaci u svom poslu, a za postizanje uspeha u ovom području potrebno je voditi se određenim principima u radu. Postoji mnogo principa programiranja koji se koriste u razvoju softvera.
U ovom tekstu ćemo istražiti ključne principe koji se primenjuju u radu dobrih programera i saznati kako njihova primena može poboljšati kvalitet i efikasnost programiranja.
Princip KISS (eng. Keep It Simple, Stupid)
Ovaj pricip kaže da većina sistema funkcioniše ako su jednostavni i ne previše komplikovani. KISS princip se primenjuje na mnogim nivoima programiranja, od dizajna korisničkog interfejsa do implementacije samog koda. Konkretno, to može značiti da se izbegavaju suvišni kod i nepotrebne funkcionalnosti i da se koristi najjednostavnija logika za rešavanje problema.
Većina programera se vodi ovim principom tokom rada i uvek pokušava da pronađe jednostavnije rešenje za neki postojeći sistem, kako bi sam sistem bio efikasniji.
Ovaj princip ima mnoge prednosti. Prvo, jednostavniji kod je lakši za održavanje, što znači da se manje vremena i resursa troši na pronalaženje i popravljanje grešaka. Takođe, jednostavniji kod je čitljiviji i razumljiviji, što omogućava veću transparentnost u projektu i omogućava programerima da se lakše uhvate u koštac sa novim zadacima.
Princip DRY (eng. Don’t Repeat Yourself )
Ovaj princip znači neponavljanje koda, odnosno izbegavanje dupliranja podataka. Umesto da duplirate linije pronađite algoritam koji koristi petlju. DRY kod se lako održava, jer je lakše otkloniti greške u jednoj petlji koja sadrži 50 ponavljanja, nego u 50 blokova koda koji sadrže po jedno ponavljanje. Umesto da se kod duplira u različitim delovima aplikacije, trebalo bi ga izdvojiti u zajedničke funkcije, klase ili module.
Primena principa DRY može dovesti do efikasnijeg i lakšeg održavanja koda, jer se promene treba napraviti samo na jednom mestu, umesto u više delova koda. Takođe može dovesti do bolje čitljivosti koda i smanjenja šanse za greške koje se mogu pojaviti usled kopiranja i lepljenja koda.
Princip YAGNI ( eng. You Aren’t Gonna Need It )
Jednostavno je – neće vam trebati! Ovaj princip znači da ne treba rešavati problem koji ne postoji. Princip YAGNI podrazumeva da se funkcionalnost dodaje samo kada je potrebna, umesto da se unapred dodaje funkcionalnost koja možda nikada neće biti korišćena.
Ovaj princip se često koristi u agilnom razvoju softvera kao način da se smanji kompleksnost koda i smanje troškovi održavanja. Umesto da se razvijaju funkcije koje se ne koriste, razvija se samo ono što je trenutno potrebno za zadovoljenje zahteva korisnika.
Primena principa YAGNI može smanjiti nepotrebno preklapanje funkcija, nepotrebno povećanje vremena razvoja i nepotrebne zahteve za održavanje. Takođe može dovesti do efikasnijeg i čistijeg koda koji je lakši za razumevanje i održavanje u budućnosti.
Principi SOLID
SOLID predstavlja skup principa koji se koriste za dizajniranje objektno orijentisanog softvera.
SOLID akronim označava pet principa:
- Single Responsibility Principle (SRP) – jedna klasa treba da ima samo jednu odgovornost;
- Open/Closed Principle (OCP) – softverski entiteti treba da budu otvoreni za proširenje, a zatvoreni za modifikaciju;
- Liskov Substitution Principle (LSP) – objekti u sistemu treba da budu zamenljivi njihovim potklasama;
- Interface Segregation Principle (ISP) – interfejsi treba da budu što manji i specifičniji za potrebe klijenata;
- Dependency Inversion Principle (DIP) – zavisnosti između klasa treba da se baziraju na apstrakcijama, ne na konkretnim implementacijama.
Princip TDD (eng. Test Driven Development)
Ovo je proces programiranja u kome se testovi pišu pre nego što se napiše kod, kako bi se osiguralo da kod radi kako treba. Cilj ovog pristupa je da se smanji broj grešaka i održavanje koda bude lakše. TDD princip se često koristi u agilnom razvoju softvera jer omogućava brzo otkrivanje grešaka i iterativni razvoj. Takođe, TDD podstiče programere da se fokusiraju na pisanje čistog i testabilnog koda, što olakšava održavanje softvera i smanjuje troškove. Ovo je koristan princip koji pomaže u otkrivanju grešaka u ranoj fazi razvoja i poboljšava kvalitet koda.
Princip BDD (eng. Behavior Driven Development)
Ovaj princip u programiranju se fokusira na opisivanje ponašanja softvera, u obliku skupa scenarija koji su pisani u jeziku razumljivom za sve uključene u razvojni proces. Scenariji se pišu na osnovu kriterijuma prihvatljivosti softvera (eng. acceptance criteria) i koriste se za definisanje funkcionalnosti sistema. Koristi se za povezivanje razvoja softvera sa poslovnim zahtevima. U BDD principu, timovi zajedno definišu ponašanje softverskog sistema koristeći zajednički jezik i primenjuju princip „tri amigos“, što podrazumeva saradnju između programera, testera i poslovnih analitičara. Scenariji se koriste kao osnova za pisanje testova, ali i kao dokumentacija koja opisuje ponašanje sistema. BDD je koristan princip koji pomaže timovima da se usredsrede na funkcionalnost sistema, olakšava komunikaciju među članovima tima, a takođe i podstiče razmišljanje o kriterijumima prihvatljivosti softvera.