Architektura a design

Podobné dokumenty
Architektura a design

Architektura a design - úvod. Tomáš Krátký, Bohumír Zoubek

Architecture and Design

Software Quality Assurance. Tomáš Krátký, Bohumír Zoubek

Information and Data Management Profinit. All rights reserved.

Vedení projektů, Odhadování, historie. Jiří Mach

GLOBÁLNÍ ARCHITEKTURA ROB

Development environment Build process DevOps. Tomáš Krátký, Bohumír Zoubek

Sylabus modulu: D Útvarové a procesní řízení, plánování, IT podpora projektového řízení

Jak zavést systém managementu kvality

Integrace dat Profinit. All rights reserved.

Sylabus modulu: B - Strategické řízení organizace

MAS VÝCHODNÍ SLOVÁCKO

16. Kategorizace SW chyb, kritéria korektnosti a použitelnosti, spolehlivost SW

Témata modulu a úkoly jsou využitelné ve výuce tematické oblasti RVP Člověk a svět práce ve středních školách.

NABÍDKA KURSŮ a WORKSHOPŮ V OBLASTI TESTOVÁNÍ

Requirements Engineering

PŘÍLOHA D Požadavky na Dokumentaci

Business Intelligence - principy, efekty, předpoklady. OKsystem, 26/11/2009

Sylabus modulu: B - Strategické řízení organizace

EXTRAKT z mezinárodní normy

Řízení kvality, kontroling, rizika. Branislav Lacko Martina Polčáková. Kateřina Hrazdilová Bočková - konzultantka

Metadata Profinit. All rights reserved.

Maturitní prací student osvědčuje svou schopnost samostatně pracovat na projektech a aktivně využívat nabyté zkušenosti

VŠB Technická univerzita, Fakulta ekonomická. Katedra regionální a environmentální ekonomiky REGIONÁLNÍ ANALÝZA A PROGRAMOVÁNÍ.

Koncepce Smart Administration města Mohelnice

Životopis Jakub Dušek

Ministerstvo vnitra České republiky vyhlašuje Výzvu k předkládání žádostí o finanční podporu v rámci Integrovaného operačního programu

Odhady, nabídky, měření a historie

Specifikace pro SW aplikaci Start-up business.

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM Č. III ZE DNE

Program prevence nehod a bezpečnosti letů

Podpora plánování a řízení projektů v CASE nástrojích

Vnitřní předpis města Náchoda pro zadávání veřejných zakázek malého rozsahu (mimo režim zákona č. 137/2006 Sb., o veřejných zakázkách)

Role metodika v procesu zavádění a ověřování standardů kvality v praxi

9:45 10:20 Úvodní slovo Mgr. Miloslav Kvapil, ředitel společnosti DYNATECH s.r.o.

Chronologick é pořadí z důvodu návaznosti znalostí 1) Zaměřené na Filenet. Předpokládaný rozsah - dny (8hod/den)

Účetní systémy na PC (MPF_USPC) 2. TÝDEN (4. a )

SPECIFICKÁ PRAVIDLA PRO ŽADATELE A PŘÍJEMCE

PRAVIDLA PRO ŽADATELE A PŘÍJEMCE PODPORY. v Operačním programu Životní prostředí pro období

Databázové patterny Profinit. All rights reserved.

Software project management

Transakce Profinit. All rights reserved.

Tento projekt je spolufinancován. a státním rozpočtem

Software process (improvement)

ETICKÝ A OBCHODNÍ ŘÁD ANTIMONOPOLNÍ & KONKURENČNÍ POLITIKA

A0M33PIS - Průmyslové informační systémy

Projektový manuál: SME Instrument Brno

[AVG-WEB] Zpř í stupně ní kořpořá tní ho wěbu Semestrální práce z předmětu A4M39NUR

Datová kvalita Profinit. All rights reserved.

Teradata basic Profinit. All rights reserved.

Organizační pokyn Hnutí Brontosaurus č. 3.2 Program Akce příroda. Organizační pokyn Hnutí Brontosaurus č. 3.2

2. ZASEDÁNÍ PROGRAMOVÉHO VÝBORU KABINETU PRO STANDARDIZACI O.P.S.

Příloha A Informační memorandum k Projektu

Charakteristika vyučovacího předmětu RUSKÝ JAZYK

IT Security a Cloud. Zbyněk Juřena Managing Director ALTRON Business Solutions, a.s. září 2014

Simulátor krizových procesů na úrovni krizového štábu. Systémová dokumentace

Informačně expertní systém včasného varování a vyrozumění v důsledku stanovení rizik skalního řícení

