Pull to refresh

Comments 24

О, Pug поддерживается, отлично.


Было бы интересно помимо react сравнить еще с vue (который сейчас активно пиарится и по производительности ± наравне с react). Не пробовали?

Vue.js тоже очень даже, ещё и по скорости работы хорош. Но он отталкивает меня банально тем, что он более усложнён чем Riot.js :) Плюс, до версии 2.0 у Vue.js отсутствовал серверный рендер, что сыграло решающую роль. Ибо серверный рендер нам нужен.

Увидев pug сильно удивился. Как две капли воды похож на Jade. Полез на github, и правда:


This project was formerly known as "Jade."

Не удивительно :)

UFO landed and left these words here
Имея отличное представление о внутренностях большинства web UI библиотек, советую избегать использование Riot.js, это одна из худших библиотек и девелоперы которые работают над ней совершенно не разбираются в том что они делают.

Если хочется чего-то похожего, то есть vue.js. Правда меня беспокоит отношение его автора к некоторым кроссбраузерным проблемам, к примеру https://github.com/vuejs/vue/issues/3722. React.js в этом плане гораздо лучше, и для неопытных девелоперов гораздо больше подойдёт, тк решает очень много подобных проблем.

>В то же время, если рассуждать о производительности дальше, то я уже давно смотрю в сторону Inferno: посмотрите ещё раз на таблицу производительности библиотек. Эта библиотека практически идёт один в один с тестами на основе ванильного JS. Если честно, это действительно впечатляет.

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

Я уважаю ваш опыт и мнение. Но не нужно быть таким категоричным. Вспомните тех многих противников PHP, долгие годы ведущих яростную миссионерскую деятельность против него. Всё это часто доходило до какого-то совсем страшного фанатизма, из-за чего сегодня репутация у PHP сильно подпортилась, думаю, все об этом знают. При этом, PHP решает проблемы и до сих пор живёт, к тому же, на нём ещё и пишут гигантские проекты..


Node.js вышел, миссионеры тут же объявили смерть PHP по этому случаю. Вроде бы вот она — идеальная платформа для веб-разработки. Один язык на сервере и в браузере. Но опять что-то не сошлось… PHP не умер, а Node.js так и не смог кардинально переломить ситуацию.


Относитесь попроще к JS библиотекам. Ну да, есть там проблемы во внутренностях, да, другие парни, возможно, написали свои библиотеки где-то лучше. Но говорить, что его авторы совсем не разбираются в том что они делают — тоже как-то слишком жёстко и некорректно.


Такого чистого API нет ни у кого другого, из того, что я видел. Работает всё вполне нормально: я уже несколько лет использую Riot.js в довольно сложных компонентах. Да, там есть недоработки, за время работы я создал 4 ишью в их проекте на гитхабе. Все они были исправлены авторами библиотеки. Многие проблемы они поправили очень быстро, некоторые — с выходом релиза 3.0. Разве это не значит, что они понимают, что делают?)

>Но говорить, что его авторы совсем не разбираются в том что они делают — тоже как-то слишком жёстко и некорректно.

Ну а как ещё говорить о тех кто впаривает библиотеку тысячам благодаря лжи в своих маркетинговых статьях? Когда научатся не терять внутреннее состояние, узнают про проблемы асинхронности и инпут евентов, перестанут пихать кучу ненужного хлама в документы, этот список можно очень долго продолжать… Тогда можно будет сказать о том что наконец-то они разобрались :)

Видимо я тоже не знаю об этих проблемах, ибо я бы уже создал ишью на эту тему им) Можете рассказать более подробно, с какими-то примерами, что конкретно вы имеете ввиду? Где оно вредит разработке?

