
S
11.04.2016
20:50:34
ну допустим есть миддлвары эти всякие, но с мускулем мне как работать, как оно с реальными данными работает?
похоже очень на swagger

Алексей
11.04.2016
20:55:54
есть обертки вокруг mongodb, но это лишнее, ведь иногда нужно что то из редиски добрать или из других бд

Google

S
11.04.2016
20:57:21
кароче, GraphQL это хорошо для фронтенд разработчика, но жуткий геморрой для бэкенд разработчика
возможно игра стоит свеч, когда у тебя куча клиентов, ведь GraphQL писался как раз для моб. приложений, т.к. стандартного апи фейсбуку стало не хватать, для выражения связей


Алексей
11.04.2016
20:59:00
описываешь типы, откуда что добирать
import {
GraphQLObjectType,
GraphQLEnumType,
GraphQLList,
GraphQLString,
GraphQLDate,
GraphQLPeer,
GraphQLMessage,
GraphQLUser
} from 'src/graph';
import {
Message,
Peer,
User
} from 'src/models';
export const GraphQLTicketState = new GraphQLEnumType({
name: 'TicketState',
values: {
open: {},
adminCloseRequested: {},
userCloseRequested: {},
closed: {}
}
});
export const GraphQLTicket = new GraphQLObjectType({
name: 'Ticket',
fields: () => ({
_id: {
type: GraphQLString
},
chat: {
type: GraphQLPeer,
resolve(source) {
return Peer.findOne({
customId: source.chat,
channel: source.channel
});
}
},
date: {
type: GraphQLDate
},
assignedTo: {
type: GraphQLUser,
resolve(source) {
return User.findById(source.assignedTo);
}
},
assignedToHistory: {
type: new GraphQLList(GraphQLUser),
resolve(source) {
return User.find({
_id: {
$in: source.assignedToHistory
}
});
}
},
state: {
type: GraphQLTicketState
},
messages: {
type: new GraphQLList(GraphQLMessage),
resolve(source) {
return Message.find({
ticket: source._id
})
}
}
})
});
тут монгуз обычный юзается
описываешь сам запрос
import Promise from 'bluebird';
import {
GraphQLList,
GraphQLInt,
GraphQLTicket,
GraphQLTicketState,
GraphQLObjectID
} from 'src/graph';
import {
Ticket
} from 'src/models';
export const ticket = {
type: GraphQLTicket,
args: {
id: {
type: GraphQLObjectID
}
},
resolve(source, args) {
//@TODO check
return Ticket.findOne(args.id);
}
}
export const allTickets = {
type: new GraphQLList(GraphQLTicket),
args: {
state: {
type: new GraphQLList(GraphQLTicketState)
}
},
resolve(source, args, {
rootValue: {
me,
organization
}
}) {
if (me.cannot('getAll', Ticket)) {
return Promise.reject(new Error('access_denied'));
}
let query = Ticket.find({
organization: organization._id
});
if (args.state) {
query = query.where('state').in(args.state);
}
return query;
}
};
как бы все


S
11.04.2016
21:00:46
я эту же логику могу написать на клиенте, при этом на сервере достаточно ручек для каждой модели только
профит то в итоге в чем? что у тебя на клиенте абстракция от логики бэкенда?

Алексей
11.04.2016
21:03:02
я вроде писал уже. абстракций тут нет никаких.

S
11.04.2016
21:05:16
В GraphQL состав результата запроса диктуется клиентом и содержит только необходимый набор данных - лишь то, что запросил клиент и ничего лишнего. Запрос оформляется в форме иерархического набора полей, а ответ приходит в отзеркаленном формате JSON с заполнением полей необходимыми данными. Корректность запроса обеспечивается через встроенную систему проверки типов.
это и есть абстрагирование от доступных возможностей бэкенда

Алексей
11.04.2016
21:06:08
т.е ты фразу ничего лишнего назвал абстрагированием? ну ок
я бы сказал это унификация интерфейса апи. потому что знать схему тебе все равно нужно, что бы расспарсить приходящие данные.

S
11.04.2016
21:09:42

Google

S
11.04.2016
21:10:20
но тут еще и типов полно новых

Алексей
11.04.2016
21:15:02
ну цель сваггера это задокументировать и предоставить rest апи

S
11.04.2016
21:15:57

Алексей
11.04.2016
21:16:51
ну это удобно, поэтому и появился graphql, только он заолдскулил рест запросы

trump ? trump ? hillary
11.04.2016
21:27:04
не взлетел еще с мая 2015

Denis
11.04.2016
21:33:56
React три года взлетал
?

Svyatoslav
12.04.2016
09:53:38
Господа pro.js’еры
Кто-нибудь использовал переменную UV_THREADPOOL_SIZE и для чего?

Aleksandr
12.04.2016
09:55:55
node-sass'у иногда не хаватает памяти для обработки большого количества файлов, если я не ошибаюсь
и он подвисает просто
эта переменная вроде как решает проблему

Svyatoslav
12.04.2016
09:56:23
Вот да, на сборке sass как раз глох процесс
Так она количество выделяемой памяти увеличивает или как-то более тонко работает?

Aleksandr
12.04.2016
09:57:10
понятия не имею, честно говоря, я не смотрел исходники
я после этих плясок с node-sass на postcss пересел

Вадим
12.04.2016
10:01:19
а как же stylus?

Renat
12.04.2016
10:02:25
на проде используем stylus + postcss. к sass возвращаться нет никакого желания

