Architektura aplikace: pište jako vývojář, přemýšlejte jako architekt - kurz 80 000 rub. ze Slurmu, školení 3 měsíce, Datum 22. ledna 2024.
Různé / / November 29, 2023
Naučte se psát čisté a spravovatelné projekty, vytvářet udržovatelné systémy a organizovat kód.
Zdarma uděláme všechny možné chyby při praktických úkolech, abyste se jim později ve své práci vyhnuli a ušetřili miliony.
V minulosti bylo mnoho aplikací vytvořeno bez návrhu. Zdálo se to pohodlné: žádné náklady na plánování, rychlé prototypování.
Složité aplikace se ale postupem času proměnily v neovladatelný křižník řítící se plnou rychlostí směrem k ledovci.
Tehdy se architektura stala skutečnou záchrannou vestou. Aplikace s dobře navrženou architekturou se snadněji rozšiřuje, mění, testuje, ladí a chápe.
Architektura aplikací je umění. Umění navrhovat a vytvářet rozsáhlé systémy.
Naučíte se vytvářet UML diagramy, refaktorovat kód, kreslit architektonické hranice a analyzovat systémy. Každý účastník dokončí projekt kurzu: navrhne a plně popíše informační systém tak, jak se to děje ve skutečné výrobní činnosti.
Úvodní sezení s řečníky
22. ledna v 19:00
Modul 1: Úvod do aplikační architektury
22. ledna
Pojďme se seznámit s přístupy a paradigmaty aplikační architektury
- Téma I. Problém je, proč je důležité navrhnout software správně. Proč je architektura potřebná, co se stane, když o ní lidé nepřemýšlejí.
- Téma II. Izolace jako prostředek kontroly složitosti. Kód na špagety. Modularita. Spojka. Statická vazba, dynamická vazba. Komponenty a jejich interakce. Komponenta jako nezávislá entita. Návrh volně spojených součástí. Testování komponent. MVC jako příklad modulárního vzoru. Důvody změn, izolace na základě důvodů změn.
Druhý modul: Jednotný modelovací jazyk
29. ledna
Pojďme si osvojit jazyk grafického zobrazení: budete moci číst a navrhovat pomocí tohoto jazyka. Naučme se používat diagramy k vizualizaci architektury a spojení.
- Téma I. Hlavní složky, co se jimi dá vyjádřit, k čemu jsou potřeba.
- Téma II. Diagramy tříd, aktivit, sekvence a případu použití.
- Téma III. Nevýhody UML. Model C4. Nástroje
Třetí modul: Principy OOP
12. února
Naučíme se analyzovat na vysoké úrovni: budete vědět, jak vyřešit problém a pomocí jakého paradigmatu.
- Téma I. Přehled programovacích paradigmat.
- Téma II. Principy OOP. OOP jako prostředek architektury. Třídy a metody. Objektový přístup jako metoda izolace. Rozhraní a abstraktní třídy. Problémy s dědičností.
- Téma III. Principy OOP: (SOLID, DRY).
Sezení AMA s řečníky
Modul 4: Návrhové vzory
26. února
Naučíme se navrhovat systémy pomocí vzorů: pochopíte výhody a omezení vzorů, budete schopni rozpoznat aplikované vzory v systémech
- Téma I. Co jsou vzory a proč jsou potřebné? Jejich typy.
- Téma II. Generativní a strukturální vzory.
- Téma III. Vzorce chování.
- Téma IV. Antipatterny.
Modul pátý: Čistá architektura
11. března
Naučíme se navrhovat podle kritérií čisté architektury, najdeme odchylky od čisté architektury a navrhneme možnosti systémového řešení. Naučíme se, jak aplikovat rozložení kódu, navrhnout a nakreslit architektonické hranice, abychom zjednodušili další změny a údržbu kódu.
- Téma I. Spojení a soudržnost.
- Téma II. Architektonické hranice.
- Téma III. Čistá architektura.
Modul šest: Různé architektonické přístupy
25. března
Naučíme se volit přístup k řešení zadaných výrobních problémů, vysvětlíme výhody nebo cizí/vlastní řešení. Pro zadané úkoly budeme schopni najít vhodná řešení s přihlédnutím k aktuální situaci
- Téma I. Požadavky, předmět. Analýza. Funkční/nefunkční požadavky.
- Téma II. Architektonické styly. Cibulové, víceúrovňové, orientované na služby, mikroservisy, řízené událostmi.
- Téma III. Architektura aplikace. MVC, MVP, MVVM, MV*.
Sezení AMA s řečníky
Sedmý modul: architektura všude
1. dubna
Naučíme se aplikovat znalosti o architektuře na různé úrovně měřítka (nejen rozložení tříd a modulů, ale i celých systémů)
- Téma I. Typy architektů a jejich úkoly.
- Téma II. Architektury na různých úrovních (embedded, aplikace, distribuovaný systém, cloud-native služba).
Osmý modul: shrnutí
8. dubna
Pojďme se naučit, jak jednoduše vybrat nástroj pro konkrétní úkol
- Téma I. Přehled hlavních nástrojů a technologií, jejich místo v architektuře a principy výběru.
- Datová úložiště: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Fronty: AMQP, Rabbit, Kafka, MQTT.
- Jazyky: Python, Java, GO, C++, Javascript/Typescript.
- Rozhraní: Konzole, nativní aplikace, WEB: React, Vue, Angular, Jquery, hybrid, chatboti.
- Nástroje infrastruktury: docker, k8s, terraform, ansible.