Anonymous
*asp.net mvc
но это же невозможно
Anonymous
асп компилится
Anonymous
может для каких-то конкретных типов проектов только
Artyom
асп да, но js/html/css
Artyom
для верстки только
Alexander
Я считаю, можно и dll-ку в работающем приложении подменить, было бы желание.
Anonymous
асп не так работает
Alexander
* и необходимость, конечно
Denis
Давайте проверим уровень чатика, кто уже распробовал Relay и GraphQL?
Вадим
я бы сказал не уровень, а наличие свободного времени на подобные эксперименты)
Вадим
graphQL не пробовал, но читал мануал по нему
Вадим
и мне понравилось - хочу попробовать
Evgeny
только желание, возможно на следующей неделе будем пробовать
Evgeny
я бы сказал не уровень, а наличие свободного времени на подобные эксперименты)
или работа, где используют новые технологии и много проектов ))
Denis
Часто еще и хорошо платят. За всем этим - к нам :) www.startup-makers.ru
Alex
Hiring. Hiring everywhere😊 toy_story.jpg
Alexander
Часто еще и хорошо платят. За всем этим - к нам :) www.startup-makers.ru
описание прямо как в http://noveogroup.ru/f/nodejs, уважаю
Evgeny
Денис хотел попиариться
Artyom
оу)) я смотрел graphQl - но пока не вижу смысла его использовать)
Alexander
А правда, что всех средней руки node-разработчиков в Москве купил AliBaba?
Вадим
либо я не средней руки, либо это не правда…
Artur
А просвятите на счет алибабы, зачем им node-разработчики?
Artur
С GraphQL знакомился, но пока не уверен, что он мне нужен. Хотя с React тоже самое было, долго вокруг да около ходил.
Alexander
А просвятите на счет алибабы, зачем им node-разработчики?
Понятия не имею, мне этот слух вбросил один тимлид, жалующийся, что не может найти себе нормальных разрабов на ноде.
Alex
Интересно, вывозят или тут офис разработки
Alexander
ну уж явно в Китай всех не повезут )
Kons
Кажется, у Алибабы есть в РФ офис
Alexander
Щас же дешевле всех в России держать
Вадим
Часто еще и хорошо платят. За всем этим - к нам :) www.startup-makers.ru
как прикольно кнопка в форму превращается) Запомнил)
Anonymous
отличный способ воровать идеи
Kons
За рекламу надо платить :)
Вадим
ну если уж на то пошло, то на этом ленде эта тема тоже “сворована”)
Anonymous
пойду ее сворую тоже
Kons
Это давно так?
Anonymous
да
Alexander
https://github.com/npm/npm-expansions
Dmitry
Используем graphql в продакшене
Какие проблемы были?
Alexey
Какие проблемы были?
Никаких, разве что обертку свою написали
Alex
В чем профит?
Alex
В смысле graphql, не обертки
Alexey
Можно запрашивать что тебе нужно, без каких либо модификаций на сервере
Alexey
Ну и ты не стучишься на разные роуты, роут всегда один, просто запросы шлешь разные
Alexey
Как то это более логично когда речь идет о данных, приятно получается
Alexey
Просто это другой способ общения с сервером. Кода на сервере не всегда меньше получается.
Alexey
Но следующие проекты хочется уже делать на graphql. Если речь идет об одностраничниках, приложениях вообще, как апи графкл крут и удобен.
Вадим
теперь мне еще больше захотелось
Alexey
И доку он сам генерит
Alexey
Можно зайти и через интерфейс глянуть какие запросы можно сделать, какие объекты с какими поляме вернет, какого они типа
Dmitry
Никаких, разве что обертку свою написали
Хм. А почему свою решили делать?
Alexey
Хм. А почему свою решили делать?
Да что то не нашел ничего годного и попроще. Мне тупо нужно иметь возможность сделать запрос, получить данные, прогнать их через normalizr и получить плоские массивы сущностей. Для простоты в общем. Ничего сложного нет в ней.
Denis
Изучайте GraphQL, иначе потом долго догонять будете) https://medium.com/the-graphqlhub
Alexey
“GraphiQL: GraphQL’s Killer App” @clayallsopp https://medium.com/the-graphqlhub/graphiql-graphql-s-killer-app-9896242b2125
Alexey
Вот кстати да, там тоже назвали это киллер фичей
S
Изучайте GraphQL, иначе потом долго догонять будете) https://medium.com/the-graphqlhub
я правильно понимаю, что graphql это просто протокол, и никаких связок с реальными БД пока и ОРМ-ками пока нет?
S
поэтому все пишут свои велосипеды
S
и шо это?
S
ну допустим есть миддлвары эти всякие, но с мускулем мне как работать, как оно с реальными данными работает?
S
похоже очень на swagger
Alexey
есть обертки вокруг mongodb, но это лишнее, ведь иногда нужно что то из редиски добрать или из других бд
S
кароче, GraphQL это хорошо для фронтенд разработчика, но жуткий геморрой для бэкенд разработчика
S
возможно игра стоит свеч, когда у тебя куча клиентов, ведь GraphQL писался как раз для моб. приложений, т.к. стандартного апи фейсбуку стало не хватать, для выражения связей
Alexey
описываешь типы, откуда что добирать 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 }) } } }) });
Alexey
тут монгуз обычный юзается
Alexey
описываешь сам запрос 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; } };
Alexey
как бы все
S
я эту же логику могу написать на клиенте, при этом на сервере достаточно ручек для каждой модели только
S
профит то в итоге в чем? что у тебя на клиенте абстракция от логики бэкенда?
Alexey
я вроде писал уже. абстракций тут нет никаких.
S
В GraphQL состав результата запроса диктуется клиентом и содержит только необходимый набор данных - лишь то, что запросил клиент и ничего лишнего. Запрос оформляется в форме иерархического набора полей, а ответ приходит в отзеркаленном формате JSON с заполнением полей необходимыми данными. Корректность запроса обеспечивается через встроенную систему проверки типов. это и есть абстрагирование от доступных возможностей бэкенда
Alexey
т.е ты фразу ничего лишнего назвал абстрагированием? ну ок
Alexey
я бы сказал это унификация интерфейса апи. потому что знать схему тебе все равно нужно, что бы расспарсить приходящие данные.
S
но тут еще и типов полно новых
Alexey
ну цель сваггера это задокументировать и предоставить rest апи
Alexey
ну это удобно, поэтому и появился graphql, только он заолдскулил рест запросы