Čista arhitektura, praktična rešenja softverske arhitekture legendarnog Roberta C. Martina, ujka Boba
Čista arhitektura, praktična rešenja softverske arhitekture legendarnog Roberta C. Martina, ujka Boba
- Praktične odgovore na najvažnija pitanja sa kojima se suočavaju arhitekte i dizajneri softvera
- Kako odabrati najbolje strukture visokog nivoa za svaki od današnjih, različitih tipova aplikacija: od veba do baze podataka, od potpuno opremljenog računara u mreži (thick-client), preko konzole, do ugrađenih programa
- Razumevanje osnovnih principa arhitekture, dizajna softvera i onoga što zaista pokušavate postići
Pisac je ugledni Robert C. Martin, autor knjiga The Clean Coder, Clean Code i Agile Software Development: Principles, Patterns, and Practices
Praktično rešenje softverske arhitekture legendarnog "ujka Boba" (Robert C. Martin)
Primenom univerzalnih pravila arhitekture softvera možete dramatično da poboljšate produktivnost programera tokom životnog ciklusa bilo kog softverskog sistema. Sada, nadovezujući se na uspeh svojih najprodavanijih knjiga Clean Code (Jasan kod, Mikro knjiga, Beograd 2020.) i The Clean Coder, legendarni softverski stručnjak Robert C. Martin ("Ujak Bob") otkriva ta pravila i pomaže vam da ih primenite.
Martinova Čista Arhitektura ne predstavlja samo opcije. Oslanjajući se na više od pola veka iskustava u softverskim okruženjima svih zamislivih tipova, Martin vam govori koje bi izbore trebalo da napravite i zašto su ti izbori presudni za vaš uspeh. Kao što se i očekuje od Ujka-Boba, ova knjiga obiluje konkretnim, jednostavnim rešenjima za stvarne izazove sa kojima ćete se suočiti - rešenjima koja će izgraditi, ili urušiti, vaše projekte.
Ciljevi- Naučiti šta bi arhitekte softvera trebalo da postignu - i osnovne discipline i neophodno iskustvo
- Ovladati osnovnim principima dizajna softvera i suočiti se sa funkcijama, odvajanjem komponenata i upravljanjem podacima
- Zapaziti kako paradigme programiranja nameću disciplinu ograničavajući ono što programeri mogu da učine
- Shvatiti šta je kritično važno, a šta je samo "detalj"
- Primeniti optimalne strukture na visokom nivou za veb, baze podataka, thick-klijente, konzolu i ugrađene aplikacije
- Definisati odgovaranje granice i slojeve, organizovati komponente i servise
- Shvatiti zašto dizajn i arhitektura greše i kako sprečiti (ili otkloniti) te nedostatke
Čista arhitektura je osnovna literatura za svakog aktivnog arhitektu softvera, ili za onoga koji želii da to bude, sistemskog analitičara, dizajnera sistema ili softverskog menadžera - i za svakog programera koji izvršava nečije planove.
Sajt autoraPosetite veb adresu autora http: //cleancoders.com/.
Pregled sadržaja
Uvodna reč
Predgovor
Zahvalnice
O autoru
Deo I: Uvod
Poglavlje 1: Šta su dizajn i arhitektura?
- Cilj
- Studija slučaja
- Zaključak
Poglavlje 2: Priča o dve vrednosti
- Ponašanje
- Arhitektura
- Najviša vrednost
- Eisenhower-ova matrica
- Borba za arhitekturu
Deo II: Prvi koraci: Paradigme programiranja
Poglavlje 3: Pregled paradigmi
- Strukturirano programiranje
- Objektno orijentisano programiranje
- Funkcionalno programiranje
- Hrana za um
- Zaključak
Poglavlje 4: Strukturirano programiranje
- Prikaz
- Proklamacija o štetonsti
- Funkcionalna dekompozicija
- Nema formalnih dokaza
- Nauka spašava
- Testovi
- Zaključak
Poglavlje 5: Objektno orijentisano programiranje
- Enkapsulacija?
- Nasleđivanje?
- Polimorfizam?
- Zaključak
Poglavlje 6: Funkcionalno programiranje
- Kvadrati celih brojeva
- Nepromenjivost i arhitektura
- Segregacija promenjivosti
- Poreklo događaja
- Zaključak
Deo III: Principi dizajna
Poglavlje 7: SRP - Princip jedinstvene odgovornosti (the Single Responsibility Principle)
- Simptom 1: Slučajno kopiranje
- Simptom 2: Spajanje
- Rešenja
- Zaključak
Poglavlje 8: OKP: Otvoreno-zatvoreni princip (the Open-Closed Principle)
- Misaoni eksperiment
- Upravljanje smerom
- Skrivanje informacija
- Zaključak
Poglavlje 9: LSP - Princip zamene Liskova (the Liskov Substitution Principle)
- Uputstvo za korišćenje nasleđivanja
- Problem kvadrata / pravougaonika
- LSP i arhitektura
- Primer kršenja LSP-a
- Zaključak
Poglavlje 10: ISP - Princip odvajanja interfejsa (the Interface Segregation Principle)
- ISP i jezik
- ISP i arhitektura
- Zaključak
Poglavlje 11: DIP - Princip inverzije zavisnosti (the Dependency Inversion Principle)
- Stabilne apstrakcije
- Factory
- Konkretne komponente
- Zaključak
Deo IV: Principi komponenti
Poglavlje 12: Komponente
- Kratka istorija komponenti
- Premeštanje
- Linkeri
- Zaključak
Poglavlje 13: Kohezija komponenti
- Princip ekvivalencije ponovne upotrebe/izdanja
- Zajednički princip zatvaranja
- Uobičajeni princip ponovne upotrebe
- Dijagram napetosti za koheziju komponente
- Zaključak
Poglavlje 14: Spajanje komponenti
- Princip acikličnih zavisnosti
- Dizajn odozgo-nadole
- Princip stabilnih zavisnosti
- Princip stabilnih apstrakcija
- Zaključak
Deo V: Arhitektura
Poglavlje 15: Šta je arhitektura?
- Razvoj
- Raspoređivanje
- Operacija
- Održavanje
- Održavanje opcija otvorenim
- Nezavisnost od uređaja
- Neželjena pošta (Spam)
- Fizičko adresiranje
- Zaključak
Poglavlje 16: Nezavisnost
- Slučajevi upotrebe
- Operacija
- Razvoj
- Raspoređivanje
- Održavanje različitih opcija
- Slojevi za odvajanje
- Slučajevi upotrebe odvajanja
- Režim odvajanja
- Nezavisna sposobnost razvoja
- Nezavisna sposobnost raspoređivanja
- Umnožavanje
- Režim odvajanja (ponovo)
- Zaključak
Poglavlje 17: Granice: crtanje granica
- Par tužnih priča
- FitNesse
- Koje bi granice trebalo povući, kada?
- Šta je sa ulazom i izlazom?
- Arhitektura dodataka
- Argument dodatka
- Zaključak
Poglavlje 18: Anatomija granice
- Prelazak granice
- Strašni monolit
- Komponente raspoređivanja
- Niti
- Lokalni procesi
- Servisi
- Zaključak
Poglavlje 19: Politika i nivo
- Nivo
- Zaključak
Poglavlje 20: Poslovna pravila
- Entiteti
- Slučajevi upotrebe
- Modeli zahteva i odgovora
- Zaključak
Poglavlje 21: Arhitektura koja vrišti
- Tema arhitekture
- Namena arhitekture
- Ali, šta je sa Web-om?
- Okviri su alati, a ne životni putevi
- Testabilne arhitekture
- Zaključak
Poglavlje 22: Čista arhitektura
- Pravilo zavisnosti
- Tipičan scenario
- Zaključak
Poglavlje 23: Prezenteri i "skromni objekti"
- Obrazac Skromni objekt
- Prezenteri i pogledi
- Testiranje i arhitektura
- Kapije ka bazama podataka
- Maperi podataka
- Slušaoci servisa
- Zaključak
Poglavlje 24: Delimične granice
- Preskočite poslednji korak
- Jednodimenzionalne granice
- Fasade
- Zaključak
Poglavlje 25: Slojevi i granice
- Lov na Vampusa
- Čista arhitektura?
- Podela tokova
- Cepanje tokova
- Zaključak
Poglavlje 26: Glavna komponenta
- Završni detalji
- Zaključak
Poglavlje 27: Servisi - veliki i mali
- Arhitektura servisa?
- Prednosti servisa?
- Kitti problem
- Objekti za spašavanje
- Servis zasnovan na komponentama
- Međusektorski odnosi
- Zaključak
Objavljeno 28: Testiranje granica
- Testovi kao sistemske komponente
- Dizajn pogodan za testiranje
- API za testiranje
- Zaključak
Poglavlje 29: Čista ugrađena arhitektura
- Test sposobnosti
- Usko grlo ciljnog hardvera
- Zaključak
Deo VI: Detalji
Poglavlje 30: Baza podataka je detalj
- Relacione baze podataka
- Zašto su sistemi baza podataka toliko rašireni?
- Da li će se diskovi održati?
- Detalji
- Ali, šta je sa performansama?
- Anegdota
- Zaključak
Poglavlje 31: Veb je detalj
- Beskrajno klatno
- Pregled
- Zaključak
Poglavlje 32: Okviri su detalji
- Autori okvira
- Asimetrični brak
- Rizici
- Rešenje
- Proglašavam vas...
- Zaključak
Poglavlje 33: Studija slučaja: Video prodaja
- Proizvod
- Analiza slučaja upotrebe
- Arhitektura komponente
- Upravljanje zavisnošću
- Zaključak
Poglavlje 34: Poglavlje koje nedostaje
- Paket po nivou (sloju)
- Paket po funkciji
- Portovi i adapteri
- Paket po komponenti
- Đavo je u detaljima implementacije
- Organizacija nasuprot enkapsulacije
- Ostali modeli razdvajanja
- Zaključak: Savet koji nedostaje
Deo VII: Dodatak
Dodatak A
Arheologija arhitekture
Indeks
Autor: Robert C. Martin
Broj strana: 432
ISBN broj: 978-86-7310-557-4
Godina izdanja: 2020.
Izdavač: Kompjuter biblioteka, Beograd