Veze, linkovi
Kompjuter biblioteka
Korpa
Funkcionalni dizajn, principi, obrasci i praksa

Programiranje Programiranje

Funkcionalni dizajn, principi, obrasci i praksa

Autor: Robert C. Martin
Broj strana: 384
ISBN broj: 978-0-13-817639-6
Izdavač: PEARSON EDUCATION PEARSON EDUCATION
Godina izdanja: 2023.

                 
Twitter   Facebook   Linkedin   Pinterest   Email
                 
Predlog za prevod

 

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 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

 

 

Komentari

• 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

Ostavite komentar Ostavite komentar

 

Preporučujemo

Naučite da programirate Scratch

Naučite da programirate Scratch

Getting Started with Unity 5.x 2D Game Development

Getting Started with Unity 5.x 2D Game Development

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272