Architektúra aplikácie: píšte ako vývojár, myslite ako architekt - kurz 80 000 rub. zo Slurmu, tréning 3 mesiace, Termín 22.1.2024.
Rôzne / / November 29, 2023
Naučte sa písať čisté a spravovateľné projekty, vytvárať udržiavateľné systémy a organizovať kód.
Zadarmo urobíme všetky možné chyby pri praktických úlohách, aby ste sa im neskôr pri svojej práci vyhli a ušetrili milióny.
V minulosti bolo veľa aplikácií vytvorených bez dizajnu. Zdalo sa to pohodlné: žiadne náklady na plánovanie, rýchle prototypovanie.
Postupom času sa však zložité aplikácie zmenili na neovládateľný krížnik, ktorý sa plnou rýchlosťou rútil smerom k ľadovcu.
Vtedy sa architektúra stala skutočnou záchrannou vestou. Aplikácia s dobre navrhnutou architektúrou sa ľahšie rozširuje, mení, testuje, ladí a chápe.
Aplikačná architektúra je umenie. Umenie navrhovať a vytvárať rozsiahle systémy.
Naučíte sa vytvárať UML diagramy, refaktorovať kód, kresliť architektonické hranice a analyzovať systémy. Každý účastník dokončí projekt kurzu: navrhne a plne opíše informačný systém tak, ako sa to deje v reálnych výrobných činnostiach.
Úvodné stretnutie s prednášajúcimi
22. januára o 19:00
Prvý modul: Úvod do aplikačnej architektúry
22. januára
Zoznámime sa s prístupmi a paradigmami aplikačnej architektúry
- Téma I. Problém je, prečo je dôležité správne navrhnúť softvér. Prečo je architektúra potrebná, čo sa stane, keď o nej ľudia nepremýšľajú.
- Téma II. Izolácia ako prostriedok kontroly zložitosti. Kód na špagety. Modularita. Spojka. Statická väzba, dynamická väzba. Komponenty a ich vzájomné pôsobenie. Komponent ako nezávislá entita. Dizajn voľne spojených komponentov. Testovanie komponentov. MVC ako príklad modulárneho vzoru. Dôvody zmien, izolácia na základe dôvodov zmien.
Druhý modul: Jednotný modelovací jazyk
29. januára
Osvojme si jazyk grafického zobrazenia: pomocou tohto jazyka budete vedieť čítať a navrhovať. Naučme sa používať diagramy na vizualizáciu architektúry a prepojení.
- Téma I. Hlavné zložky, čo sa s nimi dá vyjadriť, na čo sú potrebné.
- Téma II. Diagramy tried, aktivít, sekvencií a prípadov použitia.
- Téma III. Nevýhody UML. Model C4. Nástroje
Tretí modul: Princípy OOP
12. februára
Naučíme sa analyzovať na vysokej úrovni: budete vedieť, ako vyriešiť problém a pomocou akej paradigmy.
- Téma I. Prehľad programovacích paradigiem.
- Téma II. Princípy OOP. OOP ako prostriedok architektúry. Triedy a metódy. Objektový prístup ako metóda izolácie. Rozhrania a abstraktné triedy. Problémy s dedičstvom.
- Téma III. Zásady OOP: (SOLID, DRY).
relácia AMA s prednášajúcimi
Modul štyri: Dizajnové vzory
26. február
Naučíme sa navrhovať systémy pomocou vzorov: pochopíte výhody a obmedzenia vzorov, budete vedieť rozpoznať aplikované vzory v systémoch
- Téma I. Čo sú vzory a prečo sú potrebné? Ich typy.
- Téma II. Generatívne a štrukturálne vzory.
- Téma III. Vzorce správania.
- Téma IV. Antipatterns.
Modul 5: Čistá architektúra
11. marca
Naučíme sa navrhovať podľa kritérií čistej architektúry, nájdeme odchýlky od čistej architektúry a navrhneme možnosti systémového riešenia. Naučíme sa, ako aplikovať rozloženie kódu, navrhnúť a nakresliť architektonické hranice, aby sme zjednodušili ďalšie zmeny a údržbu kódu.
- Téma I. Spojka a súdržnosť.
- Téma II. Architektonické hranice.
- Téma III. Čistá architektúra.
Modul 6: Rôzne architektonické prístupy
25. marca
Naučíme sa zvoliť prístup k riešeniu zadaných výrobných problémov, vysvetlíme výhody či cudzie/vlastné riešenia. Budeme schopní nájsť vhodné riešenia zadaných úloh s prihliadnutím na aktuálnu situáciu
- Téma I. Požiadavky, predmet. Analýza. Funkčné/nefunkčné požiadavky.
- Téma II. Architektonické štýly. Cibuľové, viacúrovňové, orientované na služby, mikroservisy, riadené udalosťami.
- Téma III. Architektúra aplikácie. MVC, MVP, MVVM, MV*.
relácia AMA s prednášajúcimi
Siedmy modul: architektúra všade
1. apríla
Naučíme sa aplikovať poznatky o architektúre na rôzne úrovne mierky (nielen rozloženie tried a modulov, ale aj celých systémov)
- Téma I. Typy architektov a ich úlohy.
- Téma II. Architektúry na rôznych úrovniach (embedded, aplikácia, distribuovaný systém, cloud-native služba).
Ôsmy modul: zhrnutie
8. apríla
Poďme sa naučiť, ako si jednoducho vybrať nástroj pre konkrétnu úlohu
- Téma I. Prehľad hlavných nástrojov a technológií, ich miesto v architektúre a princípy výberu.
- Dátové úložiská: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Fronty: AMQP, Králik, Kafka, MQTT.
- Jazyky: Python, Java, GO, C++, Javascript/Typescript.
- Rozhranie: Konzola, natívne aplikácie, WEB: React, Vue, Angular, Jquery, hybrid, chatboti.
- Nástroje infraštruktúry: docker, k8s, terraform, ansible.