Программирование на Rust: полное руководство по шаблону Builder
Автор: Jeremy Chone
Загружено: 2022-12-04
Просмотров: 45350
Учебник по шаблонам Builder для программирования на Rust, а также шаблоны конструкторов. Мы также рассмотрим плюсы и минусы шаблонов Builder, не использующих и использующих ресурсы.
Поддержите этот канал: / jeremychone
Главы:
00:00 — Введение
00:28 — Шаблоны конструкторов
04:37 — Шаблоны Builder
Ссылка на GitHub: https://github.com/jeremychone-channe...
Бонус в репозитории GitHub — Шаблон State Builder (видео в разработке) — https://github.com/jeremychone-channe...
Примечания:
1) Литералы структур и простые функции-конструкторы — отличные способы создания структур и перечислений.
2) Шаблон «Builder» полезен при построении более сложных структур данных, особенно когда требуется пошаговая сборка.
3) Шаблон «non-sumption-builder-pattern» prop...(&mut self) и build(&self) можно считать более эргономичным, но он потребует ненужного выделения памяти, когда построенный объект должен владеть данными, переданными строителю.
4) Шаблон «non-sumption-builder-pattern» с изменяемой сборкой (т.е. build(&mut self)) можно считать неудачным, поскольку двойной вызов build() даст разный результат (за исключением случая 6).
5) Шаблон «sumption-builder-pattern» требует переназначения строителя для каждой «команды цепочки строителей» и клонирования, если строителя необходимо использовать повторно. Но это позволяет избежать ненужного выделения памяти.
6) В некоторых ситуациях, когда построенный объект не получает никаких значений от строителя, шаблон «non-sumption-builder-pattern» может быть уместен.
7) Лично я, за исключением пункта 6), считаю, что шаблон Consuming-Builder лучше соответствует правилам владения компилятора. Новые выделения памяти становятся явными благодаря требованию clone, и сборщик нельзя использовать повторно без явного clone.
8) Однако изучите плюсы и минусы каждого шаблона и используйте то, что имеет смысл для вас и вашей команды в ваших конкретных сценариях использования.
9) Шаблон «impl Into String» не связан с шаблонами конструктора или builder, но может использоваться с любой функцией. Используйте этот шаблон, если считаете его продуктивным и подходящим для вашего сценария использования. Предыдущее видео: • Rust Tip - Into String as Function Arguments
Как я начинаю свой новый проект: • Rust - Simple Code Boilerplate & Structure...
Обсуждение этого видео на Reddit: / rust_builder_pattern_tutorial_constructors
Другие ресурсы:
Отличный шаблон построения состояний [статья: https://www.greyblake.com/blog/builde... (в будущем я сделаю видео о шаблоне построения состояний)
Джереми Чон:
Твиттер: / jeremychone
Discord на Rust: / discord
AWESOME-APP: https://awesomeapp.dev - Шаблоны Rust для создания отличных приложений.
Patreon - / jeremychone - Любая помощь очень важна (для обучающего контента по Rust)
Отзывы приветствуются, удачи в программировании!
Другие популярные видео по программированию на Rust:
Быстрый старт: разметка кода - • Rust - Simple Code Boilerplate & Structure...
Полный обзор AWESOME-APP - Шаблон Rust для создания Awesome Desktop Application: • Building Awesome Desktop App with Rust, Ta...
Краткое введение в Tauri (настольное приложение с программированием на Rust): • Rust Tauri 1.0 - Quick Intro - Rust Deskto...
Серия обучающих материалов по веб-приложениям на Rust: • Rust Web App - 1/3 - Data Access
Полное руководство по Rust Bevy - Разработка игр на Rust: • Rust Bevy Full Tutorial - Game Development...
Серия «Rust для разработчиков Java»: • Rust for Java Developers 1/3 - Introductio...
Плейлисты:
Rust для настольных приложений: • JC - Rust Programming for Desktop App
Всё о программировании на Rust — уроки, курсы, советы, примеры: • JC - Rust - Everything Rust Programming - ...
Программирование на Rust для веб-разработки: • JC - Rust Programming for Web Development
Курсы по Rust: • Rust Course 2021 by the book | RustLang
Для разработчиков Java: • Rust for Java Developers
AWESOME-APP ➜ https://awesomeapp.dev — Шаблоны Rust для создания потрясающих приложений.
Rust AWESOME-APP на GitHub — https://github.com/orgs/rust-awesome-...
Другие заметки:
— Инструмент, используемый для создания зелёных линий. ScreenBrush в Mac App Store (аналог Gromit в Linux, похоже).
— Отредактировано в Davinci Resolve.
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: