Rust для DotNet разработчиков
34 subscribers
47 links
Открытый курс от сообщества: про Rust для тех кто знает C#, в глубину и с практикой, и пусть никто не уйдёт обиженным
https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z
Download Telegram
#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
#08: Функциональное программирование в Rust, замыкания и не только

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

Shownotes:
00:04:00 Lambda в C#
00:14:40 Lambda in Rust
00:26:14 Что такое замыкание в Rust

Ссылки:
- https://doc.rust-lang.org/book/ch13-01-closures.html : Замыкания в Rust


Все выпуски: 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 разработчиков #09: Telegram бот на Rust в прямом эфире

Практикум Rust для .Net разработчиков: пишем бота для телеги в прямом эфире.

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

Практикум Rust для .Net разработчиков: пишем бота для телеги в прямом эфире.

Видео: https://youtube.com/live/0Oyd7qvfbj0

Shownotes:
00:00:00 Интро. Анонимный бот для сексолога
00:02:10 Инициализиурем main для бота с помощью teloxide
00:06:30 dotenvy
00:08:03 Как работают боты
00:09:20 Побеждаем логгер
00:11:40 Добавляем стейт машину для диалога в бот
00:32:20 Тестируем стейт машину
00:35:40 Исследуем сторедж для бота
00:42:50 Фиксим бажульку
00:44:40 Делаем пересылку в канал
01:01:00 Коммитим МВП
01:04:20 Реклама дотнекст
01:05:40 Считает затраты на яндекс клауд
01:09:30 Вебхук для бота
01:13:10 Ngrok
01:16:03 Веб хук продолжаем
01:24:06 Делаем 12 фактор
01:48:00 Собираем докер
02:04:00 Пытаемся запустить в яндекс клауде
02:24:05 СЕГФОЛТ БОЛЬ!!!!!
03:30:10 Боль закончилась. Пытаемся деплоить

Ссылки:
- https://t.me/AntonOnikychukTestBot : Бот, написанный на стриме


Все выпуски: 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/