Для кого этот курс? Для разработчиков на системных языках (С, C++, ...): вы изучите сильные и слабые стороны языка Rust, сможете избежать ошибок в работе с памятью и многопоточностью, научитесь проектировать высокопроизводительное ПО Для разработчиков на интепретируемых или высокоуровневых языках (Python, JS, Java, C#, ...): с помощью Rust вы значительно ускорите работу критических секций и увеличите производительность ПО; изучите особенности работы с низкоуровневым ПО, а также исследуете подходы к разработке безопасных и отказоустойчивых Для действующих Rust-разработчиков и тех, кто прошёл базовый курс Rust Developer. Basic: сможете повысить квалификацию с помощью новых знаний и навыков Необходимые знания базовое знание Rust или любого другого языка программирования знание баз данных Вы научитесь: использовать язык Rust для разработки ПО разворачивать Rust и среду разработки создавать надёжное, отказоустойчивое и высокопроизводительное ПО тестировать код использовать сторонние библиотеки писать асинхронный код Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь. И самое главное – сможете практиковаться! Программа: Особенности Rust Демонстрируем студенту основные отличия Rust от других языков, а также примеры идиоматического Rust кода с использованием элементов std. Тема 1: Какие проблемы решает Rust? Тема 2: Организация проекта Тема 3: Владение, заимствование и типы данных//ДЗ Тема 4: Статический полиморфизм Тема 5: Динамический полиморфизм Тема 6: Макросы Тема 7: Макросы. Часть 2 Тема 8: Стандартная библиотека//ДЗ Тема 9: Практика Rust разработки #1 Тема 10: Практика Rust разработки #2 Тема 11: Консультация по домашним заданиям Многопоточность Вы научитесь разрабатывать многопоточные приложения на Rust. Мы разберем, как Rust помогает избегать гонок данных, научимся использовать трейты Send и Sync, а также синхронизировать потоки. В практической части вы реализуете ThreadPool, освоите модель акторов и создадите многопользовательский чат. Также вы изучите основы асинхронного программирования с помощью async/await, и принцип работы асинхронных задач и планировщиков. Тема 1: Многопоточность без страха Тема 2: Пишем ThreadPool Тема 3: Асинхронный код Тема 4: Асинхронность под капотом//ДЗ Тема 5: Пишем чат Тема 6: Консультация по домашним заданиям Архитектура Вы изучите идиомы функционального и объектно-ориентированного программирования в Rust. Мы разберем стратегии обработки ошибок, поймем, как инварианты повышают надежность API, и изучим полезные паттерны проектирования. В практических занятиях вы потренируетесь в принятии архитектурных решений и написании идиоматического кода. Тема 1: Элементы ФП и ООП в Rust Тема 2: Обработка ошибок Тема 3: Инварианты Тема 4: Rust паттерны//ДЗ Тема 5: Практика проектирования #1 Тема 6: Практика проектирования #2 Тема 7: Консультация по домашним заданиям Экосистема Вы познакомитесь с наиболее популярными готовыми решениями экосистемы Rust в различных областях, которые значительно упрощают разработку. Мы рассмотрим популярные утилитарные крейты для работы с математикой, сериализацией, многопоточностью и тестированием. Вы научитесь работать с логами, отладкой и профилированием, включая такие инструменты, как Valgrind, Flamegreph и Miri. Также мы изучим основы FFI и создание интерфейсов между Rust и другими языками. Тема 1: Утилитарные крейты Тема 2: Логи, отладка, профилирование Тема 3: Теория FFI//ДЗ Тема 4: Практика FFI Тема 5: Консультация по домашним заданиям Тема 6: Backend #1 Тема 7: Backend #2 Тема 8: actix-web под капотом Тема 9: GUI Тема 10: Frontend//ДЗ Тема 11: Примеры кода Frontend приложений Тема 12: Консультация по домашним заданиям Тема 13: Blockchain//ДЗ Тема 14: Примеры смарт-контрактов Тема 15: GameDev//ДЗ Тема 16: Пример игры на Rust Тема 17: Консультация по домашним заданиям