Курс для практикующих Ruby/Rails-разработчиков, которые хотят:
всерьез заняться оптимизацией кода
сделать свои проекты быстрее и эффективнее
добиться профессионального и карьерного роста
получать еще больший кайф от своей работы.
Записаться
Старт 20.01.2025
Продолжительность курса 8 НЕДЕЛЬ
Цель курса: научить участников грамотно выстраивать процесс оптимизации, управлять им и применять правильные инструменты в нужное время и в нужном месте.
После курса вы сможете:
Выстраивать стратегию оптимизации Rails-приложений: уметь определять и собирать нужные метрики, ставить обоснованные цели по производительности и достигать их
Понять, что надо оптимизировать, а что лучше не стоит и подойти к оптимизации любого аспекта Rails-приложения так, чтобы добиться нужного результата
Дружить со сборщиком мусора, профилировать и оптимизировать ruby и rails приложения по процессору и по памяти. Находить и устранять реальные bottleneck'и
Настраивать и использовать мониторинг rails-приложений, настраивать production-окружение и production-like данные локально
Оптимизировать работу СУБД, находить и оптимизировать медленные SQL-запросы, эффективно работать с индексами. Бороться с гидрой N+1, оптимизировать ActiveRecord и понимать, когда лучше работать в обход него
Оптимизировать фронтенд под современный интернет, использовать кеширование по максимуму, понимать как браузер строит страницу, получая ответ сервера, и оптимизировать этот процесс
Оптимизировать свой Development Experience: прогон тестов, сборку, деплой, CI и т.д.
Оптимизировать настройки app-сервера, адаптировать серверы под неравномерную нагрузку
Видео о курсе
Программа
Одна тема в неделю + задание на неделю Проверка автором с подробным code review
Интеграция инструментов контроля соблюдения бюджетов в CI
PageSpeed Insights, Lighthouse
Чек-листы производительного фронтенда
Регистрация на курс
Неделя 7. Оптимизация серверов приложений
Сбор метрик и постановка целей по оптимизации серверов
Обзор и сравнение альтернативных app-серверов для Rails
Закон Литтла
Расчёт оптимальных настроек серверов для вашего проекта
Контроль потребления памяти в production
Отлов memory bloat в production
Оптимизация Rails как фреймворка, derailed_behcnmarks
Оптимизация серверов под неравномерную нагрузку
Reverse Proxy
Минимальная защита от DDoS
Регистрация на курс
Неделя 8. Оптимизация DX (Development eXperience)
Сбор метрик и постановка целей по оптимизации DX
Ещё раз в важности feedback-loop для разработчика
Оптимизация open-source инструментов
Оптимизация скорости загрузки Rails
Оптимизация прогона тестов
Оптимизация деплоя
Оптимизация пересборки
Оптимизация CI
Live-reload css и js
Регистрация на курс
ПРОЦЕСС
Как проходит курс
Вам нужно всего 15-20 минут в день в течение недели, чтобы освоить материал. Вы можете изучать материалы в удобное для вас время
1
Изучение материалов
Еженедельно открывается новая тема, она разбита на части по 5-20 минут, что позволяет легче усваивать материал. Вы можете посмотреть сразу все или уделять всего 15-20 минут в день.
2
Выполнение задания
Домашнее задание, которое требует 2-3 часа в неделю на выполнение, Вы можете выполнять его в удобное для вас время. Это опционально, но с практикой вы получите максимум пользы.
3
Проверка
Когда задание готово, вы сдаете его на проверку. Автор делает code review и дает рекомендации по улучшению вашего решения.
4
Следующая тема
Открывается каждый понедельник, вне зависимости от сданного ДЗ.
Автор
Алексей Васильев
Техлид в Busfor, кандидат технических наук (Github, LinkedIn)
В научной работе на два порядка ускорил моделирование газотранспортных систем Газпрома за счёт применения архитектурных решений, параллельных и распределённых вычислений, расчётов на графических картах.
В 2015 году сменил академическую среду на продуктовую разработку на Rails.
В Busfor оптимизировал и продолжает оптимизировать всё, что тормозило (бэкенд, фронтенд, postgres, sprockets, webpack, capistrano, тесты, CI, кэш и т.д.). За время работы над проектом:
снизил пиковую нагрузку на бэкенд в 5 раз с 15000rpm до 3000rpm
ускорил деплой в 5 раз
ускорил прогон тестов в 4 раза
В 2 раза снизил потребление памяти приложения
в 4 раза ускорил загрузку приложения
ускорил импорт данных объёмом 3Гб в 20 раз, c 60 до 3х минут.
Кроме Rails владеет C++, Go, JavaScript.
Отзывы участников прошлых потоков
Курс шикарный. Жемчужина этого курса - это, конечно, автор. Подход Алексея очень последовательный, структурный и насыщен всей необходимой компиляцией материалов. Я прошёл множество разных курсов на разных платформах, этот даже сравнить не с чем. Отдельная лига.
Прекрасный курс, есть ощущения серьезного "левелапа" после прохождения. Куча инструментов, которые сам бы искал и разбирался самостоятельно с ними гораздо дольше. Интересные ДЗ, позволяющие попробовать эти инструменты и применить их в дальнейшем на своем проекте.
Получился качественный и довольно глубокий курс, очень круто что охватывает все аспекты о которых типичный узкопрофильный разработчик может и не задумываться никогда, пописывая свой бэкенд... Алексей проделал огромную работу при подготовке этого курса, даже представить сложно, за что ему огромная благодарность, но как и в любом курсе больше половины (может быть даже больше 3/4) здесь зависит от стараний ученика в освоении материала.
Александр Емельянов
Разработчик в DeepLearn Inc
Во всех проектах клиентский проектах, анализ которых я делал или которые делал я сам, всегда наступал момент, когда было ощущение что можно ещё оптимизировать и улучшить приложение, но не всегда понятно как именно. Именно это желание и привело меня на курс. Огромный поток информации об инструментах анализа и оптимизации, лучшие практики и обсуждения опыта внедрения решений, это только малая часть того, что я получил. Весь курс это бесценные знания, собранные воедино, удобно структурированные и уже используемой мной на практике. Спасибо огромное за курс.