Architektury Flashcards
Co je to The Single responsibility principle
Každý softwarový modul má jednotnou izolovanou zodpovědnost.
Co je to Open-Close Principle
Aby bylo možné systém upravovat musí být navržen tak aby umožnoval změnu chování přidáním nového kódu, ne úpravou stávajícího.
Co je to The Liskov Substitution Principle
Říká že Pro sestavení softwaru z vyměnitelných částí, musí tyto části dodržovat určité konvence, aby byly navzájem vyměnitelné.
Příklad dědičnosti Když mám třídu Person a třídu Woman mužu nahradit Person třídou Woman, protože má stejné vlastnosti
Co je to Dependency Inversion Principle
DIP říká že kód, který implementuje high level policies by neměl být závislý na low-level detailech nýbrž na jeji ch abstrakci.
Co je to Interface segregation principle.
Tohle nám říká že více menších rozhraní je lepších než jedno univerzální.
A to proto že když nějaka třida bude potřebovat dvě veci z rozhrani kde je 10 věcí tak těch zbylých 10 věcí musí implementovat.
Vrstevná architektura
Prezentační, Business, Services, Persistence, Database vrstvy komunikují jen s jednou nad nebo pod sebou, ne s ostatními.
Sink-hole(když požadavek musí projít přes všechny vrstvy který ho ale nijak neupravují) - pravidlo 80%/20%
Roury a Filtry
Máme Filtr -> Pipe -> Filtr -> Pipe.
Příkladem muže být Linux kde mám příkaz který pak větvím “pajpou” do dalšího příkazu.
Nebo ETL -> Extrahuju data -> Transformuju je -> Loadnu je
Mikrokernel
Máme nějake jádro obsahující hlavní minimální logiku a potom nějake p lug-in komponenty využívající tuto logiku k svému výpočtu.Příklad:
Operační systémy - male jadro a komponenty využívající toto jádro.
MS Visual studio code - Lightweight textový editor, který po přidání hodně pluginu konkuruju IntelJ
Co je to Servisně orientovaná architektura
Máme nějake servicy třeba pro Uber Aplikaci(Platební servica, Google map Service, Login Service) a já všechny tyhle Servisy skryju pod jedno API a při výpadku jedné VM prostě zapnu další VM a přesměruju traffic.
Scalable, Reusable, ale Hodně trafficu a komplexní design.
Co je to Event-driven architektura
Máme jednu servicu co pošle požadavek do queue(Brokera - RabbitMQ) a už jí nezajima co se s požadavkem stane, Broker pak pošle požadavek na jinou servicu. Důležité je že ty servicy o sobě neví a jediné co dělaji že posilaji data do brokera
Co Je to Broker u Event-driven-architektury
RabbitMQ/Kafka - stará se o doručování zpráv/událostí správným Consumerům
Jak funguje SYNC vs ASYNC komunikace u Event-driven-architektury
ASYNC je lepší jelikož nemusím čekat na odpoved a použí vání front je lepší jelikož to trva 25ms do brokera a 25ms z brokera kdežtak u http je to 50ms tam a pak 50ms zpatky kvuli potvrzeni http requestu.
Space-based-architektura
Pro distribuované systémy, které vyžadují škálovatelnost, odolnost proti chybám a flexibilitu. Asynchroní komunikace, Ukmožnuje paralelní zpracování a zvyšuje celkovou efektivitu systému.
Samostatné komponenty mají sdílený prostor kde jsou všechna ta data a asynchronně si berou ty data třeba z brokera
Co je Messaging grid u SBA
Kafka,RabbitMQ, je to efektivní způsob jak zajistit async komunikaci a je to jakoby load balancer a směruje ty requesty nějake processing units
Co je Data grid u SBA
Slouží pro aktualizaci dat v lokalnich cache pamětích processing units, když se data změní tak je změní i v těch cache pamětích u Proccesing units aby ty unity pracovaly s aktuálnímy daty.