Да там ещё год назад пара людей пыталась им всё объяснять. На тему потери внутреннего состояния были очень долгие обсуждения (вроде автор snabbdom'а или какой-то другой либы безуспешно пытался это объяснять). Бывают просто разработчики, которым бесполезно что-то объяснять. Пару месяцев назад там этот чел, который пишет большую часть кода сейчас, опять продолжил говорить что ключи в реакте — это глупость :) Общаться с ними больше ни у кого просто нет никакого желания, они отлично всё понимают и у них всё замечательно. Лично я никому не рекомендую прикасаться к этому говну.
На тему авторитетов и «правильного» стиля разработки: я бы ещё вспомнил CoffeeScript, который написан совершенно не по правилам «правильной» разработки компиляторов, имеет примерно 30% негативных отзывов, но при этом является самой часто используемой заменой JavaScript. И ещё благополучно забытый всеми CoffeeScript Redux, который кто-то решил написать «по правилам» разработки компиляторов и который нахрен никому оказался не нужен. Так что «правильность» — далеко не самый важный критерий разработки софта. Кстати сам JavaScript — абсолютно «неправильный», со всеми его костылями и невнятными историческими заимствованиями. Главный критерий любого софта: «он работает и им можно пользоваться».
Вы просто не понимаете что значат цифры в этом бэнчмарке. Но это не ваша вина, просто некоторые любят использовать такие бэнчмарки в качестве маркетинговой платформы.

А можно здесь поподробнее? Я тоже приглядываюсь к Inferno, и очень хочется знать не только декларируемые преимущества, но и возможные проблемы.
  1. Вы показали как создать компоненту, но не показали как её использовать. Что если я хочу использовать эту форму в разных контекстах и в некоторых из них мне не нужна регистрация, в некоторых авторизация происходит по иному урлу, а в некоторых авторизация происходит не по e-mail, а по username?


  2. У вас тексты зашиты в вёрстку. Что если мне нужна поддержка нескольких языков? Во что превратится "этот простой и понятный код" и сколько будет стоить внедрение локализации?

Ну, это вообще-то просто анонс нового релиза. Я много чего не показал, так как не стремился написать руководство по Riot.js: для этого можно открыть их официальный сайт и почитать его. Всё прекрасно расписано, логика работы очень простая)


Вы показали как создать компоненту, но не показали как её использовать

Как её использовать, вы можете почитать в главе о монтировании компонентов.


Что если я хочу использовать эту форму в разных контекстах и в некоторых из них мне не нужна регистрация, в некоторых авторизация происходит по иному урлу, а в некоторых авторизация происходит не по e-mail, а по username

Берёте и пишете всё так, как вам надо. Для вас доступны условные конструкции, циклы, вложенные компоненты, выражения, получаемые при монтировании параметры, и так далее. Всё из того, что вы написали — легко реализуемо при нормально работающем котелке.


Что если мне нужна поддержка нескольких языков?

У нас сейчас как раз ведётся разработка мультиязычного проекта. Мы в нашем проекте передаём все строки, нужные компоненту, при его монтировании. То есть, код инициализации нашего компонента выглядит примерно так::


riot.mount('#some-div', 'my-component', {
  str: {
    firstString: { ваша логика получения мультиязычной строки },
    secondString: { ваша логика получения мультиязычной строки },
  }
})

Далее, в коде вашего компонента, пишете что-нибудь вроде такого:


my-component
    p { opts.str.firstString }
    span { opts.str.secondString }
UFO landed and left these words here
Ого! Они убрали обращение к тегам по атрибуту name? Переход на 3.0 версию не выглядит таким уж безболезненным :).

Очень правильно кстати сделали. А то раньше это реально было очень даже некрасиво сделано. Теперь всё как в React.js, есть отдельный объект refs, содержащий все ссылки на нужные dom объекты.

Ну да. Пример из док-ции:


var riot = require('riot')
var timer = require('timer.tag')

var html = riot.render(timer, { start: 42 })

console.log(html) // <timer><p>Seconds Elapsed: 42</p></timer>
давно хочу порывать эту библиотеку, но как backend разработчику тяжело вникнуть в проект, без использования starter-kit или примера todo
Sign up to leave a comment.

Articles