Pull to refresh

Comments 12

UFO just landed and posted this here
Вот код реализации Renderable в компоненте LoginComponent.

impl Renderable<LoginComponent> for LoginComponent {
    fn view(&self) -> Html<Self> {
        html! {
стена html
        }
    }
}

Выглядит так, как будто о template engine автор статьи и не слышал.

Или слышал?

P.S. Я вижу, что перевод, тем не менее, раз статью перевели — наверное автор поста хоть сколько-то шарит в теме. Или нет?
Есть различные темплейт-движки для раста, но лично я например ими не пользовался — делать фронт на каком-нибудь реакте или вью мне кажется логичнее.

Поясните, а зачем нам template engine, если мы можем компонетны с кусками html определять прямо в коде?

Разъясните пожалуйста вашу мысль.

Есть два разных подхода к разработке фронтэнда: первый — это статически описывать разметку в шаблоне и добавлять вкрапления исполняемого кода; второй — это создавать фронтенд программно, а для упрощения кода по созданию отдельных элементов использовать вкрапления DSL-синтаксиса, описывающего структуру элементов. Вот как раз второй подход и используется в yew, как и в React/JSX.

Да, это выглядит рационально в 2к18 (дискуссию о неоптимальности и быстродействии фтопку).

Дело в том, что в приведенном примере я увидел что-то похожее на спагетти-код. Что и породило вопрос.
Скажите, я правильно понимаю, что Diesel работает синхронно?
Т.е. поток исполнения будет остановлен пока не придёт ответ от БД?
Да, но можно использовать пул соединений, например, через r2d2-diesel.

Работа с базой происходит в отдельном потоке, обработчик http запроса асинхронный и останавливаться не будет

Rust — действительно классный язык. Его концепции заставляют обратить на себя внимание с первого знакомства. И соглашусь с автором первого комментария, что этот язык однозначно станет очень востребованным. Правда он отнюдь не для новичков в программировании. Я сразу же попытался использовать его на production проектах и… возникли некоторые сложности. Почти все названные технологии были опробованы мною. Я пробовал создать на Rust rest api, web приложение и работал с базой PostgreSQL.

После некоторого времени, я пришел к выводу, что использовать его на production WEB проекте будет затруднительно. Доступные фреймворки для Rust — активно развиваются, что означает что они сильно меняются. Некоторые выпадают из саппорта (Iron), появляются новые (Rocket, который пока что использует Rust Nightly). То что сейчас доступно для Rust можно отслеживать на http://www.arewewebyet.org . Самые важные фрейворки и библиотеки уже доступны, спасибо за это сообществу Rust, которое стремится соблюдать Закон Парето :)

Но той гибкости и разнообразия выбора как у «старых» языков веб программирования пока у Rust нет. И развернуть веб приложение на нем — значит быть готовым к большим переменам и дефициту. Но, ничего не мешает писать на нем внутренние системные rest api для решения проблем «узких» мест. Например системы анализа, логирования итд. Ведь скорость работы у Rust по сравнению с другими языками очень даже приличная. А ведь Rust еще только развивается.

Время Rust на вебе придет и это ускорится в тот самый момент, когда появится полноценная IDE, например от Jetbrains.
Я как раз планировал написать статью по сравнению экосистем Rust и моего текущего основного ЯП (в данный момент — C#).

Использовать раст как раз в web проекте очень просто — берете actix и пользуетесь. А вот по другим фронтам все не так очевидно.

Скорость раста — приятный бонус, но не основная его цель, по крайней мере мне так кажется. В общем, будет время — напишу обязательно.
Sign up to leave a comment.