NÁVODNÁ STRUKTURA MÍSTNÍHO AKČNÍHO PLÁNU VZDĚLÁVÁNÍ

Naxos MULTIMEDIÁLNÍ ARCHIV

Možnosti transformace vyšších odborných škol do terciárního vzdělávání

DOTAZNÍK ZKUŠENOSTI ČESKÝCH PŘÍJEMCŮ S METODAMI PRO URČOVÁNÍ A VYKAZOVÁNÍ NEPŘÍMÝCH NÁKLADŮ V PROJEKTECH

- Aplikace je napsána v C#.NET, je instalována na webovém serveru - Data jsou ukládána v databázi MS-SQL 2005 a vyšší

Configuration Management

Příloha č. 1 smlouvy Specifikace předmětu plnění

STANOVY SDRUŽENÍ DOCTOR WHO FANCLUB ČR

INTRANET V JVK ČESKÉ BUDĚJOVICE

Instalace a technické informace

INFORMACE O NOVÉ VERZI POSKI REAL

Web frameworks v praxi. František Řezáč

Nahrávání hovorů pro IP telefonii a kontaktní centra

Sylabus modulu: E Finance a finanční nástroje

SYLABUS KURZU HODNOCENÍ VÝSLEDKŮ VAV

Dotazník tvoří celkem 25 otázek. Jejich zpracování stanovujeme do Garantujeme důvěrnost veškerých získaných informácí.

Helios Orange Plugin Zadávání vlastností

Balíček oběhového hospodářství v Evropě

REZERVACE24 S.R.O. PROVOZOVATEL SYSTÉMU RISORSA PRO VĚRNOSTNÍ PROGRAMY. Případová studie. Implementace věrnostního programu s.

BEZPEČNOSTNÍ A PROVOZNÍ MONITORING VŠCHT PRAHA

Databáze 2011/2012 Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Softwarový proces. Tomáš Krátký, Bohumír Zoubek

POLITIKA CESTOVNÍHO RUCHU V ČR V LETECH A JEJÍ OČEKÁVANÉ MOŽNOSTI V LETECH

PEXESO UŽIVATELSKÝ MANUÁL

Buňka ARC Pomoc při řešení konfliktů a boji proti obtěžování

PODPORA VYBUDOVÁNÍ A PROVOZU ZAŘÍZENÍ PÉČE O DĚTI PŘEDŠKOLNÍHO VĚKU PRO PODNIKY I VEŘEJNOST MIMO HL. M. PRAHU / V HL. M. PRAZE

Realtime prostředí a telco. Jakub Reschke Praha,

Veřejná zakázka SUSEN generální dodávka staveb v areálu Řež. Dodatečná informace č. 1 k zadávacím podmínkám

Portál veřejné správy

SEGMENT SPOTŘEBITEL. (úvěry pro FOO)

USNESENÍ. Č. j.: ÚOHS-S339/2012/VZ-21769/2012/523/Krk Brno 20. prosince 2012

Vizualizace TIN (trojúhelníková nepravidelná síť) v Marushka Designu

Manuál pro lektory. v e r w w w. w e b c a s t t o l e a r n. c o m. Partneři

