Funkcionalan dizajn, principi, obrasci i praksa – Robert C. Martin
Funkcionalan dizajn, principi, obrasci i praksa – Robert C. Martin
Share
Funkcionalan dizajn, principi, obrasci i praksa – Robert C. Martin
Prijevod knjige “Functional design”
U knjizi “Funkcionalni dizajn”, poznati softverski inženjer Robert C. Martin (poznat kao “Ujka Bob”) objašnjava primenu funkcionalnog programiranja za izgradnju boljih sistema za krajnje korisnike. Martin poredi konvencionalne objektno-orijentisane strukture koda u Javi sa onima koje omogućava funkcionalno programiranje, identifikuje optimalne uloge za svaki pristup i demonstrira kako unaprediti sistem pažljivim korišćenjem oba pristupa u odgovarajućim kontekstima.
Martinov pristup je pragmatičan, s naglaskom na rešavanju stvarnih problema umesto teorijskog razmatranja. Kroz pristupačne primere, programeri će razumeti kako im jednostavan, semantički bogat jezik Clojure, može pomoći da unaprede čistoću koda, dizajn, disciplinu i rezultate. Martin istražuje poznate SOLID principe i Dizajnerske obrasce Četvoročlane Grupe iz funkcionalne perspektive, te otkriva zašto obrasci i dalje imaju veliku vrednost za funkcionalne programere i kako ih koristiti radi postizanja izuzetnih rezultata.
- Razumevanje osnova funkcionalnog programiranja uključuje koncepte kao što su nemutabilnost (immutability), perzistentni podaci, rekurzija, iteracija, lenjost (laziness) i stanje (statefulness)
- Kontrast funkcionalnog i objektnog pristupa programiranju kroz stručno osmišljene studije slučaja
- Istraživanje funkcionalnih dizajnerskih tehnika za tok podataka
- Korišćenje klasičnih SOLID principa za pisanje boljeg Clojure koda
- Usavršavanje pragmatičnih pristupa funkcionalnom testiranju, korisničkim interfejsima i konkurentnosti
- Upotreba dizajnerskih obrazaca u funkcionalnim okruženjima
- Vodjenje kroz izgradnju enterprise-level Clojure aplikacije
“Funkcionalni dizajn” je klasik, od samog početka. Bob ističe kako elementi funkcionalnog programiranja čine dizajn softvera jednostavnim, ali i pragmatičnim. On to čini na način koji je prihvatljiv i koristan za programere koji već imaju iskustvo sa C#, C++, ili Javom.” Janet A. Carr, Independent Clojure Consultant
Sadržaj
Predgovor xiii
Uvod xv
Zahvalnosti xxi
O autoru xxiii
DEO I: Osnove funkcionalnog programiranja 1
Poglavlje 1: Nepromenljivost 3
Šta je funkcionalno programiranje? 4
Problem sa dodeljivanjem 7
Pa zašto ga nazivamo funkcionalno? 10
Bez promene stanja? 12
Nepromenljivost 15
Poglavlje 2: Trajnost podataka 17
O varanju 19
Pravljenje kopija 20
Strukturno deljenje 23
Poglavlje 3: Rekurzija i iteracija 27
Iteracija 28
Veoma kratak vodič za Clojure 29
Iteracija 32
TCO, Clojure i JVM 32
Rekurzija 32
Poglavlje 4: Lenjost 37
Lenjo akumuliranje 40
U redu, ali zašto? 41
Završetak 42
Poglavlje 5: Čuvanje stanja 43
Kada moramo da izvršimo promenu 47
Softverska transakcijska memorija (STM) 48
Život je težak, softver je još teži
Deo II: Komparativna analiza 53
Poglavlje 6: Prosti činioci 55
Verzija za Javu 56
Verzija za Clojure 60
Zaključak 63
Poglavlje 7: Igra kuglanja 65
Verzija za Javu 66
Verzija za Clojure 71
Zaključak 75
Poglavlje 8: Ogovaranje među vozačima autobusa 77
Java rešenje 78
Klasa Driver 84
Klasa Route 85
Klasa Stop 85
Klasa Rumor 86
Klasa Simulation 87
Clojure 88
Zaključak 93
Poglavlje 9: Objektno-orijentisano programiranje 95
Funkcionalan platni spisak 98
Prostori imena i izvorne datoteke 107
Zaključak
Poglavlje 10: Tipovi 109
Deo III: Funkcionalni dizajn 115
Poglavlje 11: Protok podataka 117
Poglavlje 12: SOLID 125
Princip jedinstvene odgovornosti (SRP) 126
Princip otvorenosti i zatvorenosti (OCP) 131
Funkcije 133
Objekti sa virtuelnim tabelama 134
Multimetodi 135
Nezavisna implementacija 136
Liskovin princip zamene (LSP) 138
ISA pravilo 142
Nipošto! 145
Pravilo reprezentacije 146
Princip razdvajanja interfejsa (ISP) 147
Nemojte da zavisite od stvari koje vam nisu potrebne 150
Zašto? 151
Zaključak 151
Princip inverzije zavisnosti (DIP) 152
Povratak u prošlost 155
Kršenje DIP principa 165
Zaključak
Deo IV: Funkcionalni pragmatizam 181
Poglavlje 13: Testovi 183
A REPL? Šta ćemo sa tim? 184
Šta je sa lažnim objektima? 184
Testiranje zasnovano na svojstvima 186
Tehnika dijagnostike 190
Funkcionalno 197
Poglavlje 14: Grafički korisnički interfejs 199
Crtanje uz pomoć kornjače za biblioteku Quil
Poglavlje 15: Konkurentnost 215
Zaključak 225
Deo V: Projektni obrasci 227
Poglavlje 16: Pregled projektnih obrazaca 229
Obrasci u funkcionalnom programiranju 233
Obrazac Apstraktan poslužitelj 233
Obrazac Adapter 236
Da li je to zaista objekat adapter? 241
Obrazac Komanda 242
Poništi 245
Obrazac Sastav 249
Funkcionalno? 254
Obrazac Dekorater 260
Obrazac Posetilac 264
Zatvoriti ili Clojure? 267
Problem 90 stepeni 270
Obrazac Apstraktna fabrika 274
Ponovo 90 stepeni 279
Sigurnost tipova? 281
Zaključak 281
Dodatak: OO otrov? 282
Deo VI: Studija slučaja 285
Poglavlje 17: Wa-Tor 287
Počeši se 309
Tuš je rešenje problema 312
Faza intenzivne reprodukcije 322
Šta ćemo sa ajkulama? 324
Zaključak 335
Pogovor 337
Indeks 339
Česta pitanja
Koji su Načini plaćanja?
Koji su Načini plaćanja?
- Kreditnom ili debitnom karticom
- Pouzećem – plaćanje po primitku paketa direktno djelatniku pošte
- Virmanom (uplata na žiro račun) -plaćanje Internet bankarstvom, uplatnicom u pošti, banci
Koliki su troškovi poštarine i koji je rok isporuke?
Koliki su troškovi poštarine i koji je rok isporuke?
Iznos narudžbe (vrijednost košarice) i troškovi slanja na adrese u Republici Hrvatskoj
Do 150,00 € -> 7,00 €
Iznad 150,00 € -> Gratis
Iznos narudžbe (vrijednost košarice) i troškovi slanja u inozemstvo
Do 26,54 € -> 20,97 €
Za svakih slijedećih 26,54 € vrijednosti košarice (do maksimalne vrijednosti košarice 132,72 €) dodaje se 5,30 €
Od 132,72 € vrijednosti košarice nadalje trošak dostave iznosi 46,18 €
Rok isporuke je od 14 do 30 radnih dana (u radne dane ne spadaju vikendi, blagdani i državni praznici).
U slučaju nepredviđene situacije, rok dostave može se produljiti, ali o tome ćete biti naknadno obaviješteni (mailom ili telefonski).
Da li je moguće osobno preuzimanje naručenih knjiga na adresi?
Da li je moguće osobno preuzimanje naručenih knjiga na adresi?
Kada su knjige dostupne, moguće je osobno preuzimanje knjiga na adresi ureda Ivane Brlić Mažuranić 72 (Malešnica), 10090 Zagreb uz obaveznu prethodnu najavu na telefon 00385 (0)1 3731 748.
Trebate pomoć oko kupovine putem naše internet stranice www.strucnaknjizara.com?
Trebate pomoć oko kupovine putem naše internet stranice www.strucnaknjizara.com?
Slobodno nas kontaktirajte putem naše e-mail adrese: info@strucnaknjizara.com ili telefonski na broj: 00385 (0)1 3731 748.
Ako se ne snalazite ili ne želite naručiti knjige preko internet trgovine, slobodno nam pošaljite direktan upit/narudžbu na e-mail na info@strucnaknjizara.com.
Za narudžbu su potrebni sljedeći podaci:
Točan naslov željene knjige i količina,
ime i prezime,
adresa dostave,
e-mail adresa i
telefonski broj.
Tražite stručnu knjigu i ne možete da ju pronađete?
Javite nam, potrudit ćemo se da je pronađemo za Vas.
Newsletter prijava
...prijavi se na listu i prati akcije