Čista arhitektura – Stručni vodič za strukturu i dizajn softvera – Robert C. Martin

autor: Robert C. Martin
broj stranica: 432
godina izdanja: 2020.
vrsta uveza: meki
jezik: srpski, latinica

44.10 

Description

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