5. Glob{lní navigační satelitní systémy (GNSS), jejich popis, princip, využití v geodézii.

Příjem a hodnocení žádostí o podporu

Setkání starostů MAS ORLICKO. Operační programy a strategie MAS

k elektronickému výběrovému řízení na úplatné postoupení pohledávek z titulu předčasně ukončených leasingových smluv

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

Faktory ovlivňující udržovatelnost kódu aplikací vytvořených pomocí objektově orientovaných programovacích jazyků

30. výzva Ministerstva životního prostředí

Miroslav Dítě, Zdeněk Teplý, Pavel Končel, Miloš Urbánek

Transkript:

Architektura a design Klektiv autrů Říjen 2018

Schematický phled (Sftware System) Architecture Struktura Dkumentace tét struktury Základní typy architektury Sftware architecture Business (prcess) architecture bchdní strategie, řízení, rganizace, bchdní prcesy Infrmatin technlgy (system) architecture HW a SW infrastruktura nutná pr chd rganizace Infrmatin architecture rganizace a správa dat (MDM, BI, DWH, ) Enterprise architecture Rle a význam architektury na prjektu? v pdniku?

Architektura vs. Design Architecture? Sftware architecture Realizace nefunkčních pžadavků Strategický design Prgramvací paradigmata, architektnické styly, principy, standardy, Sftware design Realizace funkčních pžadavků Taktický design Design patterns, prgramvací idimy, refaktring, Design Architecture is abut the imprtant stuff. Whatever that is Martin Fwler, Wh needs an Architect?

Sftwarvý prces PROJECT MANAGEMENT / QUALITY ASSURANCE / DOCUMENTATION / CONFIGURATION MANAGEMENT / RELEASE MANAGEMENT / DEVOPS Převzat z http://csse.usc.edu/csse/research/coradmo/

Dkumentace architektury

Sftwarvá architektura dle IEEE 1471 Functinal / lgic view Cde / mdule view Develpment / structural view Cncurrency / prcess/thread view Physical / deplyment view User actin / feedback view Data view

Vliv kntextu na architekturu databázvý systém / subsystém web systém / subsystém (tlustý) klient systém / subsystém OO systém / subsystém data warehuse systém integrační systém / subsystém...

Odbčka - Enterprise architektura Architektura na úrvni celé splečnsti (rganizace). Enterprise architecture zahrnuje ppis cílů rganizace, způsbů jak jsu tyt cíle dsahvány pmcí pdnikvých prcesů a způsbů, jak mhu tyt prcesy být pdpřeny technlgiemi (A Better Path t Enterprise Architectures, Rger Sessins) Prč je ptřeba? Velké splečnsti mají tisíce aplikací => těžké udržet přádek Archimate Business vrstva prdukty a služby zákazníkům Aplikační vrstva aplikace (aplikační kmpnenty) Technlgická vrstva infrastruktura (Nde, Device, System Sftware, ) Příklad: https://www.msk.cz/cz/verejna_sprava/krpratni-architekturamravskslezskeh-kraje-83244/

Design

Architektura vs. návrh vs. implementace Architecture Návrh v kstce:? Design? Implementatin Dekmpnuj na něklik jedndušších úklů Dá se úkl vyřešit jedním příkazem v kódu? ne an Htv

Kntrakt

Kntrakt public class MyClass extends MyBaseClass implements MyInterface { public static final int THE_ANSWER = 42; prtected MyClass() { } System.ut.printLn( Hell Wrld!"); public final ArrayList<String> handlestuff(arraylist<object> input) thrws IOExceptin { return myhandlestuff(input); } prtected abstract ArrayList<String> handlestuff( ArrayList<Object> input) thrws IOExceptin; }

Návrh v kstce lépe Definuj kntrakt Je jasné, jak kntrakt naplnit? an ne Dekmpnuj na něklik jedndušších úklů Htv

Základy dbréh (OOP) návrhu Decmpsitin Abstractin High chesin Lse cupling Encapsulatin

Chesin (sudržnst) vs.

Cupling (prvázanst)

Lse cupling Cíl: Mdul (třída, ) má c nejméně záviset na svém klí Výhdy: Odlnst prti změnám klí Snazší pchpení Znvupužitelnst Testvatelnst Pzr na skryté vazby Časvé Suslednst událstí /** *... * Pzr! Tat metda musí být vlána až p metdě */

Encapsulatin Cíl: Znemžnit klí záviset na mých implementačních detailech Ochránit vnitřní stav před vnějšími zásahy Výhdy: Omezení dpadu změn na klí ( Encapsulate what changes ) Snazší testvání a verifikace Snazší debugging Interfaces Ultimátní pdba zapuzdření implementační detaily tu vůbec nejsu Jasně definují kntrakt a ddělují h d implementačních detailů Gettery a Settery

C zbyl z OOP? Encapsulatin Rzhdně Plymrphism An, ale mezený čast na interface inheritance Inheritance Prefer cmpsitin ver inheritance Implementatin inheritance pvažvána za nevhdnu Z dkumentace java.sql.timestamp (extends java.util.date): As a result, the Timestamp.equals(Object) methd is nt symmetric with respect t the java.util.date.equals(object) methd Due t the differences between the Timestamp class and the java.util.date class mentined abve, it is recmmended that cde nt view Timestamp values generically as an instance f java.util.date. The inheritance relatinship between Timestamp and java.util.date really dentes implementatin inheritance, and nt type inheritance.

Technical debt Vlba snadnéh řešení namíst kncepčníh řešení Čast pd tlakem na termín. Snaha rychle něc ddat = náklady (pracnst), které bude třeba v buducnu vynalžit (pkud budeme chtít mít systém bez prblémů udržvatelný) Existují nástrje, které změří na úrvni kódu - https://dcs.snarqube.rg/display/sonarqube52/technical+debt Tt samzřejmě nezahrnuje špatná architektnická rzhdnutí. Typické prblémy: Tightly-cupled cmpnents Zanedbaný refactring Nedstatečné pkrytí testy Nedstatečné znalsti (zejména bezpečnst, paralelismus, )

Technical debt Bezhlavý, lehkvážný Rzumný, przíravý Úmyslný, záměrný Nechtěný, neúmyslný Typický prjev zkušenstí získaných realizací prjektu Více infrmací na http://martinfwler.cm/bliki/technicaldebtquadrant.html

Design patterns Katalg základní GOF návrhvé vzry prakticky neknečné kmbinace a variace Význam znvupužitelnst splečný jazyk... Pzr na pčáteční nadšení na nadbytečné užívání patterns indirectin, úrvně abstrakce slžitst

Framewrks Znvupužitelný návrh pr SW systém Pdpra (základna) při vývji jiných SW aplikací Diktuje architekturu systému Určuje jak dekmpnvat systém a jak budu jeh jedntlivé části kmunikvat Základní dekmpzice Frzen spts definice celkvé architektury, neměnné Ht spts zajišťují rzšiřitelnst (abstraktní třídy, antace) C dlišuje framewrk d knihvny - shrnutí Inversin f cntrl Rzšiřitelnst Nemdifikvatelnst Defaultní chvání

Zásady elementárníh návrhu

DRY Dn t Repeat Yurself Cntrller: params.put("axis_length", axislength); Windw: Integer axislength = params.get("axis_length"); Dialg: if (params.get("axis_lenght")!= null) { }

SRP Single Respnsibility Principle Každý lgický celek (mdul, třída, metda, ) má dělat vždy jen jednu věc C když budu ptřebvat přepužít jen jeden z něklika krků? Symptm: inline kmentáře ve stylu: // krk 2: teď uděláme // Spcitej pradi, ve kterem je nutne parsvat DDL skripty // Odstran existujici DDL skripty ve vystupnim adresari // Pr kazdy databazvy bjekt ve spcitanem pradi ziskej jeh // DDL a zparsuj h fr (DdlName ddl : extractinorder) { // Zparsuj DDL // Ulz DDL

Brken Windws

Brken Windws Stejně už je t zprasený

Fail Fast Je-li v prgramu chyba, měl by selhat c nejdříve Aktivně kntrlujte knzistenci a šetřujte mžné chyby Dead prgrams tell n lies Nejhrší je na chybu přijít až p databázvém cmmitu Čím dřív chybu dchytíte, tím víc debugvacích infrmací můžete pskytnut Necháte-li chybu prbublat až d becnéh errr handleru, můžete už říct jen:

YAGNI a KISS YAGNI Yu Ain t Gnna Need It KISS Keep It Simple Stupid POGE - Principle f Gd Enugh https://martinfwler.cm/bliki/yagni.html

Kód Javadc Dkumenty Self-dcumenting cde Kód, který se svu frmu (strukturu, jmennými knvencemi apd.) snaží mezit nutnst číst dkumentaci Neznamená úplnu absenci dkumentace čitelný kód nenahradí kncepční dkumentaci (architektura, design mments, ) Prblémy při chybějící dkumentaci Význam větších funkčních celků Pre/pst cnditins, invariants Inheritance kntrakt vůči ptmkům

Další dbré rady Premature ptimalizatin is rt f all evil Jak implementvat vlastní cache rada první: nedělejte t Jak implementvat vlastní transakce viz předchzí bd Jak implementvat vlastní lazy fetching, zámky, však víte Bezpečnst nelze d kódu přidat ddatečně Thread-safety nelze d kódu přidat ddatečně

Thread-safety Immutable třídy jsu inherentně thread-safe Třídy bez vnitřníh stavu jsu inherentně thread-safe Immutable nce cnfigured Dpručuji všude, kde t jde: Služby beze stavu (bez instančních prměnných krmě dkazů na jiné služby) Stav předávat v parametrech metd a držet v lkálních prměnných Takt napsaný mdul: Nemá režii na synchrnizaci (vhdný i pr aplikace neptřebující thread-safety) Není nezbytně thread-safe, ale půjde t snadn zařídit Je čitelnější je zřejmé, kudy teču data public Graph generatedataflw() generatedataflw(tree { tree) { return handler.prcessnde(tree); } return graph; }

Dtazy? 34

Děkuji za pzrnst Prfinit EU, s.r.. Tychnva 2, 160 00 Praha 6 Telefn + 420 224 316 016 Web LinkedIn Twitter Facebk Yutube www.prfinit.eu linkedin.cm/cmpany/prfinit twitter.cm/prfinit_eu facebk.cm/prfinit.eu Prfinit EU