Юрий Корниенко - блог

Software Engineer

Решил как-то я улучшить свой личный сайт

И задумался, а почему бы не перевести сборку на что-то основанное на Rust, а также этот раздел сайта и блог берет истоки отсюда же...

Взял rspack - это целая экосистема тулзов по сути, а касательно сборки тут все как я люблю и конфиг в стиле webpack со всей мешурой. К удивлению, сборка даже "чисто на глаз" в разы быстрее чем на webpack, прям blazing fast.

Потом взялся попробовать что-то для создания раздела с блогом на своем сайте, поигрался с rspress (от rspack), но для моей задачи не подошло, потом увидел неплохой вариант - zola, но недолго подумав, решил - а чего бы не написать свой Static site generator для блога на Расте ?

Пара глубоких вечеров и вуаля - первая версия SSG готова: https://github.com/geooooo/ssg_blog_rs (стоит оговориться что это проект в первую очередь для себя, но я породил нечто, что буду допиливать время от времени)

По сути, посты пишутся пока-что на упрощенном Markdown + yaml metadata в заголовке, есть глобальный json конфиг с базовыми настройками и запуск сборки одной командой, посты лениво подгружаются при прокрутке вниз.

Работы еще предстоит куча: просятся прям многопоток при сборке, dev сервер + watch режим, кэширование и инкрементальная сборка, прочие утилитарные скрипты для улучшения dev experience, отлов и вывод подробных ошибок на всех этапах и еще много чего можно выдумать чтобы развивать.

Но сколько пришлось конечно js+python скриптов написать чтобы выкачать/перегнать информацию о всех постах которые я писал на других платформах и затолкать в свой блог, еще то веселье.

Что существует в мире Rust для создания приложений с UI

Это связано с моим небольшим ресерчем для потенциального пет-проекта.

Нативные варианты:

  • Гном-гномыч (Gnome) и gtk-rs - это биндинги для Сишных библиотек gtk
  • slint - выглядит очень зрело и есть свой DSL для написания самого UI
  • iced - пока-что активно развивается, но выглядит тоже интересно
  • egui - вот это, на мой взгляд, самый любопытный вариант

Все, кроме gtk - написаны на Rust.

Позволяют писать под разные платформы и утилизируют GPU, вот у egui (на скрине) есть даже демо приложение с примерами прямо в браузере. Есть и другие пакеты вроде rui, druid написанные на Rust, подходящие для создания UI.

Упомяну еще коротко, что есть у Rust по части фронтенда и веб:

  • Tauri - aka Electron, фронтовый слой пишется на веб технологиях, а backend часть на Rust
  • Yew, Leptos - фреймворки для написания фронтенда полностью на Rust

Имхо цифры и проценты в резюме - это вранье

Вот который раз сижу и ломаю голову: а какие цифры по достижениям я должен написать в своем резюме...

Конкретные достижения, успехи и прочее достаточно легко и прозрачно складываются в текст и факты, но какие-то конкретные цифры/проценты/коэффициенты то откуда знать ? Часть фактов о работе вообще попадают под NDA, с какой кстати я должен нарушать деловые соглашения с прошлыми работодателями.

Откуда рядовой разработчик знает сколько выручки он принес или вот каждый разработчик прилетает писать очередной проект и вот прям сидит по хардкору занимается профилированием потребления памяти, cpu, gpu, io операций, 100500 fps на рендеринг и т. п. или надо писать процент покрытия кода юнит тестами в репозитории ?

Ну вот типичный случай - выбрал инструмент для реализации задачи, не наговнякал в коде и тут прям в заслуги писать какой я молодец и не похерил заложенные возможности по производительности языка/фреймворка/иного инструмента, гениально.

Вообще эти цифры больше выглядят пылью в глаза и синтетикой, которая больше походит на вранье.

И эти цифры я так полагаю выглядят примерно так: "Я рептилойд с альфы Центавры, пишу хайлод в межгалактическом бигтехе для кварковых ядер в биллион потоков и сикстилиард запросов в секунду. Изобрел 100 тыщ пространственных чертолетов на варп двигателе, вообще женат на эльфийке, а живу на личной карликовой планете с плантацией из фиников".

Я реально не понимаю что должен написать и отражать в этих ключевых показателях без бреда и вранья.

Пока нет нормальной работы

Самое время делать пет-проекты, практиковаться и погружаться в экосистему Rust. Продолжаю выдумывать себе задачи на разные темы, дабы практиковаться в Rust, но еще как плюс - сделать себе портфолио на гитхабе с различными проектами на Rust.

В частности вдохновился и написал с нуля на Rust cli приложение крестики-нолики по мотивам очень давнего своего проекта под ms dos на Си: https://github.com/geooooo/ox_rs

Как говорится, надо все переписать на Rust 😂. Этот проект был в частности - ресерчем на тему разработки cli ui на Rust (тут я выбрал пакет - crossterm, он идеально подходит для задачи).

Далее есть мысли написать простенький графический редактор на Rust (опять же по мотивам, но сильно переосмысленный мой давний проект на Си+Ассемблере под ms dos). Моя цель именно нативный ui, не Electron/Tauri с фронтом на Web технологиях вроде html/css/js и не wasm.

Я провел интересный ресерч по этой теме и пожалуй напишу свои мысли отдельным постом.

Типичные отклик и ответ на ХыХру

"Как говорится: шутка да в ней намек, добрым молодцам урок."

P.S. Естественно это нереальная переписка и не забывайте критически мыслить о том что смотрите в интернетах, особенно когда видите откровенную дичь.

Но в целом хорошо отражает реалии на ХыХру.