Тариф: Standart Спикеры курса: Егор Лукьянов, Александр Вагнер На курсе проникнемся мышлением архитектора и начнем думать дальше, чем видим, чтобы код напоминал произведение искусства, а не развалины. Научитесь писать чистые и управляемые проекты, создавать поддерживаемые системы и организовывать код. Бесплатно сделаем все возможные ошибки во время практических заданий, чтобы потом избежать их в работе и сохранить миллионы. Почему архитектура приложений важна так же, как спасательный жилет на Титанике: В прошлом многие приложения создавались без проектирования. Это казалось удобным: никаких издержек, связанных с планированием, ускоренное прототипирование. Но со временем сложные приложения превращались в неуправляемый крейсер, который на полном ходу несется на айсберг. Тогда-то архитектура и стала настоящим спасательным жилетом. Приложение с хорошо продуманной архитектурой легче расширять, изменять, тестировать, отлаживать и понимать. Архитектура приложения — это искусство. Искусство проектировать и создавать масштабные системы. Что даёт архитектура приложений: Ускорение разработки даже сложного приложения Возможность менять структуру даже в старых версиях приложения Гибкость в изменении отдельных блоков приложения Упрощённый онбординг новых сотрудников Бесшовную ротацию разработчиков между проектами Для кого мы создали этот курс: Разработчиков и и всех, кто хочет думать как архитектор Взгляните на мир глазами других архитекторов, выйдите на новый уровень в разработке ПО и повысьте свою ценность как специалиста. Team Lead и Tech Lead Начните легко управлять изменениями в проекте и получите единое понимание архитектуры всей командой. Учиться проще тому, кто: Имеет опыт работы с Git Знает хотя бы один язык программирования Спойлер: Программа: Вас ждут теоретические лекции и практические задания. Во время обучения студенты будут выполнять лабораторные работы — все они основаны на реальных задачах. Первый модуль: введение в архитектуру приложений Познакомимся с подходами и парадигмами архитектуры приложений Тема I. Проблематика, почему важно проектировать софт грамотно. Зачем нужна архитектура, что бывает, когда о ней не думают. Тема II. Изоляция как средство контроля сложности. Спагетти-код. Модульность. Связанность (coupling). Статическое связывание, динамическое связывание. Компоненты и их взаимодействие. Компонент как самостоятельная сущность. Проектирование слабосвязанных компонентов. Тестирование компонентов. MVC как пример модульного паттерна. Причины изменений, изоляция по принципу причин изменений. Второй модуль: Unified Modelling Language Освоим язык графического отображения: сможете читать и проектировать с помощью этого языка. Научимся использовать диаграммы для визуализациии архитектруры и связей. Тема I. Основные компоненты (сущности, термины, диаграммы классов и последовательностей), что ими можно выражать для чего они нужны. Третий модуль: принципы ООП Научимся анализировать высокоуровнево: будете знать, как решать проблему и с помощью какой парадигмы. Тема I. Обзор парадигм программирования. Тема II. ООП, принципы. ООП как средство архитектуры. Классы и методы. Объектный подход, как метод изоляции. Интерфейсы и абстрактные классы. Проблемы наследования. Тема III. Принципы ООП: (SOLID, DRY). Четвертый модуль: паттерны проектирования Научимся проектировать системы, используя паттерны: поймете преимущества и ограничения паттернов, сможете распознать в системах примененные паттерны Тема I. Что такое паттерны и зачем они нужны. Их виды. Тема II. Порождающие и структурные паттерны. Тема III. Поведенческие паттерны. Тема IV. Антипаттерны. Пятый модуль: чистая архитектура Научимся проектировать по критериям чистой архитектуры, находить отклонения от чистой архитектуры и предлагать варианты системного решения. Научимся применять компановку кода, проектировать и проводить архитектурные границы для упрощения дальнейшего изменения и поддержки кода. Тема I. Coupling & Cohesion (Связанность и сочетаимость). Тема II. Архитектурные границы. Тема III. Чистая архитектура. Шестой модуль: различные архитектурные подходы Научимся выбирать подход к решению поставленных производственных задач, объяснять преимущества или чужие/собственные решения. Сможем находить подходящие решения для поставленных задач с учётом актуальной ституации Тема I. Требования, предметная область. Анализ. Функциональные/нефункциональные требования. Тема II. Архитектура приложений. Паттерны MVC, MVVM, MVP, MV. Тема III. Архитектура систем. Трёхуровневая архитектура, гексагональная архитектура. Седьмой модуль: архитектура везде Научимся применить знания об архитектуре к различным уровням масштаба (не только компоновка классов и модулей, но и целых систем) Тема I. Виды архитекторов и их задачи. Тема II. Архитектуры на разных уровнях (embedded, application, distributed system, cloud-native service). Восьмой модуль: подводим итоги Научимся без проблем выбирать инструмент под конкретную задачу Тема I. Обзор основных инструментов и технологий, их место в архитектуре и принципы выбора. Хранение данных: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Kafka, Cassandra. Языки: Python, Java, GO, C++, Javascript/Typescript, WEB. Frameworks: React, Vue, Angular, Jquery. Kubernetes и пр. Спойлер: Об спикерах: Егор Лукьянов (Software Architect / Teamlead в ISG Neuro) Более 15 лет в IT Отвечает за архитектуру Платформы анализа больших данных Руководит бэкенд-разработкой на Python Развивает культуру осознанного проектирования программного обеспечения Александр Вагнер (Solution Architect & co-founder в TorrowTechnologies) Более 8 лет в IT Строит с нуля компанию и платформу Torrow Основные технологии: .NET Core (C#), TypeScript, MongoDB, ElasticSearch Имеет богатый опыт создания и разработки high-load веб-сервисов и приложений Спойлер: Содержание складчины (файлы и папки) [Slurm] Архитектура приложений Пиши как разработчик думай как архитектор 2022.txt [136] 01 Введение 1.1 Знакомство с курсом 1 step_RIP.mkv [3m 372k 953] 1.2 Учебный проект 1 step.txt [2k 715] 1.3 Встреча 1 step_RIP.mkv [53m 917k 129] 02 Введение в архитектуру приложений 2.1 Введение 1 step_RIP.mkv [2m 33k 792] 2 step_RIP.mkv [2m 397k 929] Текстовый документ.txt [740] 2.2 Решение задач архитектуры приложений 1 step_RIP.mkv [1m 654k 362] 2 step_RIP.mkv [5m 650k 12] 3 step_RIP.mkv [1m 532k 716] 4 step_RIP.mkv [909k 258] 5 step.txt [937] 6 step.txt [409] 7 step.txt [1k 879] 8 step.txt [4k 118] 9 step.txt [4k 144] 03 Unified Modelling Language 3.1 Введение 1 step_RIP.mkv [3m 191k 468] 2 step.txt [647] 3.2 Концептуальная модель UML 1 step_RIP.mkv [3m 550k 415] 2 step.txt [491] 3 step.odt [196k 928] 3.3 Разбираем основные типы диаграмм 1 step_RIP.mkv [7m 797k 462] 2 step.odt [69k 879] 3 step_RIP.mkv [7m 202k 815] 4 step.odt [84k 592] 5 step_RIP.mkv [6m 193k 846] 6 step.odt [16k 674] 7 step_RIP.mkv [2m 551k 428] 3.4 Альтернативные способы описания архитектуры 1 step_RIP.mkv [9m 196k 207] 2 step.txt [3k 35] 3.5 Практические задания 1 step.txt [2k 873] 2 step.txt [2k 488] 3 step.txt [2k 913] 04 Принципы ООП 4.1 Введение 1 step_RIP.mkv [525k 608] 4.2 Обзор парадигм программирования 1 step_RIP.mkv [4m 859k 939] 2 step_RIP.mkv [8m 204k 425] 3 step.txt [22k 135] 4 step.txt [3k 700] 5 step_RIP.mkv [8m 230k 602] 6 step_RIP.mkv [6m 519k 13] 4.3 Принципы ООП 1 step_RIP.mkv [1m 537k 728] 2 step.txt [2k 690] 3 step.txt [626] 4 step_RIP.mkv [6m 248k 585] 5 step_RIP.mkv [10m 602k 301] 6 step_RIP.mkv [5m 835k 923] 7 step.odt [27k 300] 8 step.txt [434] 9 step.odt [219k 487] 4.4 Прочие принципы 1 step.txt [8k 103] 4.5 Практическое задание 1 step.txt [3k 325] 4.6 Итоги 1 step_RIP.mkv [341k 492] 4.7 Запись встречи 1 step_RIP.mkv [71m 281k 940] 05 Паттерны проектирования 5.1 Введение 1 step_RIP.mkv [2m 54k 901] 2 step.txt [6k 84] 5.2 Порождающие паттерны 1 step_RIP.mkv [13m 218k 920] 2 step.odt [713k 683] 3 step.txt [3k 871] 5.3 Структурные паттерны 1 step_RIP.mkv [15m 484k 52] 2 step.odt [767k 641] 3 step.txt [1k 595] 4 step.odt [116k 913] 5.4 Поведенческие паттерны 1 step_RIP.mkv [25m 865k 848] 2 step.odt [1m 42k 686] 3 step.txt [4k 798] 5.5 Антипаттерны 1 step_RIP.mkv [13m 146k 633] 2 step.odt [255k 984] 5.6 Практическое задание 1 step.txt [2k 936] 06 Чистая архитектура 6.1 Введение 1 step_RIP.mkv [295k 332] 6.2 Связанность и сочетаемость Coupling & Cohesion 1 step_RIP.mkv [2m 674k 131] 2 step_RIP.mkv [4m 611k 148] 3 step.txt [2k 85] 4 step_RIP.mkv [5m 388k 838] 5 step_RIP.mkv [5m 254k 103] 6 step.odt [32k 643] 6.3 Архитектурные границы 1 step_RIP.mkv [2m 576k 796] 2 step_RIP.mkv [5m 419k 777] 3 step.txt [1k 301] 6.4 Чистая архитектура 1 step_RIP.mkv [4m 24k 537] 2 step_RIP.mkv [2m 424k 978] 6.5 Практическое задание 1 step.txt [3k 273] 6.6 Итоги модуля Слёрм-4_RIP.mkv [425k 816] 07 Различные архитектурные подходы 7.1 Введение 1 step_RIP.mkv [272k 292] 2 step.txt [570] 7.2 Требования 1 step_RIP.mkv [10m 88k 885] 2 step.odt [237k 460] 3 step.txt [3k 144] 7.3 Архитектурные стили и паттерны 1 step_RIP.mkv [10m 448k 356] 2 step.odt [258k 107] 3 step_RIP.mkv [24m 367k 201] 4 step.txt [38k 181] 5 step.odt [330k 533] 7.4 Практическое задание 1 step.txt [1k 497] 7.5 Практическое задание 1 step.txt [2k 548] 7.6 Итоги модуля 1 step_RIP.mkv [1m 630k 192] 2 step.txt [2k 403] 7.7 Запись встречи со студентами 1 step_RIP.mkv [73m 140k 639] 08 Архитектура везде 8.1 Введение 1 step_RIP.mkv [739k 352] 8.2 Архитекторы и их задачи 1 step_RIP.mkv [2m 784k 254] 2 step_RIP.mkv [3m 47k 621] 3 step_RIP.mkv [7m 52k 53] 4 step.txt [3k 493] 8.3 Архитектура на разных уровнях от микро до макро 1 step_RIP.mkv [3m 356k 43] 2 step_RIP.mkv [6m 739k 907] 3 step_RIP.mkv [6m 352k 437] 4 step.txt [2k 244] 5 step_RIP.mkv [6m 110k 537] 6 step_RIP.mkv [14m 191k 865] 8.4 Итоги модуля 1 step_RIP.mkv [527k 34] 8.5 Практическое задание 1 step.txt [3k 330] 09 Подводим итоги 9.1 Введение 1 step_RIP.mkv [662k 977] 2 step.txt [886] 9.2 Инструменты и технологии 1 step_RIP.mkv [6m 469k 798] 2 step.txt [12k 28] 3 step_RIP.mkv [8m 926k 350] 4 setp.odt [60k 309] 5 step_RIP.mkv [11m 511k 621] 6 step.odt [198k 835] 7 step_RIP.mkv [12m 751k 960] 8 step.odt [182k 44] 9.3 Подводим итоги 1 step_RIP.mkv [1m 317k 322] 2 step.txt [744] 9.4 Практическое задание 1 step.txt [2k 621] 10 Завершение курса 10.1 Итоговый тест 1 step.odt [21k 487] 10.2 Завершение курса 1 step_RIP.mkv [3m 583k 380] 2 step.txt [0] Объем: 533Мб.