
Gkio
05.06.2017
15:58:18
Какой нибуть ресурс для изучения чистово кода по js

Сергей
05.06.2017
15:58:38

я люблю грин дей
05.06.2017
16:03:11
даркула не очень нравится, но лучше ничего не встречал ещё

Google

Сергей
05.06.2017
16:06:08

Eugene
05.06.2017
16:18:44
Привет. Как часто юзаете swagger при разработке API?

I
05.06.2017
16:36:50
В ноде мне не понравилось, как оно выглядит

Никита
05.06.2017
16:55:43
@chicoxyzzy https://www.npmjs.com/~chicoxyzzy — это ты?

Ҫѐҏӗѫӑ
05.06.2017
16:56:06
да

Сергей
05.06.2017
16:57:36
да
Твой плагин для еслинта, прям норм

Ҫѐҏӗѫӑ
05.06.2017
17:01:43
спс. у нас еще есть неплохие вещи тут https://github.com/shitjs

Vsevolod
05.06.2017
17:04:25

Леха
05.06.2017
18:13:34

Fedir
05.06.2017
18:20:38
swagger неплох

Roman
05.06.2017
18:46:40
Чуваки, кто хочет иметь такое в ноде:
* Controllers must be typed. It allows to cover with types all further code.
* API endpoint must be decribed only once (single source of truth, DRY)
* API must have UI and documentation
* Data must be validated automatically in runtime before getting to controller according endpoint description.
* API can be any type or format (REST, GraphQL, RPC etc.) and not be coupled with business logic

Evgeny
05.06.2017
18:49:45
Это что за сказка?

Таймураз
05.06.2017
18:52:57
Под GraphQL были бы поудобнее решения- и збс

Google

Roman
05.06.2017
18:55:42

Vsevolod
05.06.2017
19:05:53
по типу сваггера? :) вообще норм тема
и кодогенерацию туда подвезти тоже
а то подразумевается под типизированными контроллерами?

Roman
05.06.2017
19:07:33

Vsevolod
05.06.2017
19:08:25
Я вообще сам против нее, но, как обычно есть но :)

Evgeny
05.06.2017
19:08:38
Но - кодогенерация - зло

Vsevolod
05.06.2017
19:10:11
Друзья пыхари сказали, что довольно норм сгенерировало обёртку над апи
Сваггер тобишь

Никита
05.06.2017
19:11:49
Гитхаб ?

Maksim
05.06.2017
19:15:37

Ilya
05.06.2017
19:17:50
шо опять забанили

Roman
05.06.2017
19:19:17

Таймураз
05.06.2017
19:20:12

Aleh
05.06.2017
19:20:31
а, пример в папке controllers?
да, идея супер

Evgeny
05.06.2017
19:22:03
а зачем require('./controllers/controller');?

Google

Roman
05.06.2017
19:24:19

Aleh
05.06.2017
19:26:01

Roman
05.06.2017
19:27:54
получилось бы как аннотации в спринге или хелперы в джанго

Aleh
05.06.2017
19:29:09
но будущее мутновато, да(

Roman
05.06.2017
19:29:31
я в плане в бабеле же нет поддержки по дефолту

Сергей
05.06.2017
19:29:53
блуберд в зависимостях
лол

Aleh
05.06.2017
19:29:58
ну я декораторы юзанул только потому, что их проще в ast находить
чем вызов, и их лучше ts понимает, чем вызов функции с аргументом

Ilya
05.06.2017
19:30:26
mvc мутите?

Aleh
05.06.2017
19:30:32
т.е. заменить потом на вызов не беда

Vladimir
05.06.2017
19:30:53
Чет не понял как это тайпчекается

Сергей
05.06.2017
19:31:01
чет не понял че за HTTPRoutes

Ilya
05.06.2017
19:31:10

Сергей
05.06.2017
19:31:17
глобально чоль объявляет?

Aleh
05.06.2017
19:32:03

Roman
05.06.2017
19:32:04

Google

Roman
05.06.2017
19:32:35
т.е перед запуском сервера проходит статическая проверка
в итоге типы флоу + неокоторые декораторы - источник апи

Vladimir
05.06.2017
19:33:11
Как чекается что там вообще есть id
Или другие параметры

Сергей
05.06.2017
19:33:23

Roman
05.06.2017
19:33:38
примерно как в серванте хаскелевском, но там естественно язык все тянет

Vladimir
05.06.2017
19:33:50
Не, ну я не знаю как там

Admin
ERROR: S client not available

Aleh
05.06.2017
19:33:53

Vladimir
05.06.2017
19:33:59
Но здесь предполагаю что никак

Roman
05.06.2017
19:34:20
не, контроллер щас тайп чекается ок, в чем проблема

Vladimir
05.06.2017
19:34:34
Я вот такое делал по фану

Roman
05.06.2017
19:34:36
есть типы для аргументов описанные, есть для выхода функции и соотв-но ендпоинта

Aleh
05.06.2017
19:34:47
"/path", function(id: Path<number>){}
как ты проверишь, что в path вообще есть id?
это только в рантайме прокатит

Roman
05.06.2017
19:35:18

Aleh
05.06.2017
19:35:19
ну точнее, самый простой вариант это в рантайме делать)

Vladimir
05.06.2017
19:35:25
https://pbs.twimg.com/media/Cw6dImEXcAI514a.jpg:large

Roman
05.06.2017
19:35:37

Google

Aleh
05.06.2017
19:35:44
а как ты статически проверяешь?

Сергей
05.06.2017
19:36:31

Aleh
05.06.2017
19:36:44

Roman
05.06.2017
19:36:48

Vladimir
05.06.2017
19:36:54
Вот здесь статическаятипизация роутнига

Anton
05.06.2017
19:36:55

Roman
05.06.2017
19:37:07

Vladimir
05.06.2017
19:37:26
Не не, у тебя как раз статической проверки нет
Как я понял
Только динамическая

Roman
05.06.2017
19:37:42

Rafael
05.06.2017
19:37:51

Aleh
05.06.2017
19:37:58
контроллер щас это корретктный флоу код
еще раз пример HTTPRoute({method: 'GET', path: '/pet/:id'})((id: Path<number>, token: Headers<string>):
ок, есть такой параметр, как id
HTTPRoute({method: 'GET', path: '/pet/'})((id: Path<number>, token: Headers<string>):
нет такого параметра, как id
это ж только в рантайме будет падать
ну типа можно чето выдумать для статики, но это уже сбоку будет

Сергей
05.06.2017
19:39:09

Roman
05.06.2017
19:39:23

Aleh
05.06.2017
19:40:23

Roman
05.06.2017
19:40:25
соотв-но когда придут данные, ручка проверит по рантайм валидации, есть ли в пути id и да, упадет с ошибкой валидации 400