Для кого этот курс Для разработчиков, программирующих на PHP (опыт от 1 года) или на любом другом ООП (опыт от 3-х лет), которые хотят развиваться в backend-направлении или стать fullstack-специалистом. Если вы уже знакомы с PHP, то понимаете, что для него важно придерживаться парадигм программирования. На курсе вы узнаете, чем парадигмы ООП отличаются от функционального программирования, научитесь применять SOLID, DRY, KISS и стандарты PHP — PSR. Вы сможете оценить алгоритмическую сложность кода, работать с кодом с точки зрения анализа и будете понимать, почему решение работает медленно и как это поправить. Вы освоите тестирование, доставку в продакшн, а также познакомитесь с SRE-практиками, которые позволяют определять, насколько стабилен сайт, как повысить его стабильность и сделать отказоустойчивым Необходимые знания Опыт разработки на PHP от одного года или опыт разработки на другом языке от 3 лет (приветствуются любые языки ООП) Опыт работы с системой версионирования Git Знание основных принципов ООП, опыт работы с базами данных и понимание основ веб-разработки облегчат прохождение курса для программиста, но не являются обязательными. Что вам даст этот курс Вы сможете грамотно решать на PHP разнообразные задачи бэкенда Middle+ уровня. Подготовка проходит на реальных продуктовых задачах, после которых вы будете четко понимать, чем эффективные решения отличаются от плохого кода. В последние годы работодатели отдают предпочтение PHP-разработчикам, которые не только пишут чистый код, но и умеют работать с инфраструктурой, в команде. Поэтому программа курса глубоко погружается в экосистему PHP: Инфраструктура — Docker, виртуальные машины, облака, сетевое взаимодействие, обеспечение безопасности приложения, Composer, управление зависимостями, очереди и построение асинхронного взаимодействия. Хранилище — PostgreSQL, MySQL, NoSQL (Clickhouse, ElasticSearch) и взаимодействие PHP с различными типами хранилищ. Тестирование — не только unit-тесты, но и покрытие тестами всех слоёв приложения Программа Общие знания Модуль направлен на обобщение знаний, а также на расширение понимания возможностей языка PHP и теоретических основ. Тема 1: Подготовка к курсу и инфраструктура ПО //ДЗ Тема 2: Linux //ДЗ Тема 3: Внутреннее устройство PHP Тема 4: Composer // ДЗ Тема 5: PHP WebServers // ДЗ Тема 6: Сети, протоколы. Балансировка. Безопасность // ДЗ Базы данных Модуль нацелен на активное изучение вопросов выбора, применения и управления хранилищами в проектах, использующих PHP. Происходит тесное знакомство с СУБД PostgreSQL, рассматриваются различные NoSQL хранилища, а также вопросы тюнинга MySQL. Тема 1: Основные понятия баз данных // ДЗ Тема 2: Алгоритмы Тема 3: Решение алгоритмических задач // ДЗ Тема 4: PostgreSQL для администратора Тема 5: PostgreSQL для разработчика // ДЗ Тема 6: Как устроен PostgreSQL // ДЗ Тема 7: Другие SQL-решения // ДЗ Тема 8: Redis // ДЗ Тема 9: MySQL и форки Тема 10: PHP и базы данных // ДЗ Тема 11: Парадигмы программирования Тема 12: Практикум решения алгоритмических задач 1 // ДЗ Практики разработки Модуль изучает всевозможные правила, рекомендации и практики, применяемые в современной разработке: начиная от именования переменных и заканчивая паттернами и алгоритмами, студенты знакомятся с правильной организацией кода PHP-приложений. Тема 1: Архитектура кода // ДЗ Тема 2: Практики хорошего кода Тема 3: Design patterns. Часть 1 Тема 4: Design patterns. Часть 2 // ДЗ Тема 5: Введение в тестирование Тема 6: Unit-тестирование // ДЗ Тема 7: Практикум по тестированию // ДЗ Архитектуры и HighLoad-системы Модуль посвящён расширению приложения, его отказоустойчивости, вариантам организации взаимодействия с другими приложениями, а также способам доставки функциональности до Production. Тема 1: Профилирование, логирование и мониторинг Тема 2: Очереди. Часть 1 Тема 3: Практикум решения алгоритмических задач 2 // ДЗ Тема 4: Очереди. Часть 2 // ДЗ Тема 5: Проектирование API // ДЗ Тема 6: Репликация Тема 7: Шардинг Тема 8: Кеширование Тема 9: Deploy приложений // ДЗ Тема 10: Основы Kubernetes Тема 11: Практикум по разворачиванию приложений Тема 12: Site Reliability Engineering Преподаватели: Владимир Языков, Александр Пряхин, Дмитрий Кириллов, Илья Нуриллин, Сергей Петров, Михаил Каморин, Олег Мельник