Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Вы узнаете, какие существуют серверные рантаймы, и познакомитесь подробно с Node.js. Обсудим историю и архитектуру платформы, границы применимости и то, как мы используем Node.js в Яндексе.
Разберемся, как работает асинхронность в JavaScript, посмотрим на цикл событий, выберемся из ада обратных вызовов, изучим промисы и async/await.
Хорошо писать код одному. Но когда над одной кодовой базой работает десяток разработчиков, каждый должен иметь на руках актуальную версию кода и не мешать остальным своими изменениями. На помощь приходят системы контроля версий, одна из которых — Git.
Мы изучим базовые команды, которых будет достаточно для повседневной работы программиста. Посмотрим на рабочие процессы в больших командах.
Расскажем, как организовать удобный процесс разработки приложений в популярных IDE (WebStorm, VS Code) и в терминале. А также о браузерных инструментах разработчика (Chrome DevTools): что они умеют и как ими пользоваться.
Рассмотрим TypeScript с точки зрения теории множеств, разберем контроль выполнения и дженерики.
Рассмотрим TypeScript с точки зрения теории множеств, разберем контроль выполнения и дженерики.
В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.
В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.
В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.
Поговорим об автотестах и о том, почему необходимо их писать. Познакомимся с видами тестирования — модульным и интеграционным. В части о модульных тестах подробно поговорим о том, как изолировать внешние зависимости, как тестировать взаимодействие с другими модулями. Попробуем написать модульные тесты для приложения на React. Рассмотрим наиболее эффективные приемы, которые помогут писать полезные тесты и легко их поддерживать. В части, посвященной интеграционному тестированию, поговорим о том, что это такое и чем оно отличается от модульного, в каких случаях нужно писать модульные тесты, а в каких — интеграционные. Далее поговорим об автоматизации интеграционных сценариев. Настроим инфраструктуру для автоматизации интеграционных тестов в браузере и рассмотрим инструмент, который используется в Яндексе для написания автоматических интеграционных тестов.
Посмотрим, как разные люди воспринимают виртуальный мир, и объясним, зачем доступность нужна и пользователям, и разработчикам. Сформулируем простые шаги для улучшения интерфейса и вспомним основы HTML. Расскажем, как тестировать доступность руками и готовыми инструментами.
Хотя Python обычно выбирают как главный язык программирования для машинного обучения, стоит учесть и другие варианты. В частности, использование JavaScript для машинного обучения может расширить наши горизонты и предложить инновационные решения в области применения ML. Вместе мы рассмотрим множество крутых вариантов применения ML на JS: таких как распознавание речи, генерация картинок, перевод текста, собственная Алиса в браузере.
Обсудим, что такое производительность веб-страниц и от чего она зависит. Также поговорим про основные показатели и инструменты для их мониторинга, рассмотрим основные подходы к оптимизации скорости загрузки веб-приложений.
На лекции расскажут о том, когда и как появился процесс сборки веб-приложений. Вы узнаете об архитектурном устройстве webpack: как и зачем в нём появились те или иные абстракции и как эти абстракции увидеть вживую. Обсудим стандартные техники: chunk splitting, innerGraph tree shaking, dynamic imports, minimizers, deadcode ellimination, module concatenation.
Разберем, как, зачем и когда может понадобиться писать свой плагин или лоадер для webpack. Всегда ли нужен именно webpack, или есть альтернативы.
Лекторы объяснят, почему к сборке стоит относиться как к продуктовой фиче и за какими метриками стоит следить, чтобы вам и вашим пользователям было комфортно.
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шел эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое vim и как из него выйти.
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шел эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое vim и как из него выйти.
Разберемся в неочевидных возможностях JavaScript.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Разберем самые важные и полезные концепции из функционального программирования.
На этой лекции мы поговорим о мультимедиа-возможностях, которые нам доступны в вебе: как создавать графические эффекты и анимации при помощи CSS, JS, SVG, Canvas и WebGL, что эффективнее использовать в разных ситуациях. Познакомимся с аудиотегом и Web Audio API для работы со звуком. Рассмотрим API браузера для синтеза и распознавания речи. Поговорим о способах применения видеотега для отображения роликов. Разберем понятия «стриминг», «кодек» и «контейнер». Узнаем, как Стив Джобс повлиял на индустрию стриминга и как плеер выбирает качество для проигрывания.
На лекции поговорим:
— о том, как подготавливать проекты к международным запускам;
— как не потерять в качестве разработки;
— как сделать так, чтобы команда разработки не теряла фокусировку на продуктовых задачах.
Познакомимся с базовыми понятиями: локаль, интернационализация, локализация, RTL и пр.
Рассмотрим инструменты адаптации проектов под культурные особенности конкретной страны, как доставить переводы пользователю и как в целом понять, какой интерфейс ожидает увидеть пользователь в каждом уголке мира.
Поговорим про миграцию уже существующих проектов и на практике увидим особенности культурного контекста в разных регионах.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.
На лекции разберём принципы организации кода, чтобы писать лёгкий для чтения, расширения и изменения бэкенд. Также рассмотрим несколько паттернов проектирования и случаи, при которых их лучше применять.
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
Рассмотрим протоколы простых и расширенных запросов, соединения в PostgreSQL и их ограничения, то, как устроены пулы соединений и как они позволяют обойти ограничения соединений. Обсудим, до какого порога можно наращивать количество соединений с PostgreSQL и какие проблемы при этом возникают. Как устроены и какую задачу решают прокси-пулеры соединений (PgBouncer, Odyssey и др.). Также рассмотрим масштабирование PostgreSQL, синхронную и асинхронную репликацию. Как разрабатывать отказоустойчивые приложения, как реагировать на переключение мастера и реплик на примере абстракции менеджера пулов.
Рассмотрим многопоточность, проблемы и их решения при написании кода, примитивы синхронизации, а также немного заглянем в корутинный движок и посмотрим на его реализацию.
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
На лекции поговорим о том, зачем нужны тесты и как их писать. Рассмотрим способы улучшения качества кода и избавления его от багов с помощью различных инструментов: от линтеров до E2E-тестов. Вы узнаете или вспомните, как использовать flake8, mypy, pytest, fixture, coverage, mock, factory boy, faker и многое другое. В конце посмотрим на примере, как добавить фичу в готовый API и отловить баги с помощью тестов.
Познакомимся с асинхронным программированием на Python. Обсудим, в чём проблема синхронных приложений и как ее решить. Вы узнаете про преимущества и недостатки процессов и потоков в веб-серверах, а также о том, что не так с асинхронными приложениями. Поговорим, какие решения выбрать, — синхронные или асинхронные.
Инженеры работают с релизным циклом, создают и тестируют ПО. На лекции мы поговорим про основные этапы жизни ПО и посмотрим, как они выглядят в проектах Яндекса.
Мы рассмотрим наиболее распространенные проблемы безопасности при запуске нового сервиса. Предложим способы их решения.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
На лекции поговорим о том, как улучшить «наблюдаемость» своего бэкенда при помощи метрик, логирования и трейсинга. А также как добиться бесперебойной работы сервиса при помощи мониторинга и дежурств.
Рассмотрим способы отладки кода, поиска утечек памяти и вычислительных ресурсов, а также вы получите рекомендации по покрытию логами. Бонус: узнаете про низкоуровневое взаимодействие приложения с операционной системой.
Разберем паттерны построения отказоустойчивой системы и примеры ее реализации в реальной жизни, которые позволяют распределенным системам переживать самые критические моменты.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.
В этой лекции поговорим об архитектуре кода, рассмотрим, какие проблемы и трудности возникают при написании приложения, какие есть методики и подходы к их решению, рассмотрим паттерны проектирования, взглянем на базовые аспекты Spring Framework и покажем некоторые интересные способы его применения.
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
Разбираемся в работе с базой данных из Java-приложений. Поговорим о протоколах запросов в PostgreSQL. Рассмотрим соединения в PostgreSQL и ограничения, связанные с ними. Узнаем, как прокси-пулеры соединений, такие как PgBouncer и Odyssey, помогают решить задачи управления соединениями. Посмотрим, как масштабировать PostgreSQL с помощью синхронной и асинхронной репликации для распределения нагрузки и обеспечения отказоустойчивости. Обсудим ORM и миграции баз данных.
Рассмотрим многопоточность, проблемы и способы решения при написании кода, примитивы синхронизации. Заглянем в стандартную библиотеку, чтобы понять, как решать стандартные задачи многопоточного программирования.
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
На лекции мы разберём, как обеспечить качество ПО с помощью различных видов тестов.
Мы подробно рассмотрим JUnit 5, а также не забудем об интеграционном и end-to-end-тестировании. Узнаем, что такое ящики и пирамиды в тестировании, а главное — как получать удовольствие от процесса и делать его эффективным.
Поговорим про асинхронность, параллелизм и конкурентность. Обсудим разницу между понятиями, разберемся, для чего используются эти принципы и как они реализованы в Java.
Инженеры работают с релизным циклом, создают и тестируют ПО. На лекции мы поговорим про основные этапы жизни ПО и посмотрим, как они выглядят в проектах Яндекса.
Мы рассмотрим наиболее распространенные проблемы безопасности при запуске нового сервиса. Предложим способы их решения.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
На лекции поговорим о том, как улучшить «наблюдаемость» своего бэкенда при помощи метрик, логирования и трейсинга. А также как добиться бесперебойной работы сервиса при помощи мониторинга и дежурств.
Идеальных сервисов не бывает, и никто не застрахован от ошибок. Мы поговорим о методах, которые позволяют найти эти ошибки. Вы узнаете, как работать с логами приложения, диагностической информацией и удаленной отладкой. Сможете применить полученные навыки на практике.
Разберем паттерны построения отказоустойчивой системы и примеры ее реализации в реальной жизни, которые позволяют распределенным системам переживать самые критические моменты.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.
Поговорим о парадигмах программирования. Обсудим набор правил SOLID, а также познакомимся с идиомами C++ (RAII, Pimpl, CRTP).
В первой части рассказа мы разберёмся, какие проблемы возникают в высоконагруженных сервисах, как их решать и как при этом не усложнять написание повседневного кода. Во второй части погрузимся в использование одного из таких фреймворков — 🐙 userver. Разберёмся, как писать серверные приложения на HTTP и gRPC, что такое динамические конфиги и компонентная система, и рассмотрим написание тестов.
На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.
На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.
На лекции мы разберём классические подходы к построению микросервисов в целом, посмотрим на средства, которые предоставляет нам userver для этого. Во второй части лекции поговорим об устойчивости системы к нагрузке и возможностях её ограничения вообще и в userver в частности.
На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.
Вы вкратце познакомитесь с тем, какие БД поддерживает фреймворк userver, более подробно — как работать с PostgreSQL из userver, а также как жить с изменчивой схемой данных.
Обсудим подходы к разработке многопоточных программ. Обозначим проблемы, которые возникают на этом пути, способы их избежания, а также методы обнаружения. Материал будем демонстрировать на примерах с использованием стандартной библиотеки, библиотеки boost и фреймворка userver.
На лекции мы поговорим о том, зачем нужно проводить нагрузочное тестирование и какие проблемы бывают у сервиса в реальной жизни, если пренебрегать вопросами нагрузочного тестирования.
Также отдельное внимание мы уделим теории. Поговорим о том, какие виды тестов бывают, как правильно выбрать профиль нагрузки и анализировать результаты теста. Рассмотрим различные критерии остановки теста.
Вы узнаете о том, что такое тестирование, о его разновидностях, о том, как и зачем писать тесты и как делать это эффективно.
Разберем проблемы производительности синхронных сервисов и способы их решения. Рассмотрим системные интерфейсы для создания асинхронных приложений в Linux. Изучим принципы построения высокопроизводительных микросервисов на основе этих интерфейсов. Для этого углубимся в теорию корутин на примере их реализации в С++.
Инженеры работают с релизным циклом, создают и тестируют ПО. На лекции мы поговорим про основные этапы жизни ПО и посмотрим, как они выглядят в проектах Яндекса.
Мы рассмотрим наиболее распространенные проблемы безопасности при запуске нового сервиса. Предложим способы их решения.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
На лекции поговорим о том, как улучшить «наблюдаемость» своего бэкенда при помощи метрик, логирования и трейсинга. А также как добиться бесперебойной работы сервиса при помощи мониторинга и дежурств.
Освоим магию GDB и пройдем нелегкий путь от отладки в любимой IDE до расследования проблемы в «боевой» системе. Рассмотрим пример профилирования неоптимального кода и немного поговорим про логирование.
Разберем паттерны построения отказоустойчивой системы и примеры ее реализации в реальной жизни, которые позволяют распределенным системам переживать самые критические моменты.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Лекция будет посвящена основам мобильной разработки для Android. Познакомимся с основными инструментами и особенностями Android и Android SDK. Разберёмся, как использовать Android Studio. Поговорим об Activity, Jetpack Compose, устройстве .apk и о разных полезных фишках.
Лекция об интерфейсной части разработки мобильного Android-приложения — View. Поговорим об актуальности и истории View, основных свойствах и методах, работе с View в коде, основных наследниках. Разберём процесс отрисовки View на экране. Также затронем ViewGroup. Посмотрим на основных наследников, детальнее погрузимся в ConstraintLayout. И в конце познакомимся со списками и тем, как работать с RecyclerView и его компонентами.
Jetpack Compose — современный инструмент для создания пользовательских интерфейсов для Android. На этой лекции мы рассмотрим, как Compose упрощает разработку UI, в чём его преимущества по сравнению с традиционным подходом, использующим View, и изучим основные концепции, которые необходимы, чтобы вы смогли применять Compose на практике при разработке приложений.
Вы познакомитесь с нетривиальными особенностями языка Kotlin и его связями с JVM. Мы разберём особенности системы типы, generic’и, посмотрим на устройство коллекций, обсудим сборщик мусора и Java Memory Model.
Мы поговорим об основах многопоточности: доступ к разделяемому ресурсу, базовая блокировка потоков, мониторы, проблема видимости значений переменных из разных потоков. Затронем пакет java.util.concurrent и опишем общую картину работы процесса и потоков приложения под Android.
Мы расскажем, что такое корутины, для чего они нужны и чем будут полезны. Изучим их внутреннюю реализацию, а также обсудим специфику их работы в Android. Также рассмотрим библиотеку корутин: билдеры, работа с контекстом, диспатчеры, скоуп функции и многое другое. Изучим механизм отмены корутин, а также обработку ошибок. И в заключение детально рассмотрим Flow, специфику его работы и примеры использования.
В этой лекции мы рассмотрим аспекты сетевого взаимодействия в Android с практической точки зрения. Познакомимся с современными вызовами, тенденциями, технологиями и стандартами. Вот некоторые из них: HTTP/3, QUIC, ProtoBuf, gRPC, Ktor, Cronet. Конечно, не обойдётся без классического набора: TCP, JSON, Retrofit, OkHttp. Кроме этого, уделим время различным подходам к построению архитектуры API: REST, RPC, GraphQL. А также поговорим о работе с картинками, кешированием, безопасностью и производительностью.
Все темы ориентированы на практику, но не упускают важных технических составляющих. Приятного просмотра!
Поговорим об архитектуре: для чего она нужна, какой должна быть и как лучше этого достичь. Разберем разные принципы и шаблоны, которые помогут сделать архитектуру лучше, посмотрим на примеры их применения.
В лекции про DI мы разберем суть Dependency Injection: узнаем об истории зарождения подхода, о его связи с архитектурой, исследуем все «за» и «против». Сначала поговорим о том что общего у всех фреймворков, а затем рассмотрим конкретные реализации: Dagger 2, Hilt, Yatagan. Проведем их сравнение.
Разберем все возможности, которые предоставляет нам Android для хранения и обработки данных, начиная от простого (настроек и SharedPreferences / DataStore) заканчивая базами данных и сложными связями в Room. Кроме этого поговорим про работу с файлами и про то, как Android хранит файлы приложений и пользователя. И под конец подробно разберем, зачем нужен и как использовать ContentProvider.
Вы познакомитесь с основами системы сборки Gradle, узнаете о жизненном цикле сборки вашего приложения, что такое Gradle Task и Gradle Plugin. Также поговорим о том, как организовать сборку обычного и многомодульного проекта, и вы напишете свой собственный плагин, который можно применить в реальном проекте.
Лекция об улучшении пользовательского опыта и визуальной составляющей в приложениях. Поговорим про то, как делать отзывчивый интерфейс и почему это важно. Покажем какие ещё бывают элементы UI в android и потом перейдём к рассказу про стили, цвета, темы, а также уделим пристальное внимание анимациям.
В лекции расскажем что такое BDUI, зачем он нужен, покажем классические реализации, и конечно поговорим про DivKit и его отличия от других Backend-Driven UI решений.
В этой лекции познакомимся с тем, как незрячие люди пользуются Android приложениям и как сделать приложение доступным для них. Научимся пользоваться TalkBack — приложением для чтения с экрана. Разберемся как Talkback озвучивает экранные элементы, и где мы, как разработчики, можем это сломать. Рассмотрим основные проблемы и их решения, связанные с внедрением доступности.
Поговорим о том, зачем и как лучше тестировать мобильные приложения. Пройдемся по разным подходам, уровням и инструментам для написания автотестов: юнит-тесты с JUnit, интеграционные с Robotlectric, UI-тесты с Espresso. Также разберемся с более сложными вопросами: как бороться с флаки-тестами, мокать объекты и подменять ответы сервера.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Рассмотрим основные концепты KMP, что это и как его хорошо «приготовить». Почему КМP так популярен и какие есть плюсы по сравнению с другими фреймворками. Сделаем демо приложение полностью на КМP и в связке с Compose
Мы расскажем за счет каких механизмов и технологий в Android работает воспроизведение аудио. Рассмотрим работу с AudioManager, аудиофокусом и медиасессией. Обсудим форматы передачи и сжатия звука, управление воспроизведением через android auto. Сравним MediaPlayer и ExoPlayer, а также изучим эффективные способы воспроизведения в фоне и затронем звукозапись
Вы узнаете какие форматы видео обычно используются, чтобы передавать и показывать их по сети Интернет; какие инструменты есть на платформах, чтобы воспроизвести видео. Дальше мы посмотрим на то, как устроены стриминговые сервисы.
На лекции обсудим, что ещё нужно сделать, чтобы опубликовать приложение после того, как оно сделано. Разберемся, как работать со сторами, за чем нужно следить в приложениях после публикации и как строится работа над проектом в дальнейшем. И в конце поговорим про то, что и как стоит изучать дальше и как развиваться.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Легкая и непринужденная лекция о мире разработки для устройств Apple. Мы сделаем краткий обзор профессии мобильного разработчика и истории развития платформы. Познакомим вас с Xcode, базовыми элементами iOS-приложений и ключевыми особенностями языка Swift в режиме Live-Coding.
Закрепим понимание и раскроем на первый взгляд базовые темы такие, как строки, коллекции, протоколы, замыкания и т д. В лекции вы найдете ответы на вопросы: «Почему так сложно получить n-ый символ строки?», «Как реализовать свою коллекцию так, чтобы с ней было также удобно работать как и со стандартными?», «Разве можно реализовать протокол Hashable неверно?»
В лекции продолжим погружение в устройство языка Swift. В первой части лекции погрузимся в наиболее часто встречаемые в реальных проектах и на интервью концепциях языка и разберемся, как эти знания помогут избежать крешей, сделать работу приложения быстрее и избежать дублирования в вашем коде. Во второй части лекции поговорим о менее часто используемых или только набирающих популярность конструкциях и механизмах языка. В ней мы узнаем как можно с помощью макросов заменить кодогенерацию, реализовать собственный DSL с помощью Result Builders, добавить поведение в существующий код с помощью Property Wrappers и о многом другом.
В лекции познакомимся со SwiftUI и разработкой интерфейсов с его помощью. Обсудим, из каких компонентов состоит фреймворк, как их применять и комбинировать. Рассмотрим, как управлять данными, передавать между представлениями, реагировать на их изменения и причем тут MVVM. Посмотрим на методы работы с пользовательским вводом и анимированием изменений на экранах. Вообщем научимся делать первый интерфейс приложения.
На этой лекции более углублённо расскажем про SwiftUI: жизненный цикл View, их идентичность и типизацию. Также поговорим про создание сложных интерфейсов и анимаций на SwiftUI, и как улучшить их производительность. Лекция будет полезна всем, кто уже немного знаком с этим фреймворком и хотел бы лучше понимать как он работает, чтобы более уверенно использовать его в решении своих задач.
На этой лекции мы поговорим о UIKit и его возможностях: о верстке, отрисовке, иерархии UIView и обработке событий в iOS. Лекция будет полезна как студентам, которые начинают изучать платформу iOS и хотят сразу приступить к разработке различных экранов, так и опытным разработчикам, чтобы освежить знания.
В лекции рассмотрим понятие архитектуры, для чего нужна и как правильно ее строить. Начнем с базовых принципов, необходимых для любой архитектуры приложений под iOS. Рассмотрим две основные архитектуры — классическую, пригодную для приложений на базе UIKit и новую, применимую для приложений на SwiftUI.
На этой лекции мы поговорим о слое UIViewController и обо всём, что с ним связано. Лекция будет полезна как студентам, которые начинают изучать платформу iOS и хотят сразу приступить к разработке различных экранов, так и опытным разработчикам, чтобы освежить знания.
В лекции рассмотрим основные инструменты iOS-разработчика. Вначале поговороим о Xcode в качестве среды разработки, какие предоставляет возможности для работы с проектами. Посмотрим на способы подключения библиотек, разберемся в dSYM, crashlog, code signing. В заключении сравним Swift Package Manager и CocoaPods в качестве инструментов управления зависимостями, узнаем о разработке своих пакетов.
Обсудим понятие concurrency, и способы организации кода для построения отзывчивых приложений и эффективной обработки событий. Посмотрим на различные механизмы и абстракции — от базовых примитивов (Thread, Lock,Condition, и. т. д.), до более современных подходов (GCD и Swift Concurrency). Также обзорно затронем понятия lock-free/wait-free, и некоторые особенности архитектур современных мобильных процессоров.
Лекция будет посвящена Swift Concurrency — современному подходу к организации кода для построения отзывчивых приложений на Swift. Также обзорно затронем механизм atomic-переменных и связанные с ним понятия lock-free и wait-free алгоритмов.
В лекции рассмотрим работу с сетью. Обзорно разберем способы взаимодействия клиент-сервер: какие бывают, на что обращать внимание при выборе. И конкретно остановимся на HTTP+JSON как наиболее простом и часто встречающимся. Также обсудим авторизацию и немного коснемся безопасности.
Мы поговорим о том, какие задачи можно решать с помощью локального хранения данных на устройстве, а также о том, какие технологии нам могут в этом помочь и как выбрать среди них ту, которая лучше всего справится с вашей задачей
В этой лекции поговорим об отладке, дебагинге и профилировании. Классифицируем проблемы. Рассмотрим тулинг для диагностирования каждого из класса проблем. Составим ментальную карту, которая поможет выбрать инструмент для быстрой диагностики проблем. Отдельное внимание уделим крешам. Поговорим про то как подстелить себе соломки с помощью проверок в компаил тайме.
Поговорим об автотестах, зачем и как их писать. Познакомимся с юнит- и UI-тестами, подходами к их написанию. Рассмотрим лучшие практики написания тестов.
В лекции мы обсудим концепцию реактивного программирования и её реализацию на примере небольшого проекта. Разберем базовые сущности, операторы, scheduler-ы. Разберемся, что всё же использовать — Combine или RxSwift?
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Рассмотрим основные концепты KMP, что это и как его хорошо «приготовить». Почему КМP так популярен и какие есть плюсы по сравнению с другими фреймворками. Сделаем демо приложение полностью на КМP и в связке с Compose
Вы узнаете какие форматы видео обычно используются, чтобы передавать и показывать их по сети Интернет; какие инструменты есть на платформах, чтобы воспроизвести видео. Дальше мы посмотрим на то, как устроены стриминговые сервисы.
На этой лекции мы поговорим о том, что такое большой продукт и как устроена его разработка в большой компании. Обсудим основные сложности, с которыми сталкиваются разработчики и рассмотрим подходы к их решению на конкретных примерах
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Для чего Flutter используют в Яндекс Драйве и Яндекс Маркете? Как Flutter показал себя в Практикуме? Есть ли будущее у Flutter в Такси?
В рамках дискуссии представители разных сервисов Яндекса расскажут, как и зачем в стеке технологий их продуктов появился Flutter; какие плюсы и минусы фреймворка они выявили за годы работы с ним; поделятся опытом построения больших и маленьких приложений, Flutter-модулей и многого другого с помощью фреймворка; расскажут своё мнение о настоящем и будущем технологии в мире мобильной (и не только) разработки.
Асинхронное программирование в дарте. Future, FutureOr, Stream, async, await, yield, Zone... Как это всё работает? Копаем вглубь, ломаем стереотипы, убираем магию.
В рамках лекции мы рассмотрим, что подразумевается под «архитектурой» приложения; почему важно разделять код проекта на слои, какие они бывают и что такое Clean Architecture. Обзорно пройдёмся по тому, какие существуют подходы к работе с зависимостями (service locator, DI и не только) и почему об этом важно думать. Взглянем на популярные паттерны проектирования и примеры их применения. Лекция не включает в себя специфику фреймворка Flutter и/или описания конкретных библиотек: она в широком смысле рассказывает об архитектуре как явлении и указывает, о чём важно помнить при проектировании приложения
Как сказал классик: «Everything is a widget!» Попробуем понять, насколько верно это утверждение. Посмотрим, какие виджеты бывают и почему дерева виджетов не существует.
На лекции мы обсудим идею state management в целом, ее архитектурные особенности при работе с состоянием. Обсудим популярные подходы к state management и самые популярные реализации. Сравним их по критериям, важным для масштабируемого приложения. Наконец, обсудим, какие решения лучше подходят для конкретных кейсов.
Как виджеты превращаются в пиксели на экране? Почему Flutter еще не переписали на Kotlin? Что круче — Skia или Impeller?
На эти и другие вопросы мы ответим на лекции по внутреннему устройству Flutter, а также увидим, как эти знания могут пригодиться в реальной разработке.
На лекции мы рассмотрим, зачем нужны анимации в приложениях, как они устроены во Flutter. Вы узнаете не только какие виды анимаций можно использовать во Flutter, но и как они устроены внутри.
В рамках лекции мы познакомимся с пакетами, плагинами и другими способами делиться кодом между проектами на Dart. Познаем семантическое версионирование и научимся управлять зависимостями в больших проектах; Для этого погрузимся в инструментарий Dart и Flutter cli. Научимся публиковать свои пакеты для общего и не очень доступа и изучим pub.dev.
В современной разработке на Flutter мы часто встречаемся с задачами, которые прекрасно решаются кодогенерацией. Сериализация, локализация, создание иммутабельных сущностей — для всего этого мы используем пакеты, которые генерируют код. В лекции рассмотрим, как работают и как использовать пакеты для кодогенерации, научимся исследовать код и покажем это на демо. Вместе с этим мы узанем как работает анализатор, и как мы можем писать свои правила для увеличения качества кода нашего проекта.
На лекции мы разберем то, зачем нам нужны диплинки, какие они бывают и как и правильно обрабатывать. Кроме того, будет часть про Flutter Web, где мы научимся настраивать стратегию навигации по URL.
В этой лекции мы научимся:
— писать Unit-тесты;
— писать UI-тесты;
— узнаем что такое golden тесты;
— писать интеграционные тесты.
А также узнаем, что такое code coverage и научимся его собирать.
Пуши и уведомления это одно и то же? Может ли быть пуш без нотификации и нотификация без пуша? Что такое TTL пуша и почему пуши могут потеряться? Какие есть различия в пуш уведомлениях на Android и iOS? Можно ли выполнить Dart код по пушу или даже запустить приложение? Что такое VOIP пуши и чем они отличаются от обычных? Всё это и многое другое вы узнаете на этой лекции.
На лекции мы разберёмся с CI/CD и настроим пайплайн для github actions. Разберем что нужно знать чтобы довести приложение до релиза в сторы. Узнаем как наш код превращается в приложение: начиная с вызова flutter build и до запуска конечного артефакта.
Узнаем как собрать Flutter под Web и Desktop. Какие есть особенности при работе с этими платформами и какие готовые решения нам предоставляет фреймворк для разработки под них. Посмотрим на примеры приложений и планы развития.
Разберем навыки, которые будут полезные кроссплатформенному разработчику из iOS и Android. Посмотрим на обзор двух платформ, инструментов и лучших практик на каждой из них, чтобы расширить знания о мобильной разработке в целом.
Вы познакомитесь с основными инструментами разработчика, которые предоставляет Flutter. Научитесь решать различные проблемы мобильных приложений: проверять верстку и состояние приложения, диагностировать проблемы с производительностью, анализировать размер приложения, следить за потребляемой памятью, и многие другие возможные задачи.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Чтобы написать мобильное приложение, нужен Dart и ... Flutter. Чтобы написать свой сервер, нужен Dart и ... Как раз о том, что еще нам может потребоваться для разработки своего application server, мы и поговорим.
В лекции рассмотрим плюсы и минусы использования Dart для разработки своего REST API сервер. Научимся работать с HttpServer, с веб-сокетами, поговорим про сервер базы данных postgres, настройку аутентификации, используя сервисы firebase.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
В ходе встречи обсудим:
— в какой команде и с кем играет менеджер;
— какие скиллы необходимы для успешного взаимодействия;
— кто кем управляет: менеджер командой или команда менеджером;
— успешные и провальные кейсы.
Как стратегия помогает понять цели бизнеса, и при чём тут моя фича. Кейсы, которые показывают, почему важно учитывать контекст работы фичи и её влияние на продукт и компанию. Как использовать стратегию, чтобы определять приоритеты и ресурсы для оптимального управления фичей. Способность закрыть фичу и сделать пивот в нужный момент.
Стратегическая прожарка: встреча, где мы погрузимся в мир фудтех-инноваций Яндекс Лавки. В течение полутора часов обсудим ключевые аспекты бизнеса. Посмотрим, как развивался сервис, и разложим всё по полочкам: от разработки новых фич до их влияния на общую стратегию компании.
На встрече поговорим о том, как и зачем общаться с пользователями, а также о том, как находить новые идеи и получать глубинные инсайты.
На встрече поговорим о том, какие виды количественных исследований существуют, а также научимся проводить опросы аудитории и проверять свои идеи и макеты.
Обсуждаем стратегию дизайна и тренируем насмотренность.
Как выглядит работа в проекте глазами дизайнеров, как они воспринимают свою роль и роль менеджеров. Какие у дизайнеров ценности в работе, как построить процесс и общение, чтобы создать доверительные и эффективные отношения.
Поговорим о работе с данными и взаимодействии с аналитиками на разных этапах работы над продуктом
— расскажу, какие фреймворки мы используем для проектирования продукта;
— как проектировать, ориентируясь на результат и максимизируя его;
— как делать это быстро и без головной боли.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Разберёмся, зачем менеджеру продукта понимать инфраструктуру и думать о ней на этапе проработки новых продуктов. Как разговаривать с разработкой на одном языке и вместе принимать решения о будущем вашего продукта.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Мы открываем Школу Аналитиков-Разработчиков, и для начала хорошо бы определиться с предметом нашего изучения. Руководители различных аналитических команд Яндекса соберутся, чтобы договориться о содержании понятия «аналитика» и выработать единую точку зрения на её роль в компании. Опытные спикеры поделятся личным видением аналитики, своим опытом и кул стори. Присоединяйтесь похоливарить с практикующими специалистами из индустрии!
Рассмотрим базовые аналитические подходы при разведочном анализе данных с учетом специфики инфраструктуры Яндекса (YT + YQL). Поговорим про начала анализа данных и выводах на их основе
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
На лекции обсудим основные методы машинного обучения, которые могут пригодиться аналитику. Поговорим про типы задач, метрики оценки качества и рассмотрим все это на конкретных примерах.
На этой лекции мы рассмотрим историю DWH, узнаем, какие есть методологии построения хранилища данных, обсудим сложности и вызовы, которые сохраняются даже на сегодняшний день.
Стартуем Летние школы и Лекторий 2024! Поговорим об изменениях в программе, пользе менторства, трудоустройстве в IT‑компании и многом другом. Для самых активных зрителей — промокоды на 5000 руб. на Яндекс Маркете за победу в викторине.
Сначала обсудим работу компонентов и процесс загрузки ПК, а также архитектуру операционной системы GNU/Linux. Затем — глубже изучим файловые системы в Linux, включая их виды и механизмы работы. А в завершение освоим методы монтирования и техники управления дисками.
Освоим азы работы с командной строкой, траблшутинг, дебаг, перформанс-тюнинг и быструю аналитику с помощью базовых инструментов Linux.
Рассмотрим, как работают планировщик процессов и подсистема виртуальной памяти. Проговорим, для чего нужны прерывания. И узнаем, что такое cgroup и namespace.
На лекции обсудим, как с помощью eBPF увидеть путь пакетов внутри ядра и добиться в их обработке большей производительности и гибкости. Эти знания пригодятся и в сетевом стеке, и для общего траблшутинга Linux.
Разберём, что происходит с данными, когда они путешествуют от одного компьютера к другому. Изучим технологии, которые для этого необходимы. Научимся определять и решать самые распространённые проблемы в сетях.
Перед написанием кода необходимо продумать архитектуру всего сервиса или его отдельных частей.
На лекции научимся строить масштабируемую, отказоустойчивую систему, ошибки которой будут подсвечиваться мониторингом с разных сторон. А ещё поговорим о разнице между архитектурой сервиса и системным дизайном.
Практически любая отрасль жизнедеятельности связана с созданием ПО. Инженеры каждый день сталкиваются с релизным циклом, решением задач разработки и тестирования.
На лекции мы пройдёмся по основным этапам жизни ПО и посмотрим, как они выглядят в проектах Яндекса.
Обсудим, какие СУБД бывают и почему их так много. Поговорим о работе нескольких СУБД — как с ними быть, особенно когда всё в огне.
Разберём системы управления кластерами и конфигурациями и посмотрим на самые популярные вживую. А ещё — ответим на вопрос: "Зачем это всё вообще нужно?
Когда начинаешь заводить продуктовые инсталляции, сталкиваешься с первыми инцидентами — это можно сравнить с полётом в состоянии нулевой видимости без приборов.
На лекции поговорим о том, что уменьшит MTTD, MTTR и сэкономит нервные клетки — о наблюдаемости и прозрачности в сложных системах ПО.
Программирование — неотъемлемая часть работы SRE, особенно в Яндексе. На лекции мы обсудим, зачем и когда SRE пишут код, а главное, вместе разберём рабочие задачи, в которых пригодится навык программирования.
Знакомая ситуация: «Я что-то нажал, и всё исчезло». Но иногда всё ломается, даже если никто ничего не нажимал.
На лекции обсудим, как эффективно действовать в сложной ситуации и как извлекать пользу из падения сервиса.
Лекция про основные этапы найма в крупную IT‑компанию на примере Яндекса. Рассмотрим весь процесс от скрининга резюме до выхода на работу глазами кандидата и нанимающего руководителя. Вы узнаете, какие типичные ошибки совершают кандидаты (особенно начинающие специалисты) и как получить работу своей мечты.
Напишите, если остались вопросы: seasonschools@yandex‑team.ru