
Aldar
22.05.2016
19:16:10
зато на них быстро писать

Alexander
22.05.2016
19:16:37
Бэкенд на JS может быть не основным бекендом так-то, учитывайте
У нас бэк на .NET, а нода в виде третьего слоя, на котором фронты сами пишут красивый API не дёргая бэкендщиков - красота и рай

Влад
22.05.2016
19:17:22
JRuby?
Не пробовал, сейчас попробую погуглить бенчмарки

Artur
22.05.2016
19:17:24
Бэкенд - бэкенду рознь.

Google

Aldar
22.05.2016
19:17:26
но ноде можно какие то отдельные штуки писать

Кисик
22.05.2016
19:17:26
Ну да, чому бы и не написать какой-то кусок на ноде допустим

Влад
22.05.2016
19:18:27

Кисик
22.05.2016
19:18:50
На С++ ещё кто-то пишет?

Sergey
22.05.2016
19:19:31

Andrey
22.05.2016
19:19:34

Artur
22.05.2016
19:19:47
Давайте может не будем изображать снобов, если уж фб в своем начале жил на php потом с hhvm и т.п., то мы тут будто бэкенд интерфейса который прям к мозгу подключается собрались писать.

Sergey
22.05.2016
19:20:12
JRuby?
А вот JRuby очень тормозной, там полиморфизм сделан через dynamic call site’ы

Michael
22.05.2016
19:21:48
"Забавно, изначально React/Flux в Фейсбуке придумали, чтобы избежать циклических зависимостей (при рендеринге), но теперь они возвращаются"
Но на mobx можно следовать методологии flux, т.е. диспатчить экшны через миддвари в рамках одностороннего потока данных, как это сделано, например, у mobx-reactor. Я не писал больших js-приложений, возможно, где-то там проблема закольцованных зависимостей может попортить жизнь, но разве это не решается на этапе проектирования системы ?


Влад
22.05.2016
19:22:10
Начал гуглить про jruby, из свежего нашлось первым это :) https://blog.jaredfriedman.com/2015/09/15/why-i-wouldnt-use-rails-for-a-new-company/
"Забавно, изначально React/Flux в Фейсбуке придумали, чтобы избежать циклических зависимостей (при рендеринге), но теперь они возвращаются"
Но на mobx можно следовать методологии flux, т.е. диспатчить экшны через миддвари в рамках одностороннего потока данных, как это сделано, например, у mobx-reactor. Я не писал больших js-приложений, возможно, где-то там проблема закольцованных зависимостей может попортить жизнь, но разве это не решается на этапе проектирования системы ?
Если есть большое приложение и там архитектурно что то плохое можно сделать — это гарантированно будет сделано. Вопрос времени


Sergey
22.05.2016
19:26:00

Google

Влад
22.05.2016
19:27:05
И хочется, чтоб компилятор сразу ругался на ересь
А есть здесь люди работающие с flow? Плюсы, минусы, подводные камни?

Aldar
22.05.2016
19:28:47
Хотя, наверное если знаешь js, то нода будет хорошим выбором

Aleh
22.05.2016
19:30:13
Flux Альтернатива не MVC, а архитектуре модели на обзерв. Flux предлагает cqrs
Верно, реакт позиционировался чуть ли не на всех первоначальных презентациях как альтернатива mvc/mvvm где клубок кроссзависимостей запутывается с огромной скоростью, в том числе и благодаря обзерверам во многих фрэймворках. А теперь mobx предлагает тоже самое только с реактом в качесве рендера, это забавно.
Но с момента выхода реакта выросло целое поколение разработчиков, которые не сталкивались с этой проблемой mvc/mvvm и они с рвением кинулись к "новому" подходу :)

Влад
22.05.2016
19:30:14

Vladimir
22.05.2016
19:39:55
flow Владимир горячо реконмендовал, вот его презентация с последнего nodejs митапа http://vkurchatkin.github.io/talks/flowscript/#1

Влад
22.05.2016
19:45:39

andretshurotshka?❄️кде
22.05.2016
19:54:00
а почему не тайпскрипт

Artur
22.05.2016
20:07:05
Потому, что TS это транспилер + расширение языка от MS, а Flow - проверка типов (Flow is a static type checker )
Если нужна простая статическая типизация, Flow самое оно.
Насколько я понимаю, для ректа возможно даже лучше Flow и юзать.
http://flowtype.org/docs/react.html

Aleh
22.05.2016
20:28:08
Так особо нет разницы
плюс у flow - его удобно юзать прямо в babel, а у ts свой отдельный компилятор. Но у ts уже есть неплохие тулзы как-то комплитер, рефакторинг и goto

Artur
22.05.2016
20:36:08
Так особо нет разницы
Есть. Flow static type checker, а TS расширение языка (транспилер в JS) со статической типизацией.

Aleh
22.05.2016
20:36:21
http://flowtype.org/docs/five-simple-examples.html#2-adding-type-annotations
flow тоже имеет расширение синтаксиса, и женерики там есть. Интерфейсов разве что нет)

Artur
22.05.2016
20:38:13

Google

Artur
22.05.2016
20:38:21
Т.е. в принципе, TS этот тот же babel.

Aleh
22.05.2016
20:38:48
ну, там есть некоторые фишки из stage1
декораторы и async-await

Artur
22.05.2016
20:39:08
В flow?

