Architektura aplikacji: pisz jak programista, myśl jak architekt - kurs 80 000 rub. ze Slurm, szkolenie 3 miesiące, data 22 stycznia 2024 r.
Miscellanea / / November 29, 2023
Naucz się pisać przejrzyste i łatwe w zarządzaniu projekty, tworzyć łatwe w utrzymaniu systemy i organizować kod.
Za darmo popełnimy wszystkie możliwe błędy podczas zadań praktycznych, abyś później mógł ich uniknąć w swojej pracy i zaoszczędzić miliony.
W przeszłości wiele aplikacji tworzono bez projektu. Wydawało się to wygodne: brak kosztów planowania, szybkie prototypowanie.
Jednak z biegiem czasu złożone aplikacje zamieniły się w niekontrolowany krążownik, pędzący z pełną prędkością w kierunku góry lodowej.
To właśnie wtedy architektura stała się prawdziwą kamizelką ratunkową. Aplikację o dobrze zaprojektowanej architekturze łatwiej jest rozszerzać, zmieniać, testować, debugować i rozumieć.
Architektura aplikacji jest sztuką. Sztuka projektowania i tworzenia systemów wielkoskalowych.
Nauczysz się budować diagramy UML, refaktoryzować kod, wyznaczać granice architektury i analizować systemy. Każdy uczestnik wykona projekt kursu: zaprojektuje i szczegółowo opisze system informatyczny tak, jak to ma miejsce w rzeczywistych działaniach produkcyjnych.
Sesja wprowadzająca z prelegentami
22 stycznia o godzinie 19:00
Moduł pierwszy: Wprowadzenie do architektury aplikacji
22 stycznia
Zapoznajmy się z podejściami i paradygmatami architektury aplikacji
- Temat I. Problem polega na tym, dlaczego ważne jest prawidłowe projektowanie oprogramowania. Dlaczego architektura jest potrzebna, co się dzieje, gdy ludzie o niej nie myślą.
- Temat II. Izolacja jako sposób kontrolowania złożoności. Kod spaghetti. Modułowość. Sprzęganie. Wiązanie statyczne, wiązanie dynamiczne. Komponenty i ich interakcje. Komponent jako niezależny byt. Projektowanie luźno powiązanych komponentów. Testowanie komponentów. MVC jako przykład wzorca modułowego. Przyczyny zmian, izolacja na podstawie przyczyn zmian.
Moduł drugi: Ujednolicony język modelowania
29 stycznia
Opanujmy język wyświetlania graficznego: będziesz mógł czytać i projektować, używając tego języka. Nauczmy się używać diagramów do wizualizacji architektury i połączeń.
- Temat I. Główne składniki, co można za ich pomocą wyrazić, do czego są potrzebne.
- Temat II. Diagramy klas, aktywności, sekwencji i przypadków użycia.
- Temat III. Wady UML-a. Model C4. Narzędzia
Moduł trzeci: Zasady OOP
12 lutego
Nauczymy się analizować na wysokim poziomie: będziesz wiedział jak rozwiązać problem i używając jakiego paradygmatu.
- Temat I. Przegląd paradygmatów programowania.
- Temat II. Zasady OOP. OOP jako środek architektury. Klasy i metody. Podejście obiektowe jako metoda izolacji. Interfejsy i klasy abstrakcyjne. Problemy z dziedziczeniem.
- Temat III. Zasady OOP: (STAŁE, SUCHE).
Sesja AMA z prelegentami
Moduł czwarty: Wzorce projektowe
26 lutego
Nauczymy się projektować systemy za pomocą wzorców: zrozumiesz zalety i ograniczenia wzorców, będziesz potrafił rozpoznać wzorce stosowane w systemach
- Temat I. Czym są wzorce i dlaczego są potrzebne? Ich typy.
- Temat II. Wzorce generatywne i strukturalne.
- Temat III. Wzorce zachowań.
- Temat IV. Antywzorce.
Moduł piąty: Czysta architektura
11 marca
Nauczymy się projektować według kryteriów czystej architektury, znajdować odstępstwa od czystej architektury i proponować warianty rozwiązania systemowego. Dowiemy się, jak zastosować układ kodu, zaprojektować i wytyczyć granice architektoniczne, aby uprościć dalsze zmiany i utrzymanie kodu.
- Temat I. Sprzężenie i spójność.
- Temat II. Granice architektoniczne.
- Temat III. Czysta architektura.
Moduł szósty: Różne podejścia architektoniczne
25 marca
Nauczymy się wybierać podejście do rozwiązywania powierzonych problemów produkcyjnych, wyjaśniać zalety lub rozwiązania własne/inne. Będziemy w stanie znaleźć odpowiednie rozwiązania dla powierzonych zadań, biorąc pod uwagę aktualną sytuację
- Temat I. Wymagania, tematyka. Analiza. Wymagania funkcjonalne/niefunkcjonalne.
- Temat II. Style architektoniczne. Cebulowy, wielopoziomowy, zorientowany na usługi, mikroserwis, sterowany zdarzeniami.
- Temat III. Architektura aplikacji. MVC, MVP, MVVM, MV*.
Sesja AMA z prelegentami
Moduł siódmy: architektura wszędzie
1 kwietnia
Nauczymy się stosować wiedzę o architekturze na różnych poziomach skali (nie tylko układu klas i modułów, ale także całych systemów)
- Temat I. Rodzaje architektów i ich zadania.
- Temat II. Architektury na różnych poziomach (embedded, aplikacja, system rozproszony, usługa natywna w chmurze).
Moduł ósmy: podsumowanie
8 kwietnia
Nauczmy się jak łatwo dobrać narzędzie do konkretnego zadania
- Temat I. Przegląd głównych narzędzi i technologii, ich miejsca w architekturze oraz zasad doboru.
- Przechowywanie danych: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Kolejki: AMQP, Rabbit, Kafka, MQTT.
- Języki: Python, Java, GO, C++, JavaScript/Maszynopis.
- Interfejs: Konsola, aplikacje natywne, WEB: React, Vue, Angular, Jquery, hybryda, chatboty.
- Narzędzia infrastrukturalne: docker, k8s, terraform, ansible.