
Alex
19.03.2017
16:55:04
Драный т9 ))

Алексей
19.03.2017
16:57:23
Поэтому нет единого бойлерплейта.
Каждый под себя всё настраивает.

Google

Alex
19.03.2017
16:58:20
>node -v
v7.7.2
>node -e "const o1 = {a: 1}; const o2 = {b: 2, ...o1}; console.log(o2);"
[eval]:1
const o1 = {a: 1}; const o2 = {b: 2, ...o1}; console.log(o2);
^^^
SyntaxError: Unexpected token ...
в функциях - можно
в массивах - и подавно
в объектах - ыыы, ждем:)

AlexMist
19.03.2017
16:58:52
Все эти туториалы и best practices , такие поверхностные, 1 ресур 1 модель. Бизнес логики и ACL/RBAC вообще нет. И видимо по ним все эти boilerplate проекты пишутся. Не поиму, кто их плюсует.

Алексей
19.03.2017
17:00:11
Так что похоже пока велосипедостроительством придётся заниматься. Добро пожаловать в удивительный мир ноды.
Я пробовал express и Sequelize и мне что-то не особо понравилось. Теперь тыкаю koa2 и typeorm.

AlexMist
19.03.2017
17:01:56
И какая разница , я особо не вижу.
Тут смысл в проектировании "системы" , получается у всех свой абстрактый фреймворк ))

Alex
19.03.2017
17:03:11
@alexmist вопрос специально простецкий - идет сбор мнений))
для чего полезна orm, особенно в node?

Алексей
19.03.2017
17:03:15
koa2 поддерживает async/await из коробки в middleware и обработчиках запросов, а typeorm похож на Hibernate, а лучше Hibernate ещё ничго похоже не придумали.
Чтобы простые запросы не писать руками.

AlexMist
19.03.2017
17:06:37
Тут мне понравилось разделение логики, но потом начинает выглядеть очередным велосипедом )
https://docs.feathersjs.com/

Алексей
19.03.2017
17:07:25
я концепцию хуков вообще не приемлю
я как-то экспериментировал с автоматизированными обработчиками CRUD операций и понял, что лучше кодогенерации с последующим ручным изменением кода пока ничего нет

Google

AlexMist
19.03.2017
17:09:56
Согласен! Либо автоматизация простых операций, не больше!
Я спросил про болванку, т.к. думать нужно ) А времени мало. Потом рефракторить всё равно.

Алексей
19.03.2017
17:11:01
Просто в сгенерированный код можно вносить сколь угодно значительные изменения, которые потом можно будет прочитать, а с хуками так скорее всего не выйдет.

Aleksey
19.03.2017
17:11:01

Alex
19.03.2017
17:14:18
вопрос широкий с кучей тонкостей.
одно можно сказать с уверенностью: только async-await и никаких коллбеков на километр не подпускать

Алексей
19.03.2017
17:14:25
Блин, вот что сильно бесит в JS, так это куча методов работы с асинхронностью: коллбеки, генераторы, промисы, async/await. Надоело уже.

Alex
19.03.2017
17:15:13
этот момент весело отбрасывает express, feathers и loopback (к сожалению)

Алексей
19.03.2017
17:15:30

Alex
19.03.2017
17:15:46
ну ты сам тогда все понимаешь что зачем

Алексей
19.03.2017
17:15:52
недавно на хабре видел про клон Laravel на JS, так там везде yield

Alex
19.03.2017
17:15:53
откуда злость?)
ну зря
ищо б джангу так портанули бы

Алексей
19.03.2017
17:16:13
Зоопарк же

Alex
19.03.2017
17:16:35
но
я сам в 2014 писал на co и пищал от щастья.
потом s/function*/async function/ и вуаля:)
так что не зря, а tj молодец

Алексей
19.03.2017
17:17:16
А асинхронность - это как бы киллерфича NodeJS. И такой бардак.
Если взять тот же Go, куда tj сбежал, так там только один способ работы с параллельными операциями: горутины с каналами.

Alex
19.03.2017
17:18:23
киллерфича - это использование libuv под капотом
а внешняя асинхронность - это вообще другая сущность и категория вещей
ну омонимы

Google

Alex
19.03.2017
17:18:40
ква:)

Алексей
19.03.2017
17:20:09
Я не вижу libuv, да хоть там голый epoll с select. А вот зоопарк из генераторов с промисами я вполне ощущаю.

