Rust Developer. Best Practices по языку программирования Rust
RUST - мультипарадигмальный компилируемый язык программирования общего назначения, сочетает парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах. Управление памятью осуществляется через механизм «владения» с использованием аффинных типов, что позволяет обходиться без системы сборки мусора во время исполнения программы. Rust гарантирует безопасную работу с памятью благодаря встроенной в компилятор системе статической валидации ссылок. Имеются средства, позволяющие использовать приёмы объектно-ориентированного программирования.
Ближайший открытый вебинар для ознакомления по Rust "Какие проблемы решает Rust?" от OTUS стартует 25 апреля в 20:00. Все информация о курсе доступна по ссылке ниже.
Необходимые знания перед началом курса:
- базовое знание любого другого языка программирования;
- знание БД.
Углублённый курс по языку программирования Rust, в котором мы разберем:
- ключевые особенности Rust, понимание которых позволяет не только разрабатывать сложные программные продукты на этом языке, но и помогает лучше проектировать ПО в целом;
- наиболее популярные библиотеки и проекты, широко используемые на практике;
- многопоточность и архитектуру программного обеспечения.
Разработчикам на системных языках (С, C++, ...), которые хотят:
- изучить Rust, его сильные и слабые стороны;
- научиться избегать ошибки по работе с памятью и многопоточностью;
- изучить проектирование высокопроизводительного ПО.
- изучить язык, позволяющий делать критические по производительности секции вашего ПО максимально быстрыми;
- особенности работы с низкоуровневым ПО;
- подходы к разработке безопасного и отказоустойчивого ПО.
- использовать язык Rust для разработки ПО;
- разворачивать Rust и среду разработки;
- создавать надёжное, отказоустойчивое и высокопроизводительное ПО;
- тестировать код;
- использовать сторонние библиотеки;
- писать асинхронный код.
Кирилл Федченко. Старший разработчик ПО, НИИ Квант. Заинтересовался программированием ещё в школе. Работает программистом более 5 лет. Увлекается компьютерной графикой и разработкой игр. Основной стэк: Rust, C++, Python. Есть опыт работы с С#, JS, PHP, MatLab.
Проектировал и разрабатывал:
- программное обеспечение для цифровой обработки сигналов;
- файловую систему для последовательного хранения больших объёмов данных;
- фреймворк для параллельной обработки данных на графическом процессоре;
- Backend части распределённых систем сбора и обработки данных;
Модуль 1. Введение в Rust
- Основные концепции и особенности Rust
- Вспомогательные утилиты. Выбор среды разработки
- Базовый синтаксис
- Владение и заимствование
- Обобщённое программирование
- Макросы
- Дополнительные вопросы синтаксиса
- Разбиение проекта на файлы и логические блоки. Тесты и примеры
- Пакеты и крейты. Использование сторонних крейтов. Версии и features
- Основные перечисления и типажи
- Умные указатели и коллекции
- Ввод и вывод
- Пишем клиент-серверное приложение
- Проблемы многопоточного кода. Запуск параллельного потока
- Контроль корректности многопоточного приложения на стадии компиляции
- Пишем свой ThreadPool
- Типы многозадачности. Асинхронность
- Асинхронность под капотом
- Делаем клиент-серверное приложение асинхронным
- Межпроцессное взаимодействие и синхронизация
- Rust и ООП
- Rust и ФП
- Обработка ошибок
- Инварианты
- Паттерны
- Популярные утилитарные библиотеки
- Логирование, отладка и профилирование
- Rust и Backend
- Rust и GUI
- Rust и GameDev
- Rust и Frontend
- Взаимодействие с другими языками
- Выбор темы и организация проектной работы
- Консультация по проектам и домашним заданиям
- Защита проектных работ
- Подведение итогов курса
Выпускной проект
Задачи выпускного проекта:
- Сформулировать идею приложения или библиотеки;
- Разработать архитектуру проекта;
- Написать proof-of-concept код, демонстрирующий жизнеспособность текущего дизайна;
- Полноценно реализовать задуманный функционал, с документацией интерфейсов и тестами бизнес-логики;
- Разработать документацию и примеры использования кода;
- Опубликовать результаты работы на GitHub и на Crates.io.
- Web backend
- Real-time data processing
- Image processing
- Data storage and caches
https://otus.ru/lessons/rust-developer/
Цена курса
Цена составляет 57000 руб ($760).