<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>rust &amp;mdash; Блог Евгения Морозова</title>
    <link>https://emorozov.net/tag:rust</link>
    <description></description>
    <pubDate>Sat, 02 May 2026 17:20:30 +0300</pubDate>
    <item>
      <title>Первая утилита на Rust</title>
      <link>https://emorozov.net/pervaia-utilita-na-rust</link>
      <description>&lt;![CDATA[Первый опыт написания чего-то нужного лично мне на Rust: annotate-branches или просто anb. Утилита, выводящая список веток Git в текущем каталоге, вместе с кратким описанием и статусом задачи из Jira (предполагается, что ветки имеют такие же названия, как и задачи в Jira).&#xA;&#xA;Можно было намного быстрее и короче написать этот скрипт на shell, но каждый изучающий Rust просто обязан переписать что-то тривиальное (или не очень) на Rust. Кроме того, это хорошее упражнение для новичка в языке, т.к. требуется задействовать подпроцессы, регулярные выражения, и взаимодействие с сервисами по сети. Неожиданно легко получилось написать, ожидал, что будет дольше и труднее.&#xA;&#xA;Написал еще до Нового Года, но руки не дошли анонсировать в блоге. Точнее, терзали сомнения, стоит ли публиковать что-то настолько тривиальное. В итоге решил, что стоит.&#xA;&#xA;rust]]&gt;</description>
      <content:encoded><![CDATA[<p>Первый опыт написания чего-то нужного лично мне на Rust: <a href="https://github.com/emorozov/anb" rel="nofollow">annotate-branches или просто anb</a>. Утилита, выводящая список веток Git в текущем каталоге, вместе с кратким описанием и статусом задачи из Jira (предполагается, что ветки имеют такие же названия, как и задачи в Jira).</p>

<p>Можно было намного быстрее и короче написать этот скрипт на shell, но каждый изучающий Rust просто обязан переписать что-то тривиальное (или не очень) на Rust. Кроме того, это хорошее упражнение для новичка в языке, т.к. требуется задействовать подпроцессы, регулярные выражения, и взаимодействие с сервисами по сети. Неожиданно легко получилось написать, ожидал, что будет дольше и труднее.</p>

<p>Написал еще до Нового Года, но руки не дошли анонсировать в блоге. Точнее, терзали сомнения, стоит ли публиковать что-то настолько тривиальное. В итоге решил, что стоит.</p>

<p>#rust</p>
]]></content:encoded>
      <guid>https://emorozov.net/pervaia-utilita-na-rust</guid>
      <pubDate>Tue, 12 Jan 2021 03:43:39 +0000</pubDate>
    </item>
    <item>
      <title>Закончил курс «Learn Rust by Building Real Applications»</title>
      <link>https://emorozov.net/zakonchil-kurs-learn-rust-by-building-real-applications</link>
      <description>&lt;![CDATA[Certificate&#xA;&#xA;Ссылка на курс на Udemy&#xA;&#xA;Курс довольно простой и короткий, вопросы к курсу тоже очень простые, но курс всё равно понравился. Для новичка довольно объясняется много важных вещей, при этом очень понятным языком, и на примерах, отличающихся от Rust Book (которые используют множество других курсов), что позволяет взглянуть на язык с немного другого ракурса.&#xA;&#xA;#rust #курсы #udemy #mooc]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://images.emorozov.net/rust-certificate.webp" alt="Certificate"></p>

<p><a href="https://www.udemy.com/share/103oeYB0cadVlRR3g=/" rel="nofollow">Ссылка на курс на Udemy</a></p>

<p>Курс довольно простой и короткий, вопросы к курсу тоже очень простые, но курс всё равно понравился. Для новичка довольно объясняется много важных вещей, при этом очень понятным языком, и на примерах, отличающихся от Rust Book (которые используют множество других курсов), что позволяет взглянуть на язык с немного другого ракурса.</p>

<p>#rust #курсы #udemy #mooc</p>
]]></content:encoded>
      <guid>https://emorozov.net/zakonchil-kurs-learn-rust-by-building-real-applications</guid>
      <pubDate>Mon, 21 Dec 2020 00:01:18 +0000</pubDate>
    </item>
    <item>
      <title>Изучение Rust в 2020</title>
      <link>https://emorozov.net/izuchenie-rust-v-2020</link>
      <description>&lt;![CDATA[До нового года осталось меньше месяца, а я только нашёл эту прекрасную страницу: Learning Rust in 2020.&#xA;&#xA;Я стал осторожно изучать Rust с начала 2020. Особых причин для изучения не было. Хотелось изучить какой-то новый язык программирования, чего уже давно не делал, так как не было времени и сильной необходимости. При этом не люблю языки, работающие на виртуальных машинах (видимо, сказывается нелюбовь, вызванная столкновениями с ранними версиями Java, которые всегда больше обещали, чем делали). Есть исключение: мне нравится Clojure и я делал к нему несколько подходов, но очень глубоко не погрузился. Мне не хочется изучать еще один интерпретируемый язык. Я трушу идти в экзотические и/или пуристские языки (Haskell, Scala).&#xA;&#xA;Rust показался идеальной целью по многим параметрам. Он производительный и мощный — в том смысле, что может работать на голом железе, без интерпретаторов, байт кода, сборки мусора, и так далее. При этом, он высокоуровневый, но без сборки мусора, которая заменена на мощную и сложную систему управления памятью, иногда называемой «сборкой мусора во время компиляции».&#xA;&#xA;После прочтения Rust Book, прежде чем перейти к написанию какого-нибудь хобби-проекта на Rust, хотелось для начала набить руку на простых примерах на сайтах типа LeetCode или CodeWars. Однако первые же попытки решить простейшие задачи на LeetCode стали вызывать серьезные трудности. Я знал, что на Rust сложно реализовывать структуры данных из-за стремления компилятора сделать программы максимально безопасными. Но не предполагал насколько, и насколько сложно решать эти проблемы имея за поясом только Rust Book, которая, всё-таки, не объясняет множество критически важных вещей.&#xA;&#xA;Страница Learning Rust in 2020 немного подняла самооценку, так как на ней поясняется, что, к сожалению, задачи на LeetCode и CodeWars плохо сформулированы на неидиоматичном Rust. Предлагается несколько альтернатив, например, Exercism — сайт, на котором можно решать задачи, составленные профессионалами на идиоматичном Rust. Более того, обещается, что проверять и подсказывать будут настоящие наставники. Зарегистрировался и решил первую тривиальную задачу. Постараюсь информировать о ходе прохождения курса, концепция мне очень нравится. Но прежде надо будет закончить другой начатый курс: Learn Rust by Building Real Applications , который пока нравится тем, что доступно и просто объясняет как некоторые сложные концепции, которые не до конца объяснены в Rust Book, так и многие вещи, которые даже не были затронуты в Rust Book.&#xA;&#xA;#rust #курсы #ссылки]]&gt;</description>
      <content:encoded><![CDATA[<p>До нового года осталось меньше месяца, а я только нашёл эту прекрасную страницу: <a href="https://github.com/pretzelhammer/rust-blog/blob/master/posts/learning-rust-in-2020.md" rel="nofollow">Learning Rust in 2020</a>.</p>

<p>Я стал осторожно изучать Rust с начала 2020. Особых причин для изучения не было. Хотелось изучить какой-то новый язык программирования, чего уже давно не делал, так как не было времени и сильной необходимости. При этом не люблю языки, работающие на виртуальных машинах (видимо, сказывается нелюбовь, вызванная столкновениями с ранними версиями Java, которые всегда больше обещали, чем делали). Есть исключение: мне нравится Clojure и я делал к нему несколько подходов, но очень глубоко не погрузился. Мне не хочется изучать еще один интерпретируемый язык. Я трушу идти в экзотические и/или пуристские языки (Haskell, Scala).</p>

<p>Rust показался идеальной целью по многим параметрам. Он производительный и мощный — в том смысле, что может работать на голом железе, без интерпретаторов, байт кода, сборки мусора, и так далее. При этом, он высокоуровневый, но без сборки мусора, которая заменена на мощную и сложную систему управления памятью, иногда называемой «сборкой мусора во время компиляции».</p>

<p>После прочтения Rust Book, прежде чем перейти к написанию какого-нибудь хобби-проекта на Rust, хотелось для начала набить руку на простых примерах на сайтах типа LeetCode или CodeWars. Однако первые же попытки решить простейшие задачи на LeetCode стали вызывать серьезные трудности. Я знал, что на Rust сложно реализовывать структуры данных из-за стремления компилятора сделать программы максимально безопасными. Но не предполагал насколько, и насколько сложно решать эти проблемы имея за поясом только Rust Book, которая, всё-таки, не объясняет множество критически важных вещей.</p>

<p>Страница Learning Rust in 2020 немного подняла самооценку, так как на ней поясняется, что, к сожалению, задачи на LeetCode и CodeWars плохо сформулированы на неидиоматичном Rust. Предлагается несколько альтернатив, например, <a href="https://exercism.io/tracks/rust" rel="nofollow">Exercism</a> — сайт, на котором можно решать задачи, составленные профессионалами на идиоматичном Rust. Более того, обещается, что проверять и подсказывать будут настоящие наставники. Зарегистрировался и решил первую тривиальную задачу. Постараюсь информировать о ходе прохождения курса, концепция мне очень нравится. Но прежде надо будет закончить другой начатый курс: <a href="https://www.udemy.com/course/rust-fundamentals/" rel="nofollow">Learn Rust by Building Real Applications </a>, который пока нравится тем, что доступно и просто объясняет как некоторые сложные концепции, которые не до конца объяснены в Rust Book, так и многие вещи, которые даже не были затронуты в Rust Book.</p>

<p>#rust #курсы #ссылки</p>
]]></content:encoded>
      <guid>https://emorozov.net/izuchenie-rust-v-2020</guid>
      <pubDate>Sun, 06 Dec 2020 12:36:33 +0000</pubDate>
    </item>
    <item>
      <title>Интересный блог о Rust</title>
      <link>https://emorozov.net/interesnyi-blog-o-rust</link>
      <description>&lt;![CDATA[Изучая Rust, не могу не отметить, что находить информацию в современном мире становится всё труднее. Не последнюю роль играет отмирание традиционных средств распространения информации, таких как персональный сайт, персональная страница, блог, и замена их на гораздо менее привлекательные и доступные страницы в facebook и блоги в телеграм. Кстати, блоги на GitHub тоже не люблю: по каким-то непонятным причинам более половины недоступны. То есть видишь где-то ссылку на блог на GitHub, переходишь, а там — 404. Сталкиваюсь с этим настолько часто, что нередко даже не пытаюсь открывать, если увидел домен github.io.&#xA;&#xA;Ну а facebook и телеграм — это просто закрытые от индексирования эфемерные песочницы. Любая информация, попавшая туда, навсегда исчезает за горизонтом событий. Не говоря уж о том, что facebook давно стал инструментом политической пропаганды и жесточайшей цензуры.&#xA;&#xA;Поэтому находя случайно интересный блог, радуюсь как ребёнок. Сегодня поделюсь следующей находкой: Faster than lime.&#xA;&#xA;Есть статьи как для совсем начального уровня, так и довольно сложные объяснения как Rust (и не только Rust) устроен под капотом, а также все градации сложности посередине. Это приятно, ибо нередко блоги по Rust отличаются тем, что после первого вступительного абзаца переходят в такой хардкор, что чувствуешь себя беспомощным ничтожеством. Возможно, по мере продвижения в изучении Rust, моё мнение изменится, но пока что приятно находить такой материал, который и обогащает знаниями, но в то же время всё разжевывает достаточно подробно, чтобы не терять мысль автора на середине.&#xA;&#xA;#rust #ссылки]]&gt;</description>
      <content:encoded><![CDATA[<p>Изучая Rust, не могу не отметить, что находить информацию в современном мире становится всё труднее. Не последнюю роль играет отмирание традиционных средств распространения информации, таких как персональный сайт, персональная страница, блог, и замена их на гораздо менее привлекательные и доступные страницы в facebook и блоги в телеграм. Кстати, блоги на GitHub тоже не люблю: по каким-то непонятным причинам более половины недоступны. То есть видишь где-то ссылку на блог на GitHub, переходишь, а там — 404. Сталкиваюсь с этим настолько часто, что нередко даже не пытаюсь открывать, если увидел домен <code>github.io</code>.</p>

<p>Ну а facebook и телеграм — это просто закрытые от индексирования эфемерные песочницы. Любая информация, попавшая туда, навсегда исчезает за горизонтом событий. Не говоря уж о том, что facebook давно стал инструментом политической пропаганды и жесточайшей цензуры.</p>

<p>Поэтому находя случайно интересный блог, радуюсь как ребёнок. Сегодня поделюсь следующей находкой: <a href="https://fasterthanli.me/tags/rust" rel="nofollow">Faster than lime</a>.</p>

<p>Есть статьи как для совсем начального уровня, так и довольно сложные объяснения как Rust (и не только Rust) устроен под капотом, а также все градации сложности посередине. Это приятно, ибо нередко блоги по Rust отличаются тем, что после первого вступительного абзаца переходят в такой хардкор, что чувствуешь себя беспомощным ничтожеством. Возможно, по мере продвижения в изучении Rust, моё мнение изменится, но пока что приятно находить такой материал, который и обогащает знаниями, но в то же время всё разжевывает достаточно подробно, чтобы не терять мысль автора на середине.</p>

<p>#rust #ссылки</p>
]]></content:encoded>
      <guid>https://emorozov.net/interesnyi-blog-o-rust</guid>
      <pubDate>Fri, 27 Nov 2020 09:18:03 +0000</pubDate>
    </item>
    <item>
      <title>Курс по Rust на Stepik</title>
      <link>https://emorozov.net/kurs-po-rust-na-stepik</link>
      <description>&lt;![CDATA[Закончил курс Rustlings на Stepik. Это мой первый пройденный до конца курс на Stepik (до этого начинал два других курса, но там начались зубодробительные задачи, плюс возникали какие-то авралы на работе, потому бросил на середине).&#xA;&#xA;Поскольку это первый пройденный курс, думал, что в конце автоматом выдадут сертификат. Старался решить все задачи. Увы, этого не произошло, на странице моего профиля на Stepik нет ни единого упоминания о том, что я закончил данный курс.&#xA;&#xA;Пара слов о курсе&#xA;&#xA;Фактически, это сильно сокращенный и переупорядоченный набор глав из Rust Book. Книгу до этого прочёл целиком, но вопросов оставалось больше, чем ответов. Материал довольно сложный. Курс помог двукратно:&#xA;Перечитывая во второй раз смог гораздо лучше понять сложные концепции.&#xA;Упражнения заставили разобраться в сложных областях до конца (например, в макросах), т.к. при чтении книги кажется «В общих чертах понятно, потом, когда понадобится вернусь и доразбираюсь».&#xA;&#xA;Хотя упражнений можно было бы сделать и больше. Их было настолько мало, и они были настолько простые, что курс удалось не напрягаясь закончить за три вечера.&#xA;&#xA;Понравилась организация решения заданий. В IDE открывается шаблон решения, в котором достаточно добавить или изменить код, который проверяется нажатием одной кнопки. Не надо самостоятельно лезть в файловую систему, создавать проект, и т.д. на каждое задание.&#xA;&#xA;Еще один плюс за то, что после прохождения первого раздела мне прислали лицензию на образовательную версию любой IDE JetBrains. Ключом не воспользовался, т.к. у меня и так приобретены лицензии на несколько IDE, включая PyCharm и CLion, но за заботу спасибо.&#xA;&#xA;Недостатки курса&#xA;&#xA;Материал плохо упорядочен, разделы скачут. Например, материал про многопоточность на самом деле начался в разделе про стандартную библиотеку.&#xA;Несмотря на копирование Rust Book, целые главы пропущены, если не прочитать книгу заранее, то многие разделы окажутся абсолютно непонятными.&#xA;Задания в плагине Stepik для IDE IntelliJ (я использовал CLion, хотя, наверное, можно установить в любую IDE IntelliJ вместе с плагином для Rust) отформатированы плохо, масса проблем в разметке. По ощущениям, никто не вычитывал курс хотя бы однажды.&#xA;&#xA;Но в целом доволен курсом, рад, что он попался мне на глаза. Несомненно, получил от прохождения большую пользу. До этого пытался решать задачи с LeetCode на Rust и терпел неудачи из-за слабого понимания многих концепций языка. Из-за этого поставил дальнейшее изучение языка на паузу. Сейчас чувствую уверенность, что смогу справиться с задачами на LeetCode, и, возможно, начать какой-нибудь хобби-проект на Rust.&#xA;&#xA;#rust #stepik #курсы #mooc #степик]]&gt;</description>
      <content:encoded><![CDATA[<p>Закончил курс <a href="https://stepik.org/course/59778" rel="nofollow">Rustlings</a> на Stepik. Это мой первый пройденный до конца курс на Stepik (до этого начинал два других курса, но там начались зубодробительные задачи, плюс возникали какие-то авралы на работе, потому бросил на середине).</p>

<p>Поскольку это первый пройденный курс, думал, что в конце автоматом выдадут сертификат. Старался решить все задачи. Увы, этого не произошло, на странице моего профиля на Stepik нет ни единого упоминания о том, что я закончил данный курс.</p>

<h2 id="пара-слов-о-курсе">Пара слов о курсе</h2>

<p>Фактически, это сильно сокращенный и переупорядоченный набор глав из <a href="https://doc.rust-lang.org/book/" rel="nofollow">Rust Book</a>. Книгу до этого прочёл целиком, но вопросов оставалось больше, чем ответов. Материал довольно сложный. Курс помог двукратно:
1. Перечитывая во второй раз смог гораздо лучше понять сложные концепции.
2. Упражнения заставили разобраться в сложных областях до конца (например, в макросах), т.к. при чтении книги кажется «В общих чертах понятно, потом, когда понадобится вернусь и доразбираюсь».</p>

<p>Хотя упражнений можно было бы сделать и больше. Их было настолько мало, и они были настолько простые, что курс удалось не напрягаясь закончить за три вечера.</p>

<p>Понравилась организация решения заданий. В IDE открывается шаблон решения, в котором достаточно добавить или изменить код, который проверяется нажатием одной кнопки. Не надо самостоятельно лезть в файловую систему, создавать проект, и т.д. на каждое задание.</p>

<p>Еще один плюс за то, что после прохождения первого раздела мне прислали лицензию на образовательную версию любой IDE JetBrains. Ключом не воспользовался, т.к. у меня и так приобретены лицензии на несколько IDE, включая PyCharm и CLion, но за заботу спасибо.</p>

<h2 id="недостатки-курса">Недостатки курса</h2>
<ul><li>Материал плохо упорядочен, разделы скачут. Например, материал про многопоточность на самом деле начался в разделе про стандартную библиотеку.</li>
<li>Несмотря на копирование Rust Book, целые главы пропущены, если не прочитать книгу заранее, то многие разделы окажутся абсолютно непонятными.</li>
<li>Задания в плагине Stepik для IDE IntelliJ (я использовал CLion, хотя, наверное, можно установить в любую IDE IntelliJ вместе с плагином для Rust) отформатированы плохо, масса проблем в разметке. По ощущениям, никто не вычитывал курс хотя бы однажды.</li></ul>

<p>Но в целом доволен курсом, рад, что он попался мне на глаза. Несомненно, получил от прохождения большую пользу. До этого пытался решать задачи с LeetCode на Rust и терпел неудачи из-за слабого понимания многих концепций языка. Из-за этого поставил дальнейшее изучение языка на паузу. Сейчас чувствую уверенность, что смогу справиться с задачами на LeetCode, и, возможно, начать какой-нибудь хобби-проект на Rust.</p>

<p>#rust #stepik #курсы #mooc #степик</p>
]]></content:encoded>
      <guid>https://emorozov.net/kurs-po-rust-na-stepik</guid>
      <pubDate>Mon, 16 Nov 2020 20:32:25 +0000</pubDate>
    </item>
  </channel>
</rss>