Елисеев
Популярное в елисеев
Курсы от Елисеев
Стрим про реляционные базы данных
В последнем крупном стриме мы обсудили вопросы безопасности в инфраструктуре и программном коде, затронув темы безопасного сохранения и извлечения данных из баз данных. Ранее мы также говорили об ускорении работы веб-приложений.В каждом из наших проектов мы используем базы данных, будь то в монолитных архитектурах или в случае модулей и микросервисов. Часто в рабочих проектах нам приходится составлять сложные SQL-запросы для различных выборок. Дл
Стрим про безопасность web-приложений
В комментариях и чатах к предыдущим стримам часто попадалось предложение о том, что было бы интересно посмотреть или послушать что-нибудь на тему безопасной разработки web-приложений. Как про написание безопасного кода, так и про защиту сетей, виртуальных машин и контейнеров.Эта тема теперь особенно актуальна ввиду ужесточения ответственности за утечки персональных данных и за несоблюдение требований законов к хранению и защите этих данных. Помим
Практики разделения на модули и микросервисы
На декабрьском стриме мы познакомились с идеями разделения кода на модули или микросервисы. Мы разобрали всё это на своём примере большого магазина, но от вас поступили предложения сделать это и на ваших примерах для ваших предметных областей. Также часто спрашивают о том, как раздробить на модули или микросервисы не новый, а уже имеющийся монолитный проект.Пришла пора ответить на эти вопросы, спрограммировать работу с очередями, реализовать патт
Доменная модель и Event Storming
Применение Event Storming на практике построения доменной модели проекта аукциона. Моделирование пользовательских сценариев.
Разработка аукциона на SlimPHP и ReactJS
Серия скринкастов по разработке интерактивного аукциона с API на микрофреймворке Slim PHP и фронтендом на ReactJS по практикам DDD и DevOps.
Как работает PHPUnit
Разберём устройство тестовых фреймворков. Спрограммируем свой тестовый фреймворк на примере PHPUnit. В нём как в реальном сделаем сканирование тестовых файлов, тестирование ожидаемых выбрасываемых исключений и написание параметризованных тестов с провайдерами данных с атрибутом DataProvider.Заодно отрефакторим полученный код, избавив его от нарушения инкапсуляции и от побочных эффектов записи результатов и прямого вывода на экран. Вынесем принтер
Способы ускорения PHP-приложений
Изучим методы повышения быстродействия веб-приложения. От простого активации OpCache, кеширования настроек и ленивой инициализации сервисов до применения Preload с JIT и RoadRunner, асинхронности, использования Fibers и других особенностей в различных фреймворках. Выполним практику на проектах с бенчмарками. Обсудим потенциальные проблемы, удобство разработки stateless-сервисов и способы передачи контекста запроса.
Большой стрим про SOLID и GRASP
Мы уже рассмотрели высокоуровневое разделение проекта на модули и микросервисы, чтобы уменьшить количество связей между отдельными подсистемами. В качестве примера использовалась сложная растущая программная система для крупного завода железобетонных изделий, предлагающего бетон с ароматом клубники для VIP-клиентов. Тогда мы вскользь упомянули принципы и паттерны SOLID и GRASP применительно к модулям. Эта тема интересна сама по себе, и к ней все
Идеи разделения на модули и микросервисы
Мы дошли до программирования доменной модели аукциона. У нас уже есть подробное задание, которое теперь нужно реализовать в коде. Нужно будет разобраться с доменными контекстами и пройтись по пользовательским сценариям. Это мы рассмотрим в следующих скринкастах.Но помимо аукциона нам будет крайне полезно более ёмко рассмотреть примеры из других предметных областей. Для этого мы проведём отдельный большой обобщающий практический стрим про декомпоз
Практический рефакторинг
Рефакторинг реальных проектов и библиотек. Разбор кода и рекомендации по тактическому. и архитектурному улучшению.