Programos architektūra: rašyk kaip kūrėjas, galvok kaip architektas – kursas 80 000 rub. iš Slurm, mokymai 3 mėn., Data 2024 m. sausio 22 d.
įvairenybės / / November 29, 2023
Išmokite rašyti švarius ir valdomus projektus, kurti prižiūrimas sistemas ir tvarkyti kodą.
Visas įmanomas klaidas atlikdami praktines užduotis padarysime nemokamai, kad vėliau galėtumėte jų išvengti savo darbe ir sutaupyti milijonus.
Anksčiau daugelis programų buvo sukurtos be dizaino. Atrodė patogu: jokių planavimo išlaidų, greitas prototipų kūrimas.
Tačiau laikui bėgant sudėtingos programos virto nevaldomu kreiseriu, visu greičiu lekiančiu link ledkalnio.
Būtent tada architektūra tapo tikra gelbėjimosi liemene. Programą su gerai suplanuota architektūra lengviau išplėsti, keisti, išbandyti, derinti ir suprasti.
Programų architektūra yra menas. Didelės apimties sistemų projektavimo ir kūrimo menas.
Išmoksite kurti UML diagramas, refraktoriaus kodą, nubrėžti architektūrines ribas ir analizuoti sistemas. Kiekvienas dalyvis atliks kursinį projektą: sukurs ir pilnai apibūdins informacinę sistemą, kaip tai vyksta realioje gamybinėje veikloje.
Įvadinė sesija su pranešėjais
sausio 22 d., 19:00 val
Pirmas modulis: įvadas į taikomųjų programų architektūrą
sausio 22 d
Susipažinkime su taikomųjų programų architektūros požiūriais ir paradigmomis
- I tema. Problema ta, kodėl svarbu tinkamai sukurti programinę įrangą. Kam reikalinga architektūra, kas nutinka, kai žmonės apie tai negalvoja.
- II tema. Izoliacija kaip sudėtingumo valdymo priemonė. Spagečių kodas. Moduliškumas. Sukabinimas. Statinis įrišimas, dinaminis įrišimas. Komponentai ir jų sąveika. Komponentas kaip nepriklausomas subjektas. Laisvai sujungtų komponentų projektavimas. Komponentų testavimas. MVC kaip modulinio modelio pavyzdys. Pakeitimų priežastys, izoliacija pagal pokyčių priežastis.
Antrasis modulis: Unified Modeling Language
sausio 29 d
Įvaldykime grafinę rodymo kalbą: naudodamiesi šia kalba galėsite skaityti ir kurti. Išmokime naudoti diagramas architektūrai ir ryšiams vizualizuoti.
- I tema. Pagrindiniai komponentai, ką jais galima išreikšti, kam jie reikalingi.
- II tema. Klasių, veiklos, sekos ir naudojimo atvejų diagramos.
- III tema. UML trūkumai. Modelis C4. Įrankiai
Trečias modulis: OOP principai
vasario 12 d
Išmoksime analizuoti aukštu lygiu: žinosite, kaip išspręsti problemą ir kokia paradigma.
- I tema. Programavimo paradigmų apžvalga.
- II tema. OOP principai. OOP kaip architektūros priemonė. Klasės ir metodai. Objektinis požiūris kaip izoliavimo metodas. Sąsajos ir abstrakčios klasės. Paveldėjimo problemos.
- III tema. OOP principai: (KIETAS, SAUSAS).
AMA sesija su pranešėjais
Ketvirtas modulis: dizaino modeliai
vasario 26 d
Išmoksime projektuoti sistemas naudodami šablonus: suprasite šablonų privalumus ir apribojimus, gebėsite atpažinti sistemose taikomus šablonus
- I tema. Kas yra modeliai ir kodėl jie reikalingi? Jų rūšys.
- II tema. Generatyviniai ir struktūriniai modeliai.
- III tema. Elgesio modeliai.
- IV tema. Antipatternai.
Penktas modulis: švari architektūra
kovo 11 d
Mokysimės projektuoti pagal grynosios architektūros kriterijus, rasti nukrypimų nuo grynosios architektūros ir pasiūlyti sisteminio sprendimo variantus. Išmoksime pritaikyti kodo išdėstymą, projektuoti ir nubrėžti architektūrines ribas, kad supaprastintume tolesnius kodo pakeitimus ir priežiūrą.
- I tema. Sujungimas ir sanglauda.
- II tema. Architektūrinės ribos.
- III tema. Švari architektūra.
Šeštas modulis: įvairūs architektūriniai požiūriai
kovo 25 d
Išmoksime pasirinkti būdą, kaip spręsti priskirtas gamybos problemas, paaiškinsime privalumus ar kitų žmonių/savo sprendimus. Atsižvelgdami į esamą situaciją, galėsime rasti tinkamus sprendimus pavestoms užduotims atlikti
- I tema. Reikalavimai, dalykinė sritis. Analizė. Funkciniai/nefunkciniai reikalavimai.
- II tema. Architektūros stiliai. Svogūnai, kelių lygių, orientuoti į paslaugas, mikropaslaugos, orientuoti į įvykius.
- III tema. Programos architektūra. MVC, MVP, MVVM, MV*.
AMA sesija su pranešėjais
Septintas modulis: architektūra visur
balandžio 1 d
Išmoksime pritaikyti žinias apie architektūrą įvairiuose masto lygiuose (ne tik klasių ir modulių išdėstymui, bet ir ištisoms sistemoms)
- I tema. Architektų tipai ir jų uždaviniai.
- II tema. Įvairių lygių architektūros (įterptoji, taikomoji programa, paskirstyta sistema, vietinė debesų paslauga).
Aštuntas modulis: apibendrinimas
balandžio 8 d
Išmoksime lengvai pasirinkti įrankį konkrečiai užduočiai atlikti
- I tema. Pagrindinių įrankių ir technologijų apžvalga, jų vieta architektūroje ir atrankos principai.
- Duomenų saugojimas: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Eilės: AMQP, Rabbit, Kafka, MQTT.
- Kalbos: Python, Java, GO, C++, Javascript/Typescript.
- Sąsaja: konsolė, vietinės programos, WEB: React, Vue, Angular, Jquery, hibridas, pokalbių robotai.
- Infrastruktūros įrankiai: docker, k8s, terraform, ansible.