Trska i hrast (Prilagodi se ili pukni)

Kada pokušamo otrgnuti bilo šta što bi bilo samodovoljno ustvari uviđamo da je u Svemiru doslovno sve povezano.

Džon Mjuer

Kada se grade lančane strukture tada je dovoljno da jedna halka u prstenu pukne i sve će otići dovraga.
Kada se grade mrežaste strukture tada je struktura kruta i veoma otporna na promjene, a pogotovo na elastičnost.
Kada se grade granaste strukture tada su one veoma fleksibilne i ako “otpadne” jedna grana, neće doći do značajnih promjena na kompletnoj strukturi.

Lančana struktura
Mrežasta struktura
Granasta struktura

Kod izgradnje softvera trebalo bi izbjegavati kako lančane, tako i mrežaste strukture. Prve iako su fleksibilne nisu otporne na mala ili velika pucanja, a druge (mrežaste) veoma su otporne na promjene obzirom da postoji mnoštvo zavisnih veza.

Za granastu stukturu bi se moglo reći da je izdvojena stuktura, odnosno jezikom razvoja softvera – Decupled code.

U granastoj strukturi jednostavno je u bilo kom trenutku zamijeniti bilo koju granu.

Reci, ne pitaj

Princip TDA – Tell don’t ask koristi se umnogome kod objekto orjentisanog programiranja kada se logika treba smjestiti unutar samog objekta umjesto da se provjerava negdje izvana.

Primjer koji se često navodi je takav ako se ima neki objekat sa getter-ima i setter-ima, umjesto da se granične vrijednosti provjeravaju izvana kroz getter, to se treba pomjeriti logika unutar samog setter-a. Pa će odmah, prilikom postavljanja vrijednosti da dođe do upozorenja kako je vrijednost izvan granica. Ili pak, ako se vrijednost postavlja negdje izvan setter-a, kod poziva getter-a vrijednost će se provjeriti unutar objekta i vratiti poruka sa upozorenjem.

Međutim, ovdje strogo treba voditi računa da se ne postane opsjednut pomjeranju cjelokupne logike u objekat. Potrebno je napisati samo one getter-e koji doista trebaju.

Zakon Demetera

Zakon Demetera (LoD – Low of Demeter) ili pak princip najmanjeg znanja veoma je sličan kao princip Nulto povjerenje, odnosno Trust Zero, gdje se korisnicima daje samo onoliko koliko im doista treba, ni trunka više od toga.

Kod programiranja, potrebno je da metode rade samo ono za šta postoji trenutna potreba, ni truna više. I ne samo da ne treba imati previše poslovne logike, nego ne treba imati ni zavisnosti koje su u potpunosti bespotrebne.

U tu svrhu važno je izbjeći višestruko nasljeđivanje kada god je to moguće, jer to stvara problem lančane veze spomenute na početku. Ako treba pristupiti nekom globalnom podatku (ne nužno varijabli), neka to bude direktno ili sa što manje prolaza kroz sve naslijeđenje objekte u nizu.

U zavisnosti od programskog jezika, to znači da je pozivanje neke vrijednosti korištenjem “tačke” i “->” dozvoljeno samo jednom, a ne višestruke “tačke” i višestruke “->” u pozivu.

Ovo nas dovodi do novog principa koji kaže: Izbjegavajte (ne konstante) globalne varijable kada god je to moguće – jer je preteško pratiti njihovu promjenu.

Žongliranje u stvarnom svijetu

Stvari se ne dešavaju tek tako, one su (namjenski) stvorene da se dogode.

Džon F. Kenedi

Bilo da se neki događaj odvija izvan (korisnik nešto klikne i očekuje povrat) ili unutar (nakon završetka neke operacije korisnik dobija uputu za nastavak) korisnici vole događaje – events. Međutim, izrađivati interaktivne softvere doista je teško bez jasne strategije. U nastavku su četiri strategije koje mogu pomoći:

0

Hits: 55