Applikationsarkitektur: skriv som en utvecklare, tänk som en arkitekt - kurs 80 000 rub. från Slurm, träning 3 månader, Datum 22 januari 2024.
Miscellanea / / November 29, 2023
Lär dig att skriva rena och hanterbara projekt, skapa underhållbara system och organisera kod.
Vi kommer att göra alla möjliga misstag under praktiska uppgifter gratis, så att du senare kan undvika dem i ditt arbete och spara miljoner.
Tidigare skapades många applikationer utan design. Det verkade bekvämt: inga planeringskostnader, snabb prototypframställning.
Men med tiden förvandlades komplexa applikationer till en okontrollerbar kryssare som rusade i full fart mot isberget.
Det var då som arkitekturen blev en riktig flytväst. En applikation med en väldesignad arkitektur är lättare att utöka, ändra, testa, felsöka och förstå.
Applikationsarkitektur är en konst. Konsten att designa och skapa storskaliga system.
Du kommer att lära dig att bygga UML-diagram, refactor-kod, dra arkitektoniska gränser och analysera system. Varje deltagare kommer att slutföra ett kursprojekt: designa och fullständigt beskriva ett informationssystem som det sker i verkliga produktionsaktiviteter.
Introduktionstillfälle med föreläsare
22 januari kl 19.00
Modul ett: Introduktion till applikationsarkitektur
22 januari
Låt oss bekanta oss med applikationsarkitekturens tillvägagångssätt och paradigm
- Ämne I. Problemet är varför det är viktigt att designa mjukvara på rätt sätt. Varför behövs arkitektur, vad händer när folk inte tänker på det.
- Ämne II. Isolering som ett sätt att kontrollera komplexitet. Spaghetti kod. Modularitet. Koppling. Statisk bindning, dynamisk bindning. Komponenter och deras interaktioner. En komponent som en självständig enhet. Design av löst kopplade komponenter. Komponenttestning. MVC som ett exempel på ett modulärt mönster. Orsaker till förändringar, isolering utifrån orsakerna till förändringar.
Andra modulen: Unified Modeling Language
29 januari
Låt oss bemästra det grafiska visningsspråket: du kommer att kunna läsa och designa med detta språk. Låt oss lära oss att använda diagram för att visualisera arkitektur och samband.
- Ämne I. Huvudkomponenterna, vad kan uttryckas med dem, vad de behövs för.
- Ämne II. Klass-, aktivitets-, sekvens- och användningsfallsdiagram.
- Ämne III. Nackdelar med UML. Modell C4. Verktyg
Tredje modulen: OOP-principer
12 februari
Vi kommer att lära oss att analysera på hög nivå: du kommer att veta hur man löser ett problem och använder vilket paradigm.
- Ämne I. Genomgång av programmeringsparadigm.
- Ämne II. OOP-principer. OOP som ett medel för arkitektur. Klasser och metoder. Objektsynsätt som isoleringsmetod. Gränssnitt och abstrakta klasser. Arvsproblem.
- Ämne III. OOP-principer: (SOLID, DRY).
AMA-session med talare
Modul fyra: Designmönster
26 februari
Vi kommer att lära oss att designa system med hjälp av mönster: du kommer att förstå fördelarna och begränsningarna med mönster, du kommer att kunna känna igen de tillämpade mönstren i system
- Ämne I. Vad är mönster och varför behövs de? Deras typer.
- Ämne II. Generativa och strukturella mönster.
- Ämne III. Beteendemönster.
- Ämne IV. Antimönster.
Modul fem: Ren arkitektur
11 mars
Vi ska lära oss att designa efter kriterierna för ren arkitektur, hitta avvikelser från ren arkitektur och föreslå alternativ för en systemlösning. Vi kommer att lära oss hur man tillämpar kodlayout, designar och drar arkitektoniska gränser för att förenkla ytterligare ändringar och underhåll av koden.
- Ämne I. Koppling & Sammanhållning.
- Ämne II. Arkitektoniska gränser.
- Ämne III. Ren arkitektur.
Modul sex: Olika arkitektoniska tillvägagångssätt
25 mars
Vi kommer att lära oss att välja tillvägagångssätt för att lösa tilldelade produktionsproblem, förklara fördelarna eller andras/våra egna lösningar. Vi kommer att kunna hitta lämpliga lösningar för de tilldelade uppgifterna med hänsyn till nuläget
- Ämne I. Krav, ämnesområde. Analys. Funktionella/icke-funktionella krav.
- Ämne II. Arkitektoniska stilar. Lök, multi-level, serviceorienterad, mikroservice, händelsedriven.
- Ämne III. Applikationsarkitektur. MVC, MVP, MVVM, MV*.
AMA-session med talare
Sjunde modulen: arkitektur överallt
1 april
Vi kommer att lära oss att tillämpa kunskap om arkitektur på olika skalanivåer (inte bara layouten av klasser och moduler, utan även hela system)
- Ämne I. Typer av arkitekter och deras arbetsuppgifter.
- Ämne II. Arkitekturer på olika nivåer (inbäddad, applikation, distribuerat system, molnbaserad tjänst).
Åttonde modulen: summering
8 april
Låt oss lära oss hur du enkelt väljer ett verktyg för en specifik uppgift
- Ämne I. Genomgång av de viktigaste verktygen och teknikerna, deras plats i arkitekturen och urvalsprinciper.
- Datalagring: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Köer: AMQP, Rabbit, Kafka, MQTT.
- Språk: Python, Java, GO, C++, Javascript/Typescript.
- Gränssnitt: Konsol, inbyggda applikationer, WEB: React, Vue, Angular, Jquery, hybrid, chatbots.
- Infrastrukturverktyg: docker, k8s, terraform, ansible.