Rust для DotNet разработчиков
34 subscribers
47 links
Открытый курс от сообщества: про Rust для тех кто знает C#, в глубину и с практикой, и пусть никто не уйдёт обиженным
https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Download Telegram
Видео #01: Синтаксис Rust vs C#

https://youtube.com/live/oo3hAhvjYJA

Единственная "обязательная" лекция: галопом по Европам разберем синтаксические конструкции Rust, опираясь на наши знания C#.

Ссылки:
- https://t.me/dotnextconf/13669 : Подать доклад на DotNext
- https://cheats.rs/ : Rust language cheat sheet
- https://doc.rust-lang.org/stable/book/ch03-00-common-programming-concepts.html : Rustbook "Common Programming Concepts"
- https://github.com/topics/cargo-generate : Cargo Generate Templates
Лекция #02: Владение, ссылки и заимствование

Ownership и borrowing - визитная карточка Rust. Разберемся как это работает, зачем нужны такие ограничения и при чем тут C#.


Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/bBl7DC1YiOI
#02: Владение, ссылки и заимствование

Ownership и borrowing - визитная карточка Rust. Разберемся как это работает, зачем нужны такие ограничения и при чем тут C#.

https://youtube.com/live/bBl7DC1YiOI

Shownotes:
00:00:00 Вступление
00:01:42 Loop
00:15:00 Лямбды
00:18:20 Методы
00:18:38 Generics
00:51:00 Trait
00:55:20 Ownership
00:59:00 Copy
01:01:00 Move
01:07:00 Drop
01:11:00 Borrowing
01:28:00 Dangling ref
01:30:00 Mutable ref
01:40:00 Deref
01:56:50 Copy vs Move
02:03:00 Заключение

Ссылки:
- https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html : RustBook Understanding Ownership
- https://gist.github.com/dubrowgn/c61372647160ae4a52f65ef91da99ddc : Move/Copy/Borrow Semantics in Programming
- https://doc.rust-lang.org/nomicon/ownership.html : Ownership Rustnomicon


Все выпуски: https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Промо и обсуждения: https://t.me/rust4dotnetdevs

Background music: http://freemusicarchive.org/music/Six_Umbrellas/Ad_Astra
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
#03: Lifetimes в Rust на пальцах

Как мы понимаем, что в C# коде есть ошибка в ref-ах? Нам показывают странную ошибку компиляции. В Rust все немного по-другому: то что скрыто в недрах компилятора C# является частью синтаксиса Rust.

Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/Z85G0m1vNCQ
#03: Lifetimes в Rust на пальцах

Как мы понимаем, что в C# коде есть ошибка в ref-ах? Нам показывают странную ошибку компиляции. В Rust все немного по-другому: то что скрыто в недрах компилятора C# является частью синтаксиса Rust.

https://youtube.com/live/Z85G0m1vNCQ

Shownotes:
00:00:00 Вступление
00:02:00 Lifetimes в C#
00:17:00 Lifetimes как scope в DI контейнерах
00:31:30 Lifetimes для провисающих ссылок
00:35:20 Static lifetime
00:40:30 Как видит наш код Rust компилятор
00:42:30 Как работает mut check
00:45:40 Пишем lifetimes руками
01:14:00 Demo: C# vs Rust в контексте ref return

Ссылки:
- https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html : Validating References with Lifetimes
- https://github.com/rustviz/rustviz : Lifetimes interactive visualization
- https://doc.rust-lang.org/nomicon/lifetimes.html : Lifetimes in Rustnomicon

Все выпуски: https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Промо и обсуждения: https://t.me/rust4dotnetdevs

Background music: http://freemusicarchive.org/music/Six_Umbrellas/Ad_Astra
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
Всем привет,
К сожалению сегодня лекции не будет, но если Вы уже настроились на Rust, предлагаем попрактиковаться в специальном курсе rustlings https://github.com/rust-lang/rustlings

Специально для Вас мы подготовили список заданий по темам, которые уже прошли:
- https://github.com/rust-lang/rustlings/tree/main/exercises/variables
- https://github.com/rust-lang/rustlings/tree/main/exercises/functions
- https://github.com/rust-lang/rustlings/tree/main/exercises/if
- https://github.com/rust-lang/rustlings/tree/main/exercises/primitive_types
- https://github.com/rust-lang/rustlings/tree/main/exercises/move_semantics
- https://github.com/rust-lang/rustlings/tree/main/exercises/lifetimes

