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

Как бы то ни было, несколько месяцев назад я начал работать над веб-приложением для колл-центра, который должен управлять назначениями своих клиентов (врачебные практики). Я впервые использовал Ruby on Rails в его последней итерации (5), действительно заинтересовавшись новым ActionCable, который позволяет вам использовать веб-сокеты из коробки. И это сделало свою работу. Но больно.

Даже если DHH и его участники работают великолепно (я далеко не настолько хороший программист, чтобы быть критичным), у меня быстро появилось много строк javascript для обновления всех элементов интерфейса. Я знаю, что это повторяющаяся проблема при создании SPA, и я уже пробовал известные фронтенд-фреймворки (Ember, Angular и т. Д.). Я считаю, что они также добавляют много сложности, поэтому я решил остаться в стиле Rails, который заставляет меня делать вещи простыми.

Но несколько лет назад у меня была возможность поработать с Meteor с большим удовольствием. В то время ему не хватало некоторых функций, но ощущение «вдыхания жизни» в проект очень быстро напомнило мне первые часы с Rails. Поэтому я решил попробовать его еще раз в выходные на его версии 1.2 с React в качестве фронтенд-библиотеки. И я переписал весь код примерно за 6 часов и, что самое главное, получил лучший результат.

Не поймите меня неправильно, я не говорю, что это техно лучше, чем другое (когда вы хороший программист, вы все равно делаете хороший код), но связь между Meteor и React работает как шарм, Meteor как проводник, а React как первая скрипка.

Слова Пита Ханта о мышлении в React из официальной документации (https://facebook.github.io/react/docs/thinking-in-react.html) совершенно логичны: вы создаете приложение с (почти) тот же подход, который вы создаете в своей голове. Одностороннее общение между родительскими и дочерними компонентами - отличная идея, которая предоставляет простой для отладки и очень понятный код.

В заключение я должен признать, что из Facebook может получиться что-то хорошее ;-) (я не большой поклонник этой услуги), и я планирую взглянуть на GraphQL, чтобы узнать, действительно ли это удобно или просто добавляет сложности по сложности. Я также приветствую работу, проделанную командой по ЦРТ, которая сделала Meteor действительно конкурентоспособным фреймворком. Надеюсь, они смогут помнить о магии, которую имеет Meteor в начале, как это делает Rails.