Roman
19.03.2017
17:32:24

Dmitry
19.03.2017
17:36:37
tj это tjournal ?

Arseniy
19.03.2017
17:39:45

Dmitrii
19.03.2017
17:47:36

Алексей
19.03.2017
17:49:05

Alik
19.03.2017
18:02:23

AlexMist
19.03.2017
18:06:50
Про это я и говорил. Структура простая.
Спасибо.

Дмитрий
19.03.2017
18:11:11

Алексей
19.03.2017
18:12:00
ну колбеки кстати тоже можно промисифицировать

Алексей
19.03.2017
18:12:44
правда насчёт взаимоотношения генераторов и промисов я не уверен

Alex
19.03.2017
18:15:28
эм
генераторы не сводятся к промисам, у них там своя стратосфера
коллбеки можно, да)
в общем
про коллбеки нужно просто быть в курсе как они устроены и работают (что там знать-то)
про генераторы - быть в курсе как их использовать
все всегда сводить к промисам
и везде использовать async/await
так победим
это по тем 4 пунктам
так победим это засилье коллбеков в npm

Алексей
19.03.2017
18:19:26
генераторы можно обернуть в промисы, и скорее всего можно ждать промис в генераторе
но лучше уж всегда использовать async/await или цепочку промисов

Google

Дмитрий
19.03.2017
18:20:10
Правда, скоро будут async generators)

Алексей
19.03.2017
18:22:39
да ну нахрен

Дмитрий
19.03.2017
18:23:24
?
Ну по сути это создали тупо для for await of

Admin
ERROR: S client not available

Дмитрий
19.03.2017
18:24:53
Хотя это уже реально убер-функция получается, и множественные возвраты из функции, и асинхронность сразу

Vladislav
19.03.2017
18:37:03
Кто-то знает решение для задачи авто пула с git и перезапуска сервера в случаи если есть изменения на ветке?

I
19.03.2017
18:54:48
Тебе нужен Continuous Deployment

Denis
19.03.2017
19:12:46
Или просто deploy.sh :D

Vladislav
19.03.2017
19:13:58

I
19.03.2017
19:14:46
Где код держите? Гитхаб, битбакет, гитлаб, локальный гит-сервер?

Михаил
19.03.2017
19:17:07
svn

Vladislav
19.03.2017
19:17:13

I
19.03.2017
19:18:14
Посмотрите, в бакете есть интеграции в разные сервисы. Я лично circleci гоняю. Тесты, проверки, деплой автоматом

Vladislav
19.03.2017
19:18:52
Спасибо за совет. Посмотрю сейчас.

Klim
19.03.2017
19:19:30

Aler
19.03.2017
22:15:28
доброй ночи, господа. Можете посоветовать из всего многообразия серверных фреймворков что-нибудь? Нужно для API небольшого
Очень хотелось бы что-то дружелюбное, быстрое и использующее es6

Mikhail
19.03.2017
22:21:24

Google

ENAMETOOLONG
19.03.2017
22:49:24

Aler
20.03.2017
01:16:55
оно какое-то никакое
посмотрел, выглядит красиво. но там же ничего нету

Anton
20.03.2017
01:36:28
На хабре вот Lavarel в JS инкарнации рекламируют. Там много чего есть

Aler
20.03.2017
01:47:13
да, пока он выглядит самым свежим

Denis
20.03.2017
01:53:26
Есть ссылка под рукой?

A.
20.03.2017
01:56:57
Оно https://habrahabr.ru/post/324220/ ?

Vladimir
20.03.2017
06:12:12

Mikhail
20.03.2017
06:22:45

Paruyr
20.03.2017
06:28:07

Aler
20.03.2017
07:18:55
Спасибо, выглядит действительно интересно. Я пропустил момент с асинхронностью через генераторы. Я могу их заменить на async/await? Или нужно будет враппер написать?

Artur
20.03.2017
07:20:07
для koa2 можешь использовать просто async/await без враппера

Aler
20.03.2017
07:21:57
А например в strapi? Судя по ответу они не взаимозаменяемы?

Aleh
20.03.2017
08:22:42
ну придется врапер юзать, тот же co, который вы потом await делаете

Mikhail
20.03.2017
08:49:46

Aleh
20.03.2017
08:50:16