Aleh
22.05.2016
20:39:14
в ts
да, я тоже считаю отдельный от babel транспилер минусом
но это единственное серьезное различие с flow
но эти async/await и декораторы вроде отрубаются или отрубались, я вот не помню(активно их юзаю, не отключал, а наоборот врубал как только добавили)

Artur
22.05.2016
20:41:06
Ну так это и есть основное отличие. TS транспилер со встроенным "flow", а "flow" самостоятельная тулза, которая может быть частью экосистемы в babel.
Про отличие и спрашивали :)

Aleh
22.05.2016
20:41:43
ну, ts может компилить в es6, а дальше под нужные экосистемы с плагинами babel комплими во что угодно или оставляем под нодой

Artur
22.05.2016
20:42:05
TS кстати отстает от бабеля на сегодняшний день.

Aleh
22.05.2016
20:42:07
мы юзаем такой флоу, меня не устраивает es5 код ts

Artur
22.05.2016
20:42:10

Aleh
22.05.2016
20:42:15
ну, мы так юзаем

Artur
22.05.2016
20:42:26
Для фронта я так думаю

Aleh
22.05.2016
20:42:30
потому что как уже заметили, отстает

Artur
22.05.2016
20:43:01
Ждем 2 и 2.1 TS :)

Aleh
22.05.2016
20:44:58
вот бы кто запилил babel-plugin-typescript )
кстати, я же прав, что на основе flow нет еще refactoring/completer/goto решений?

Google

Anton
22.05.2016
20:52:33
В вебшторме 2016 есть, но довольно слабенькое
Для атома вроде плагин был

Aleh
22.05.2016
21:16:54
ну, вебшторм сам в себе, он и js мог, но не стоит)

Alexander
22.05.2016
21:19:19
Т.е. в принципе, TS этот тот же babel.
Мы как-то делали сравнение, к слову, и на выходе у TS какой-то более приятный код получается, и более компактный и более читабельный (хотя кому какое дело :)), так что решили его вместо babel и юзать

Aleh
22.05.2016
21:22:35
@StGeass а какие версии сравнивали?

Alexander
22.05.2016
21:25:47
Это было пару месяцев назад, так что скорей всего 6.7.x с TS 1.7

Admin
ERROR: S client not available

Алексей
23.05.2016
02:58:08
Народ, а какой boilerplate для react можете посоветовать?

Paul
23.05.2016
03:34:35
@DenisIzmaylov "www.moscownodejs.ru took too long to respond. This site can’t be reached"

Xenobyte
23.05.2016
05:23:53
Всем привет. Подскажите пожалуйста по Draft.js:
Есть форма редактирования комментариев (Editor), есть кнопка "отправить комментарий". Теперь сама проблема, как заставить все это отправлять комментарий? Не пойму как связать кнопку, editor и чтобы комментарии отправлялись.

Aleksey
23.05.2016
06:08:32

Artur
23.05.2016
06:38:40

Alexander
23.05.2016
07:52:16
я написал небольшую обертку для редукса которая позволяет коннектить компонент к срезу редуксовского стейта и работать с ним в стиле чисто реактовского setState. В разы уменьшает количество бойлерплейта. Зацените https://medium.com/@nosovsh/redux-without-reducers-actions-and-constants-wat-72fcd838c641#.b14h8aadt

Andrey
23.05.2016
08:02:43
вроде ок, но только елси в первом примере перевести на stateless, там тоже будет локоничнее )

Alexander
23.05.2016
08:11:17
я специально во всех примерах сделал не стейтлесс, что бы было по честному) потому что не везде получится использовать
И погоди, как раз в первом примере stateless не получится, там же как раз нужен реактовский стейт))

Sergey
23.05.2016
08:26:04

Kich
23.05.2016
08:26:51
Некорректное сравнение. В итоговом коде всё равно есть actions.js и прочая шняга
если я правильно понял

Alexander
23.05.2016
08:27:46
нет, в итогово нету

Google

Sergey
23.05.2016
08:27:47

Alexander
23.05.2016
08:28:42
https://gist.github.com/nosovsh/38fda16f55df6f61ca316bf1729f8163#file-myformreduceless-js

Kich
23.05.2016
08:38:44
А, ну мы получается тригеря setState из компонента, диспатчится некий сгенерированный экшон, который приходит в редюсер и дальше всё как обычно?

Alexander
23.05.2016
08:39:59
потом редюсер из либы его перехватит и сам извенит стейт. То есть больше писать редюсеров не нужно

Sergey
23.05.2016
08:42:30

Alexander
23.05.2016
08:42:43
то есть если сделать setState({'value': 'blablah'}) в компоненте, который обернут в connectSlicedState('contactsPage.leftPanelWidget')(Component), то в редуксовском стейте изменится(или добавится) вот эта часть стейта: contactsPage.leftPanelWidget.value на 'blablah'
ну благодаря ей можно избавиться от локального стейта, да. Он ей не нужен. Но ничто не мешает использовать и то и то

Sergey
23.05.2016
08:43:44

Alexander
23.05.2016
08:44:03
ща

Sergey
23.05.2016
08:44:05
Ну или gist хотя-бы

Kich
23.05.2016
08:44:11
хм, неплохо. Но вот экшоны, которые приводят к запросам на сервер наверно лучше бы вынести отдельно
Есть ещё один подход. Но в принципе согласен, что много боилерплейта приходится писать https://github.com/erikras/ducks-modular-redux

Alexander
23.05.2016
08:47:00


Sergey
23.05.2016
09:05:17