Вадим
12.04.2016
11:33:43
sass не нужен, если есть stylus
у него вроде вообще никаких преимуществ перед последним нет

Google

Renat
12.04.2016
11:35:54
у бутстрапа нет версии для stylus))))
шучу
это – е помеха

Konstantin
12.04.2016
11:36:00
Для мира JS stylus удобен тем, что он написан на JS. Sass, насколько я помню пришел из мира Ruby (On Rails).

Вадим
12.04.2016
11:38:00
я рассуждаю с точки зрения функционала и возможностей

Konstantin
12.04.2016
11:38:23
Нашел тут фишку, которой в Стайлусе нет, но есть в Сассе

Вадим
12.04.2016
11:38:31
о, как - покажи
забавно)

Andrey
12.04.2016
11:39:13
ну это явно не киллер фича)

Renat
12.04.2016
11:39:14
Вадим, в стайлус есть все что необходимо: итераторы, переменные, микшины
синтаксис лекговесный
и скрость сборки выше, чем у сасс или лесс

Вадим
12.04.2016
11:39:36
Ренат, да, я же тоже за стайлус

Renat
12.04.2016
11:39:49
оуп, точняк)

Denis
12.04.2016
11:45:39
а JSS никто не использует?

Aleksandr
12.04.2016
11:48:29
css-modules же, ну

Renat
12.04.2016
11:51:15
мне не всегда кажутся удобными
хотя
с приходом воркфлоу
говнеца в коде стало меньше

Google

Dmitry
12.04.2016
11:52:06

Denis
12.04.2016
11:54:41
А в React Native?

Alexander
12.04.2016
11:55:19
А в нем есть варианты кроме JSS? Или как это схема называется.

Meg
12.04.2016
12:07:19
Всех с праздником)

Alexander
12.04.2016
12:08:23
?

Admin
ERROR: S client not available

@proDOT
12.04.2016
12:51:36
Пишите css скрипты и хтмл на лисп - не ошибетесь

Alexander
12.04.2016
12:51:56
чистый стэк

@proDOT
12.04.2016
12:52:04
Один синтаксис один язык один фюрер

Denis
12.04.2016
12:57:23
Читаем, ставим лайки, ретвитим :) https://twitter.com/DenisIzmaylov/status/719871442440077312

Sergei
12.04.2016
13:08:32

Alexander
12.04.2016
13:09:35

@proDOT
12.04.2016
13:10:01
Что там?

Sergei
12.04.2016
13:13:14
призыв ставить лайки и длинный пост на английском в корпоративном блоге

Dmitry
12.04.2016
13:40:38
Ну так корпоративный блог вроде не Дениса.
А чем плох пост на английском?

Evgeny
12.04.2016
13:52:39
Хорошо: давайть ссылку с комментарием почему эта большая статья стоит прочтения и лайков.
Плохо: вбросить ссылку на малоизвестный ресурс.

Alexander
12.04.2016
13:53:36
Хорошо: привлечь внимание ?

Evgeny
12.04.2016
13:56:34
так Sergei S и написал — спам

Sergey
12.04.2016
14:01:37
О_О вы странные. Вам только хабр подавать надо и на русском, а если нет, то популярно объяснить и перевести? ну нафиг

Alexander
12.04.2016
14:07:26

Google

aodzaki.toko
12.04.2016
14:08:26


Sergey
12.04.2016
14:08:46
Ссылка на твит в телеграме != сам твит (к которому в интерфейсе хотя бы сниппет подтянется) != ссылка и краткое описание.
В целом, думаю, никто здесь не против ссылок на собственные статьи, но только не в формате «а почитайте нового меня». Про английский промолчу: у меня с ним проблем нет, но я понимаю, что тот же Хабр не просто так популярен несмотря на наличие сотен аналогичных ресурсов на английском.
про английский я дополню, что по факту проблемы есть у многих с ним. Но без него, особенно в js, вообще не представляю, как быть. Самому приходилось писать в IRQ канал разрабам Marionette, потому что их документация отставала от релизов

aodzaki.toko
12.04.2016
14:10:48
Чую неладное, Александр долго пишет

Alexander
12.04.2016
14:11:10
Меня давно интересует, почему люди читают Хабр?
По той же причине, по которой ходят в кинотеатры смотреть фильмы в дубляже и читают книги на русском языке. Так немного проще жить, и это кормит целую индустрию, которая этими переводами занимается :)
Я тщательно формулировал!

aodzaki.toko
12.04.2016
14:12:02

Alexander
12.04.2016
14:13:08
Ну и еще, очевидно, не все технологии и продукты рождаются в англоязычных сообществах, логично, что и говорить на них надо не только на английском. Яркий пример — MoscowJS и прочие митапы, которые не ставят своей целью «пробиться» куда-то, а занимаются образованием и укреплением местного сообщества.

aodzaki.toko
12.04.2016
14:13:38
Может быть я не правильно задал вопрос?
Вас, уважаемый, как катамаран, "сносит" в сторону.
Почему люди читают Хабр?

Andrey
12.04.2016
14:15:26
Адекватный контент, не?

Artur
12.04.2016
14:15:39
Там постят всякие интересные штуки по разработке?

Andrey
12.04.2016
14:16:04
и не только по разработке, по менеджменту, по воркфлоу, делятся опытом люди

aodzaki.toko
12.04.2016
14:16:10

Artur
12.04.2016
14:16:17
Вообще вопрос из разряда, почему люди ходят в макдональдс
Фастфуд же

aodzaki.toko
12.04.2016
14:16:38
Я не знаю, не хожу туда.