Перейти к содержимому

Программирование на Rust: полное руководство по шаблону Builder

Jeremy Chone

0:00 / 0:00

Программирование на Rust: полное руководство по шаблону Builder

46 929 просмотров · 3 года назад
Jeremy Chone
32,8 тыс. подписчиков
46 929 просмотров · 3 года назад
Учебник по шаблонам 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.