Autor: Robert C. Martin
Broj strana: 384
ISBN broj: 978-0-13-817639-6
Izdavač:
PEARSON EDUCATION
Godina izdanja: 2023.
![]() |
![]() |
![]() |
![]() |
![]() |
||||
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.
“Funkcionalni dizajn" je kalsik, 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
Uvod xiii
Predgovor xv
Zahvalnice xxi
O autoru
Deo I: Osnove funkcionalnog programiranja 1
Poglavlje 1: Nemutabilnost 3
Šta je funkcionalno programiranje? 4
Problem sa dodeljivanjem vrednosti 7
Koje je razlog za nazivanje ovog pristupa funkcionalnim? 10
Bez promene stanja? 12
Nemutabilnost 15
Poglavlje 2: Postojani Podaci 17
O varanju 19
Pravljenje kopija 20
Strukturalno deljenje 23
Poglavlje 3: Rekurzija i iteracija 27
Iteracija 28
Rekurzija 32
Poglavlje 4: Lenjost 37
Lenjo akumuliranje 40
Dobro, ali zašto? 41
Zaključak 42
Poglavlje 5: Stanje 43
Kada MORAMO mutirati 47
Softverska Transakciona Memorija (STM) 48
Život je težak, softver je još teži 51
Deo II: Komparativna analiza 53
Poglavlje 6: Prosti faktori 55
Java verzija 56
Clojure verzija 60
Zaključak 63
Poglavlje 7: Igra kuglanja 65
Java verzija 66
Clojure verzija 71
Zaključak 75
Poglavlje 8: Priča o šoferima koji tračare 77
Rešenje u Javi 78
Clojure 88
Zaključak 93
Poglavlje 9: Objektno-orijentisano programiranje 95
Funkcionalna isplata 98
Prostor imena i izvorni fajlovi 107
Zaključak 108
Poglavlje 10: Tipovi 109
Deo III: Funkcionalni dizajn 115
Poglavlje 11: Tok podataka 117
Poglavlje 12: SOLID 125
Princip jedinstvene odgovornosti (SRP) 126
Princip otvorenog/zatvorenog (OCP) 131
Princip supstitucije Liskov (LSP) 138
Princip segregacije interfejsa (ISP) 147
Princip inverzije zavisnosti (DIP) 152
Deo IV: Funkcionalna pragmatika 181
Poglavlje 13: Testovi 183
Ali šta je sa REPL-om? 184
A šta je sa Mock-ovima? 184
Testiranje zasnovano na svojstvima 186
Dijagnostička tehnika 190
Funkcionalno 197
Poglavlje 14: Grafički korisnički interfejs (GUI) 199
Turtle-Graphics u Quil-u 200
Poglavlje 15: Konkurentnost 215
Zaključak 225
Deo V: Dizajnerski obrasci 227
Poglavlje 16: Pregled dizajnerskih obrazaca 229
Obrasci u funkcionalnom programiranju 233
Apstraktni server 233
Adapter 236
Komanda 242
Kompozit 249
Dekorater 260
Posetilac 264
Apstraktna fabrika 274
Zaključak 281
Postscript: Da li je OO otrov? 282
Deo VI: Studija slučaja 285
Poglavlje 17: Wa-Tor 287
Češanje 309
Tuš rešava probleme 312
Vreme je za divlje razmnožavanje 322
A šta je sa ajkulama? 324
Zaključak 335
Pogovor 337
Indeks 341
• Miljan Puzovic
Obavezno prevedite!
• Milan
Uzimam, slobodno prevedite. Takođe, bilo šta od Martin Flovera, možda Enterprise integration patterns, ili neki AWS cloud kompletan priručnik
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272 |
||