Čista arhitektura: stručni vodič za strukturu i dizajn softvera
Knjiga donosi
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 autora
Posetite 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
Detaljni podaci o knjiziNaslov: Čista arhitektura: stručni vodič za strukturu i dizajn softvera
Izdavač: Kompjuter biblioteka
Strana: 432 (cb)
Povez: meki
Pismo: latinica
Format: 16,8 x 23,5 cm
Godina izdanja: 2020
ISBN: 978-86-7310-557-4