Лекции помогут подготовиться к отбору в Летние школы или на стажировку в Яндекс
На лекции вы погрузитесь в мир Node.js и узнаете, как JavaScript эволюционировал до мощного инструмента для создания серверных приложений и CLI. Исследуем ключевую особенность Node.js — неблокирующий ввод‑вывод — и разберем механизмы обработки событий от простых колбэков до связанных друг с другом промисов. Заглянем под капот платформы, чтобы понять, как работает Event Loop, V8 и libuv, а также научимся оптимизировать производительность с помощью стримов и буферов.
Важной частью лекции будет практическая работа по поднятию своего сервиса для обработки картинок на NodeJS. Мы обязательно сделаем систему логирования, отправки и просмотра otel‑трейсов, а также ключевые дашборды стабильности нашего сервиса в Grafana.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Разберёмся, что такое типизация и зачем она нужна. Изучим и рассмотрим использование TypeScript на практике. Пройдемся по теории, закрепим знания на практике.
Уже по традиции, мы полностью переработали наши лекции про React. В этом сезоне мы решили сконцентрироваться на архитектуре приложения. Начнём с необходимой базы и разберёмся в тонкостях самого React. А после нас ждет лекция про архитектуру приложения из двух частей. В первой лекции уделим внимание теории, во второй — научимся применять её на практике.
Уже по традиции, мы полностью переработали наши лекции про React. В этом сезоне мы решили сконцентрироваться на архитектуре приложения. Начнём с необходимой базы и разберёмся в тонкостях самого React. А после нас ждет лекция про архитектуру приложения из двух частей. В первой лекции уделим внимание теории, во второй — научимся применять её на практике.
Уже по традиции, мы полностью переработали наши лекции про React. В этом сезоне мы решили сконцентрироваться на архитектуре приложения. Начнём с необходимой базы и разберёмся в тонкостях самого React. А после нас ждет лекция про архитектуру приложения из двух частей. В первой лекции уделим внимание теории, во второй — научимся применять её на практике.
Расскажем, как организовать удобный процесс разработки приложений в популярных IDE (WebStorm, VS Code) и в терминале. А также о браузерных инструментах разработчика (Chrome DevTools): что они умеют и как ими пользоваться.
Поговорим об автотестах и о том, почему необходимо их писать. Познакомимся с видами тестирования — модульным и интеграционным. В части о модульных тестах подробно поговорим о том, как изолировать внешние зависимости, как тестировать взаимодействие с другими модулями. Попробуем написать модульные тесты для приложения на React. Рассмотрим наиболее эффективные приемы, которые помогут писать полезные тесты и легко их поддерживать.
Посмотрим, как люди с особенностями взаимодействуют с виртуальным миром, и обсудим важность доступности как для пользователей, так и для разработчиков. Познакомимся с простыми способами базовой настройки доступности, расскажем, что делать, если нужно ещё лучше, а также объясним, как вы можете стать настоящим экспертом в этой области.
Обсудим, что такое производительность веб‑страниц и от чего она зависит. Также поговорим про основные показатели и инструменты для их мониторинга, рассмотрим подходы к оптимизации скорости загрузки веб‑приложений.
Поговорим о том, когда и как появился процесс сборки веб‑приложений. Вы узнаете об архитектурном устройстве webpack: как и зачем в нём появились те или иные абстракции и как эти абстракции увидеть вживую. Обсудим стандартные техники: chunk splitting, innerGraph tree shaking, dynamic imports, minimizers, deadcode ellimination, module concatenation.
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шёл эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое Vim и как из него выйти.
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шёл эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое Vim и как из него выйти.
Разберём самые важные и полезные концепции из функционального программирования.
На лекции поговорим:
Поговорим о мультимедиа‑возможностях, которые нам доступны в вебе: как создавать графические эффекты и анимации при помощи CSS, JS, SVG, Canvas и WebGL, что эффективнее использовать в разных ситуациях. Познакомимся с аудиотегом и Web Audio API для работы со звуком. Рассмотрим API браузера для синтеза и распознавания речи. Поговорим о способах применения видеотега для отображения роликов. Разберём понятия «стриминг», «кодек» и «контейнер». Узнаем, как Стив Джобс повлиял на индустрию стриминга и как плеер выбирает качество для проигрывания.
Закрываем основные пробелы в базовых знаниях работы с запросами на фронте, а также постараемся разобраться, как взаимодействуют бэкенд и фронтенд. Постараемся на примерах понять, что происходит, когда мы используем обычный fetch во время решения наших задач.
В прошлом году мы обсуждали, почему JavaScript может быть перспективным выбором для машинного обучения. За прошедший год появилось множество новых классных моделей на JS, а также примеров реального использования ML в Web. В этом докладе мы рассмотрим, как всё это может быть применено на практике — от экспериментальных проектов прямо в браузере до серьёзных историй масштабирования и деплоя больших языковых моделей (LLM) с инференсом на JS в таких компаниях, как Яндекс.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир. А еще посмотрим, как масштабировать и улучшать сервис итеративно, добавим в него вишенку ML на радость пользователям.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Погрузимся в основы клиент‑серверного взаимодействия и разберём строение HTTP‑протокола — от заголовков до методов. Обсудим лучшие практики и типичные ошибки при разработке API, а затем сравним два ключевых подхода: REST и RPC. При удаче успеем затронуть стратегии документирования (API‑First vs Code‑First) и познакомиться с полезными спецификациями, такими как JSON API и официальные RFC.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей базы данных для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
Разберём ключевые методики обеспечения чистоты и поддержки кода: код‑ревью, статический анализ, автоматизированное тестирование и метрики качества. Познакомимся с популярными инструментами и рассмотрим реальные примеры обнаружения и устранения «технического долга». Участники уйдут с готовым набором практик для повышения надёжности и читаемости своих проектов.
На лекции вы узнаете, что такое нагрузочное тестирование и как применять его на практике. Вы получите представление о RPS, квантилях времени ответа и точке разладки. Мы разберем различные профили нагрузки, рассмотрим, как их комбинировать и использовать. В формате живого демо вы увидите, как проводить нагрузочное тестирование с помощью Apache Benchmark и Яндекс.Танк, научитесь анализировать результаты и обращать внимание на ключевые нюансы. Кроме того, вы узнаете, как интегрировать регулярное нагрузочное тестирование в процесс разработки и проводить тестирование безопасно для окружающих сервисов.
Написание кода — лишь начало: мы покажем, как автоматически собирать, тестировать и упаковывать приложение для простого развёртывания. Рассмотрим инструменты для CI/CD, стратегии безопасной доставки изменений без даунтайма и методы контейнеризации или артефакт-менеджмента. Вы научитесь строить пайплайны, которые сами проверяют, собирают и деплоят ваши сервисы в продакшен.
Лекция посвящена принципам разработки безопасных онлайн-сервисов, демонстрируя уязвимости и методы их предотвращения на конкретном примере. Рассматриваются риски, связанные с хранением данных, управлением секретами и использованием сторонних библиотек, а также типичные уязвимости — SQL-инъекции и отсутствие проверки прав доступа.
Лекция про основные этапы найма в крупную IT-компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
В лекции вы узнаете, как строить по-настоящему надёжный бэкенд: от принципов распределённых систем и компромиссов CAP-теоремы до ключевых метрик SLA/SLO и практических паттернов (Circuit Breaker, Bulkhead, Retry). На практике спроектируем сервис, настроим мониторинг и алёртинг, оттестируем отказоустойчивость и определим, когда масштабировать.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир. А еще посмотрим, как масштабировать и улучшать сервис итеративно, добавим в него вишенку ML на радость пользователям.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Погрузимся в основы клиент‑серверного взаимодействия и разберём строение HTTP‑протокола — от заголовков до методов. Обсудим лучшие практики и типичные ошибки при разработке API, а затем сравним два ключевых подхода: REST и RPC. При удаче успеем затронуть стратегии документирования (API‑First vs Code‑First) и познакомиться с полезными спецификациями, такими как JSON API и официальные RFC.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей базы данных для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
Разберём ключевые методики обеспечения чистоты и поддержки кода: код‑ревью, статический анализ, автоматизированное тестирование и метрики качества. Познакомимся с популярными инструментами и рассмотрим реальные примеры обнаружения и устранения «технического долга». Участники уйдут с готовым набором практик для повышения надёжности и читаемости своих проектов.
На лекции вы узнаете, что такое нагрузочное тестирование и как применять его на практике. Вы получите представление о RPS, квантилях времени ответа и точке разладки. Мы разберем различные профили нагрузки, рассмотрим, как их комбинировать и использовать. В формате живого демо вы увидите, как проводить нагрузочное тестирование с помощью Apache Benchmark и Яндекс.Танк, научитесь анализировать результаты и обращать внимание на ключевые нюансы. Кроме того, вы узнаете, как интегрировать регулярное нагрузочное тестирование в процесс разработки и проводить тестирование безопасно для окружающих сервисов.
Написание кода — лишь начало: мы покажем, как автоматически собирать, тестировать и упаковывать приложение для простого развёртывания. Рассмотрим инструменты для CI/CD, стратегии безопасной доставки изменений без даунтайма и методы контейнеризации или артефакт-менеджмента. Вы научитесь строить пайплайны, которые сами проверяют, собирают и деплоят ваши сервисы в продакшен.
Лекция посвящена принципам разработки безопасных онлайн-сервисов, демонстрируя уязвимости и методы их предотвращения на конкретном примере. Рассматриваются риски, связанные с хранением данных, управлением секретами и использованием сторонних библиотек, а также типичные уязвимости — SQL-инъекции и отсутствие проверки прав доступа.
Лекция про основные этапы найма в крупную IT-компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
В лекции вы узнаете, как строить по-настоящему надёжный бэкенд: от принципов распределённых систем и компромиссов CAP-теоремы до ключевых метрик SLA/SLO и практических паттернов (Circuit Breaker, Bulkhead, Retry). На практике спроектируем сервис, настроим мониторинг и алёртинг, оттестируем отказоустойчивость и определим, когда масштабировать.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир. А еще посмотрим, как масштабировать и улучшать сервис итеративно, добавим в него вишенку ML на радость пользователям.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Погрузимся в основы клиент‑серверного взаимодействия и разберём строение HTTP‑протокола — от заголовков до методов. Обсудим лучшие практики и типичные ошибки при разработке API, а затем сравним два ключевых подхода: REST и RPC. При удаче успеем затронуть стратегии документирования (API‑First vs Code‑First) и познакомиться с полезными спецификациями, такими как JSON API и официальные RFC.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей базы данных для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
Разберём ключевые методики обеспечения чистоты и поддержки кода: код‑ревью, статический анализ, автоматизированное тестирование и метрики качества. Познакомимся с популярными инструментами и рассмотрим реальные примеры обнаружения и устранения «технического долга». Участники уйдут с готовым набором практик для повышения надёжности и читаемости своих проектов.
На лекции вы узнаете, что такое нагрузочное тестирование и как применять его на практике. Вы получите представление о RPS, квантилях времени ответа и точке разладки. Мы разберем различные профили нагрузки, рассмотрим, как их комбинировать и использовать. В формате живого демо вы увидите, как проводить нагрузочное тестирование с помощью Apache Benchmark и Яндекс.Танк, научитесь анализировать результаты и обращать внимание на ключевые нюансы. Кроме того, вы узнаете, как интегрировать регулярное нагрузочное тестирование в процесс разработки и проводить тестирование безопасно для окружающих сервисов.
Написание кода — лишь начало: мы покажем, как автоматически собирать, тестировать и упаковывать приложение для простого развёртывания. Рассмотрим инструменты для CI/CD, стратегии безопасной доставки изменений без даунтайма и методы контейнеризации или артефакт-менеджмента. Вы научитесь строить пайплайны, которые сами проверяют, собирают и деплоят ваши сервисы в продакшен.
Лекция посвящена принципам разработки безопасных онлайн-сервисов, демонстрируя уязвимости и методы их предотвращения на конкретном примере. Рассматриваются риски, связанные с хранением данных, управлением секретами и использованием сторонних библиотек, а также типичные уязвимости — SQL-инъекции и отсутствие проверки прав доступа.
Лекция про основные этапы найма в крупную IT-компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
В лекции вы узнаете, как строить по-настоящему надёжный бэкенд: от принципов распределённых систем и компромиссов CAP-теоремы до ключевых метрик SLA/SLO и практических паттернов (Circuit Breaker, Bulkhead, Retry). На практике спроектируем сервис, настроим мониторинг и алёртинг, оттестируем отказоустойчивость и определим, когда масштабировать.
Что сейчас в тренде в мобильной разработке? Поговорим про KMP, BDUI, DivKit и, конечно, Flutter. Как развиваются технологии, какие из них используются в проектах Яндекса и почему.
Вы познакомитесь с нетривиальными особенностями языка Kotlin и его связями с JVM. Мы разберём особенности системы: типы, generic’и. Посмотрим на устройство коллекций, обсудим сборщик мусора и Java Memory Model.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Лекция раскрывает философию Android Compose — от абстрактных принципов декларативного программирования до практической реализации интерфейсов. Мы исследуем, как устроена архитектура Compose, как управлять состоянием и работать с компонентами, а также разберём реальные примеры проектирования UI. Идеальный формат для тех, кто хочет не просто использовать Compose, а понять его суть.
Поговорим об основах многопоточности: доступ к разделяемому ресурсу, базовая блокировка потоков, мониторы, проблема видимости значений переменных из разных потоков. Затронем пакет java.util.concurrent и опишем общую картину работы процесса и потоков приложения под Android.
Познакомимся с современным способом написания многопоточного кода в приложениях для ОС Android — KotlinX Coroutines. Обманчиво простая, невероятно интересная технология. Рассмотрим её в деталях, начиная с простых основ и заканчивая интеграцией в современное Android-приложение с использованием Compose.
Как из калькулятора сделать Jira, не стреляя себе в ногу. Повесть о систем-дизайн в Android.
На лекции будем разбираться, что за зверь этот Dependency Injection и почему без него ваш код — это боль и страдание. А затем закрепим знания на практических примерах, показав реальное применение DI с помощью популярных инструментов, чтобы вы сразу могли применить это в своих проектах.
Разберём защищённое хранение данных, работу с Android Keystore и поговорим об облачных базах данных на примере Cloud Firestore.
Обсудим, что такое BDUI, зачем он нужен, покажем классические реализации и, конечно, поговорим про DivKit — open-source фреймворк Яндекса, и его отличия от других Backend-Driven UI решений.
Рассмотрим основные инструменты разработки, отладки и профилирования, которые важно знать каждому Android-разработчику, чтобыбыть эффективным и продуктивным. Обсудим возможности и полезные горячие клавиши Android Studio, а также познакомимся с профайлерами, дебаггером и инспекторами студии. Разберёмся в функциях Developer Options и узнаем о новинках в инструментах разработки, появившихся за последний год.
Рассмотрим важность тестирования мобильных приложений и обсудим лучшие практики.
Изучим подходы к автоматическому тестированию:
Углубимся в решение сложных задач:
Узнаете, как выбрать оптимальные инструменты и стратегии для тестирования мобильного приложения.
Лекция о текущем состоянии AI-индустрии и актуальных инструментах и подходах использования AI в разработке ПО.
Что сейчас в тренде в мобильной разработке? Поговорим про KMP, BDUI, DivKit и, конечно, Flutter. Как развиваются технологии, какие из них используются в проектах Яндекса и почему.
Погружаемся в устройство языка Swift: от наиболее часто встречаемых в реальных проектах и на интервью концепциях языка до только набирающих популярность конструкциях и механизмах. Узнаем, как с помощью макросов можно заменить кодогенерацию, реализовать собственный DSL с помощью Result Builders, добавить поведение в существующий код с помощью Property Wrappers и о многом другом.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Продолжим погружение в концепции языка, которые используются на практике постоянно. Разберёмся и в относительно новых конструкциях языка. Посмотрим не только, как пользоваться Property Wrappers, Result Builders и макросами, но и создадим свои.
На лекции более углублённо расскажем про SwiftUI: жизненный цикл View, их идентичность и типизацию. Также поговорим про создание сложных интерфейсов и анимаций на SwiftUI и как улучшить их производительность. Лекция будет полезна всем, кто уже немного знаком с этим фреймворком и хотел бы лучше понимать, как он работает, чтобы более уверенно использовать его в решении своих задач.
Разберёмся, как работать с UIKit: от иерархии и жизненного цикла до вью-контроллеров и анимаций. Поговорим про layout, жесты, рендеринг, кастомные переходы и контейнеры. Обсудим лучшие практики из реальных проектов и как сочетать UIKit со SwiftUI.
Рассмотрим понятие архитектуры, для чего нужна и как правильно её строить. Начнём с базовых принципов, необходимых для любой архитектуры приложений под iOS. Рассмотрим две основные архитектуры — классическую, пригодную для приложений на базе UIKit, и новую, применимую для приложений на SwiftUI.
Лекция посвящена Swift Concurrency — современному подходу к организации кода для построения отзывчивых приложений на Swift. Обсудим понятие concurrency, подробно разберём особенности работы со Swift Concurrency, обзорно затронем некоторые особенности архитектур современных мобильных процессоров.
Поговорим о том, какие задачи можно решать с помощью локального хранения данных на устройстве, а также о том, какие технологии нам могут в этом помочь и как выбрать среди них ту, которая лучше всего справится с вашей задачей.
Узнаем, в каком состоянии сейчас находится SwiftData. Создадим простую модель, попробуем показать ее на экране, модифицировать данные. Обсудим миграцию и работу с разных потоков.
Лекция о текущем состоянии AI-индустрии и актуальных инструментах и подходах использования AI в разработке ПО.
Поговорим об автотестах, зачем и как их писать. Познакомимся с unit- и UI-тестами, подходами к их написанию. Рассмотрим лучшие практики написания тестов.
Что сейчас в тренде в мобильной разработке? Поговорим про KMP, BDUI, DivKit и, конечно, Flutter. Как развиваются технологии, какие из них используются в проектах Яндекса и почему.
Вы познакомитесь с моделью параллельного программирования в Dart, узнаете, что такое изоляты и как они устроены в Dart VM. Мы рассмотрим способы создания изолятов и общения с ними, поговорим о том, что такое группы изолятов. Также поговорим про изоляты и FFI, изоляты и PlatformChannels в Flutter, рассмотрим наиболее распространенные ошибки при их использовании и обсудим производительность при использовании изолятов.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Узнаем, что подразумевается под «архитектурой», разделение на слои, CLEAN; какие есть подходы к работе с зависимостями (service locator, DI) и почему об этом важно думать; паттерны проектирования (фасад, декоратор, наблюдатель, etc.).
Посмотрим, почему важно задумываться об архитектуре на самых ранних этапах, на каких основах строится архитектура, а также как решать архитектурные проблемы и задачи на Flutter.
На лекции узнаем, что такое Router и как с ним работать. Разберём, как настроить диплинки для приложения. А также посмотрим на особенности обработки ссылок в Flutter WEB.
Поговорим про пакеты, их отличие от плагинов, версионирование, зависимости, создание своего репозитория пакетов и разберём, для чего будет полезен Flutter Version Manager.
В этой лекции вы познакомитесь с подходами к надёжному хранению данных во Flutter: от простых настроек с Shared Preferences до сложных баз данных с Drift и ObjectBox. На примере приложения MoodTracker++ вы увидите, как выбрать подходящий инструмент и эффективно применять теорию на практике.
Разберёмся с CI/CD и настроим пайплайн для GitHub Actions. Проверим, что нужно знать, чтобы довести приложение до релиза в сторы. Узнаем, как наш код превращается в приложение: начиная с вызова flutter build и до запуска конечного артефакта.
Добро пожаловать на лекцию о статическом анализе и линтинге во Flutter! Мы погрузимся в мир анализатора и линтера в Dart, чтобы вы могли лучше понимать и эффективно использовать их в своих проектах. Разберём, как работает статический анализ, какие инструменты используются и как настроить правила линтинга. Вы узнаете, как писать собственные линт-правила и увидите это на практических примерах. Приготовьтесь сделать ваш код чище и профессиональнее!
Познакомитесь с основными инструментами Flutter-разработчика/ Научитесь решать различные проблемы мобильных приложений: проверять вёрстку и состояние приложения, диагностировать проблемы с производительностью, анализировать размер приложения, следить за потребляемой памятью и многие другие возможные задачи.
Разберём, как, зачем и когда может понадобиться писать свой плагин или лоадер для webpack. Всегда ли нужен именно webpack, или есть альтернативы.
Узнаем, как собрать Flutter под Web и Desktop. Какие есть особенности при работе с этими платформами и какие готовые решения нам предоставляет фреймворк для разработки под них. Посмотрим на примеры приложений и планы развития.
Разберём навыки, которые будут полезны кроссплатформенному разработчику из iOS и Android. Будет проведён обзор двух платформ, инструментов и лучших практик в каждой из них, чтобы расширить знания о мобильной разработке в целом.
Лекция о текущем состоянии AI-индустрии и актуальных инструментах и подходах использования AI в разработке ПО.
В этой лекции мы научимся писать Unit- и UI-тесты. Узнаем, что такое golden тесты. Поговорим про интеграционные тесты, а также узнаем, что такое code coverage и научимся его собирать.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Поговорим про развездочный анализ данных средствами распределенных вычислений.
Информация дополняется
Самое сложное в нашей работе — это самоопределение. Поэтому поговорим о том, чем занимается DevOps в Яндексе, кем он является, а кем — нет. А ещё узнаем, что общего между DevOps-инженером и швейцарским ножом.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
На лекции рассмотрим хранение данных в операционной системе Linux. Углубимся в работу твердотельных накопителей, а также рассмотрим дисковые проблемы, которые возникают в повседневной работе.
Посмотрим на устройство современного сервера и на процесс его запуска. Узнаем, как работает и зачем нужен Secure Boot, а также что такое UEFI, BMC, TPM и некоторые другие аббревиатуры.
Освоим азы работы с командной строкой, траблшутинг, дебаг, перформанс-тюнинг и быструю аналитику с помощью базовых инструментов Linux.
Рассмотрим, как работают планировщик процессов и подсистема виртуальной памяти. Проговорим, для чего нужны прерывания. И узнаем, что такое cgroup и namespace.
Посмотрим на историю протокола IP и его устройство. Выйдем за пределы домашнего роутера, чтобы понять, как сетевые пакеты попадают в Яндекс. Разберемся, как адресовать сотни тысяч хостов и подумаем над тем, как в сети защититься от непрошеных гостей.
Обсудим, как с помощью eBPF увидеть путь пакетов внутри ядра и добиться в их обработке большей производительности и гибкости. Эти знания пригодятся и в сетевом стеке, и для общего траблшутинга Linux.
Разберём, что происходит с данными, когда они путешествуют от одного компьютера к другому. Изучим технологии, которые для этого необходимы. Научимся определять и решать самые распространённые проблемы в сетях.
Поговорим о том какие проблемы стояли перед инженерами и дизайнерами сетей в прошлом и сейчас. Какие подходы существуют и как они реализованы на практике. Познакомися с базовыми возможностями алгоритмов динамической маршрутизации OSPF и BGP.
Поговорим о масштабировании сервисов: лимитирующие факторы, проблемы и решения, технологии балансировки нагрузки, применимость подходов и малоизвестная магия.
Перед написанием кода необходимо продумать архитектуру всего сервиса или его отдельных частей. На лекции научимся строить масштабируемую, отказоустойчивую систему, ошибки которой будут подсвечиваться мониторингом с разных сторон. А ещё поговорим о разнице между архитектурой сервиса и системным дизайном.
Практически любая сфера деятельности связана с созданием ПО. Инженеры каждый день сталкиваются с релизным циклом, решением задач разработки и тестирования. На лекции мы пройдёмся по основным этапам жизни ПО и посмотрим, как они выглядят в проектах Яндекса.
СУБД в современных сервисах отвечают за хранение состояния. И это сложно: как писать сами СУБД, так и эксплуатировать их правильным образом. На лекции пройдёмся по одной OLTP базе «сверху вниз»: от принципов устройства до конкретных проблем. Подебажим некоторые из этих проблем на примерах.
В предыдущей серии у нас с вами была OLTP СУБД, на этой лекции меняем парадигму. Будем смотреть на OLAP СУБД. Подход тот же: начинаем с принципов, идём к конкретным проблемам и дебажим их на примерах.
Компьютеры, соединённые по сети, с необходимостью согласовывать друг с другом состояние. Что тут может пойти не так? Да что угодно.На этой лекции часы будут идти в обратную сторону, а биты в памяти переворачиваться. Но мы их обязательно всех найдём и починим.
Разберём системы управления кластерами и конфигурациями и посмотрим на самые популярные вживую. А ещё — ответим на вопрос: «Зачем это всё вообще нужно?»
Программирование — неотъемлемая часть работы SRE, особенно в Яндексе. На лекции мы обсудим, зачем и когда SRE пишут код, а главное, вместе разберём рабочие задачи, в которых пригодится навык программирования.
Знакомая ситуация: «Я что-то нажал, и всё исчезло». Но иногда всё ломается, даже если никто ничего не нажимал. На лекции обсудим, как эффективно действовать в сложной ситуации и как извлекать пользу из падения сервиса.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Кейсы и баги — то, с чем тестировщик работает каждый день. А чтобы то, что вы заводите, было понятно, читаемо и работало, есть правила, о которых узнаем на воркшопе.
Без логов мы слепы в поиске проблем, поэтому каждый QA должен уметь работать с логами. А как, узнаете на этой лекции.
Автоматизация используется на всех проектах Яндекса, но почему без неё никак? Как организовать автотесты так, чтобы они решали свои задачи, а не были постоянной болью, которую нужно лечить?
API — это то, что зачастую автоматизируется в первую очередь. Этих тестов достаточно много, и для их написания существуют правила и лайфхаки, о которых вы узнаете на лекции.
В лекции поговорим о нюансах скриншотного тестирования и практическом применении на примере Testplane.
Узнаете, как автоматизировать тестирование под Android с помощью Kaspresso и Kotlin. Напишете свой первый автотест.
Узнаете, как автоматизировать тестирование под iOS с помощью Swift. Напишете свой первый автотест.
Напишите, если остались вопросы: seasonschools@
yandex-team.ru