Задания интересные, очень рекомендуем. Тяжело в учении, легко в проде.
👍2
Rust для DotNet разработчиков #04: Практика в rustlings

Теория - хорошо, но пора порешать задачки. И отличной точкой входа является открытый проект rustlings. Мы вместе с Вами порешаем задачки, дадим комментарии и попробуем вдохновить на последующие "подвиги".

Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/5PGl8j7LfKo
#05: Жизнь без GC, умные указатели это просто

В C# у нас есть сборщик мусора, мы живем и не жалуемся (да, это была шутка). В Rust же подход к управлению памяти гораздо проще и интереснее. После данной лекции Вы поймете, что "Умные Указатели" совсем не страшные, а работать с ними приятно и весело.

https://youtube.com/live/-CBSvk25BwQ

Shownotes:
00:00:00 Вступление
00:02:15 Null в Rust
00:28:30 Struct vs Classes в c#
00:54:55 Боксинг в Rust
01:17:00 Linked List и использованием Box
01:29:30 Пишем Box как в Rust на C#
01:42:55 Что такое RAII
02:01:00 Как воровать данные из Box

Ссылки:
- https://doc.rust-lang.org/book/ch15-00-smart-pointers.html : RustBook "Smart Pointers"
- https://coderethinked.com/visualizing-stack-and-heap-with-sharplab-io/ : Visualizing stack and heap with SharpLab

Все выпуски: https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Промо и обсуждения: https://t.me/rust4dotnetdevs

Background music: http://freemusicarchive.org/music/Six_Umbrellas/Ad_Astra
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
Rust для DotNet разработчиков #06: Нарушаем правила Rust, легально и без СМС

Правила владения в Rust прекрасны, но невозможно писать реальные проекты следуя всем ограничениям. Авторы языка это прекрасно понимают, и оставили ряд "легальных лазеек": RC, Cell, RefCell.

Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/Fqnwj04CQX4
#06: Нарушаем правила Rust, легально и без СМС

Правила владения в Rust прекрасны, но невозможно писать реальные проекты следуя всем ограничениям. Авторы языка это прекрасно понимают, и оставили ряд "легальных лазеек": RC, Cell, RefCell.

https://youtube.com/live/Fqnwj04CQX4

Shownotes:
00:00:00 Вступление
00:03:00 Повторение: Box
00:05:00 Как работать с ссылками
00:21:05 Сборка мусора методом посчета ссылок
00:30:50 Reference Counter в Rust
00:44:25 Ломаем ограничения на мутации: RefCell
01:06:20 Утечки памяти в Rc
01:27:00 Слабые ссылки
01:33:00 Cell
00:38:00 Заключение

Ссылки:
- https://doc.rust-lang.org/book/ch15-04-rc.html : Reference Counter aka RC
- https://doc.rust-lang.org/book/ch15-05-interior-mutability.html : Cell/RefCell aka Interior Mutability


Все выпуски: https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Промо и обсуждения: https://t.me/rust4dotnetdevs

Background music: http://freemusicarchive.org/music/Six_Umbrellas/Ad_Astra
Copyright: https://creativecommons.org/licenses/by-sa/4.0/
#07: Пишем веб сервис в прямом эфире

Довольно теории, время практики. Сегодня .Net разработчики покажут как просто написать веб сервис на Rust.

Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/jVHYV7Zkevs
Rust для DotNet разработчиков #08: Функциональное программирование в Rust, замыкания и не только

В C# замыкания выглядят просто, но достаточно сложны под капотом, так как существует множество "особенностей". В Rust те же "особенности" решаются на уровне дизайна языка. Разберем и сравним.

Сегодня онлайн в 18:00 CEST (Сербия), 19:00 EEST (Кипр), 19:00 MSK (СПб), 21:00 AMT/GET (Ереван, Тбилиси), 23:00 ALMT (Астана).
Присоединяйтесь: https://youtube.com/live/drctgioySUs