Статьи

REST, GraphQL и создание стартапа с Майклом Пэрис и Винсом Нином

GraphQL и основание стартапа

В этом эпизоде ​​Showing Version к Тиму и Дэвиду присоединяются Майкл Пэрис и Винс Нинг, основатели Scaphold.io, бэкэнда как сервиса для GraphQL. Они обсуждают увольнение с работы и создание стартапа, финансирование Y Combinator, создание отличных продуктов, «создание хороших пользователей», преимущества GraphQL перед REST, захват духа времени и непослушание родителей.

Показать заметки

Основные моменты разговора

Мы просто мечтали стать частью всего этого стартап-сообщества. Это своего рода движение поколений.


мы позвонили нашим родителям, и я был, как, папа, я собираюсь бросить свою работу, и он был, как, не делай этого. Я был как, я собираюсь сделать это, а остальное уже история.


Для меня не имело смысла, что каждый раз, когда вы хотели запустить приложение, вам приходилось идти в Amazon, раскручивать веб-серверы и базы данных, выяснять безопасность и масштабируемость, а также все эти вещи, которые действительно могут быть помещены в песочницу.


Они подтолкнули нас к запуску, подтолкнули нас к определению роста, заставили нас задуматься о показателях — и все, что вы найдете, очень ориентировано на показатели. Это одна из первых вещей, которые они проповедуют: если вы не разговариваете со своими клиентами, если вы не понимаете, что работает, что не работает, то вы не добьетесь успеха.


Многие основатели попадают в ловушку, что они в конечном итоге думают, что им нужно делать все эти разные вещи, будь то пиар, будь то, будь то на этой встрече, на этой встрече, говорить с этим человек. В конце концов, это все о создании продукта, который понравится вашим пользователям — что означает общение с вашими клиентами, а также развитие сообщества вокруг вашей платформы.


Вы не хотите делать отличный продукт. Вы хотите сделать отличного пользователя. Мне нравится эта идея. Продукт настолько ценен, насколько его способен сделать пользователь, и нам потребовалось немного времени, чтобы разобраться.


Я думаю, что нашими ранними последователями были люди, которые очень интересовались GraphQL, и кое-что, что мы сделали для нас на раннем этапе, это то, что это было своевременно. Я думаю, что мы уловили эту технологию в ее зарождении, и это было то, что мы были в отличном положении, что мы могли помочь в ее разработке.

Майкл Пэрис и Винс Нин на Выставке версий

расшифровка

Дэвид:

Эй, как дела у всех? Это М. Дэвид Грин …

Тим:

… а это Тим Эвко …

Дэвид:

… и вы слушаете 23-й эпизод подкаста версий.

Тим:

Это место, где мы собираемся, чтобы обсудить индустрию Интернета, от разработки до дизайна, с некоторыми из людей, которые делают это сегодня и планируют, куда он направится в следующей версии.

Дэвид:

Сегодня мы разговариваем с Майклом Пэрис и Винсом Нингом, и они являются основателями стартапа, который является «бэкэндом как сервисом» для GraphQL, который называется Scaphold.io . Давайте продолжим и начнем эту версию.


Майкл, Винс, как ты сегодня?

Майкл:

Отлично. Спасибо, что пригласили нас на шоу.

Винс:

Да, круто Здорово быть здесь.

Дэвид:

Здорово. Я хотел поблагодарить вас за то, что вы присоединились к нам, и, поскольку это The Versioning Show, нам нравится делать что-то особенное. Мы хотели бы задать вам философский вопрос, и это будет для каждого из вас.

Майкл:

Ладно.

Дэвид:

В вашей нынешней карьере, какая у вас версия и почему?

[Смех]

Майкл:

Давайте назовем это версией 1.7.

Дэвид:

Почему?

Майкл:

Мы почти… Да, так что я думаю о моей версии 1.0 или от 0 до 1, которая является фазой обучения и действительно ранней стадией моего развития, и мы совсем недавно закончили колледж. Мы закончили около 2 лет назад. Я думаю о стадии после колледжа, которая поднимет меня до 0,7 и проведет нас через этот первый этап Scaphold.io. И мы все еще учимся и все еще пытаемся усвоить столько знаний, сколько сможем, но я бы даже не сказал, что мы совсем еще не достигли 2.0.

Дэвид:

Как насчет тебя, Винс?

Винс:

Я бы сказал, в масштабе от 0 до 100 версий, я бы сказал, что я версия 10, вероятно. Очень произвольно, но относительно умственно, у меня примерно 10 версия. Так что в основном идея о том, что 0 к 1, исходит от того, что я вырос и научился кодировать, учился строить вещи, и теперь это время, чтобы взять его на реальное шоу, реальное дело в отрасли — посмотреть, что мы можем сделать с вещами, которые мы узнали в наши годы становления. Итак, как сказал Майкл, мы только что закончили колледж, около двух лет, но мы узнали так много, что я бы сказал, что за 2, за 3, около 10, но еще остается полная карьера , Это 10 к 99 к 100. Вот где я сейчас.

Майкл:

Это как аналогия острова знаний: чем больше мы учимся, тем больше понимаем, что не знаем.

Винс:

Точно.

Дэвид:

Здорово. Итак, вы только что закончили колледж. Вы ходили в колледж вместе?

Винс:

Мы сделали. Мы сделали. Мы действительно встретили наш первый год в колледже. Мы просто болтались. Я дружил с группой его школьных друзей, и мы проводили много времени вместе, но только в четвертом году мы начали работать вместе.

Дэвид:

Вы учились в инженерных областях?

Майкл:

Да. Мы оба закончили со степенью информатики. Винс также специализировался в области экономики, и у меня был небольшой бизнес.

Дэвид:

Ну, привет, Тим. Это делает этих двоих довольно особенными среди наших гостей, потому что обычно наши гости, хотя они и работают в сфере технологий, часто обнаруживают, что у них нет опыта в изучении техники.

Тим:

Да. На самом деле, у них обоих как минимум на 4 степени больше, чем у меня, так что это хорошо для вас, ребята.

Дэвид:

Итак, вы работаете над стартапом. Это интересное направление в эти дни. Очевидно, что отрасль полна быстро меняющихся технологий, и некоторые люди становятся независимыми. Некоторые люди работают инженерами, и вы решили основать компанию. Расскажите нам немного об этом и как вы начали с этим.

Майкл:

Да, конечно. Когда мы закончили учебу, у нас обоих была работа в Microsoft, поэтому первое … я думаю, что продлилось около 9 месяцев. Винс был немного дольше. Когда мы впервые попали в индустрию, мы работали в крупной технологической компании. Я работал на SQL Server, SQL Azure, облачном предложении для баз данных в Microsoft. А потом Винс работал на внутренние инструменты и финансовые системы. Это всегда было нашей ошибкой. У нас всегда были побочные проекты, и в колледже мы занимались парой предпринимательских дел и добились определенного успеха. Некоторые идеи были более успешными, чем другие, и мы смогли выступить на определенных конференциях и выиграть несколько конкурсов. Это то, что всегда было для нас слишком рано. Возможно, мы молоды и не научились иначе, но с того дня, как мы начали работать в Microsoft, это было очень хорошо, хорошо. Как мы получаем идею бросить? Давайте разберемся, как мы выберемся из этого места. Не сказать, что это было плохое место для работы! Это было отличное место для работы, но мы были готовы выбросить все это.

Дэвид [4:02] :

Я знаю как это. Некоторые люди ориентированы на то, чтобы быть где-то сотрудниками, а некоторые ориентированы на то, чтобы самим управлять шоу

Винс:

Да. Я думаю, что в нашей жизни есть этап, по крайней мере для меня, когда я бы предпочел более стабильную работу, 9–5 сделок, более предсказуемую, но сейчас, я думаю, у нас есть молодая энергия в себе — 20 или так много лет — у нас есть весь свет дня и ночи, чтобы работать над этими вещами без семей или обязанностей, или слишком много обязанностей, я бы сказал, чтобы работать над этими вещами. Мы просто мечтали стать частью всего этого стартап-сообщества. Это своего рода движение поколений.

Майкл:

Да. Мы также повезло. Я имею в виду, что отчасти причина, по которой мы попали в компанию, заключалась в том, что у нас была эта идея чуть более года назад, и мы работали над ней в нерабочее время. Мы еще долго работали в Microsoft, а потом вернулись домой и взломали с 6 до полуночи, а затем повторили. Идите на работу, делайте то же самое, и тогда действительно Y Combinator заставил нас совершить прыжок, потому что мы фактически обратились к программе YC Fellowship и в итоге получили ее обратно в марте-прошлом апреле. Они в основном были как, хорошо, почему ты еще не ушел?

Это были те, кого мы называли нашими родителями, и я был, как папа, я собирался бросить свою работу, а он говорил: не делай этого. Я был как, я собираюсь сделать это, а остальное уже история.

Тим:

Ну, это конечно звучит интенсивно. Вы двое — первые люди, с которыми мы говорили, которые прошли через Y Combinator, поэтому я уверен, что у нас будет масса вопросов об этом процессе. Но прежде всего вы упомянули Scaphold.io. Не могли бы вы рассказать нам немного о том, что это такое, о проблемах, которые вы пытаетесь решить, и т. Д.?

Майкл:

Конечно. История основания гласит, что это был продукт, который мы изначально создавали для себя. Я упомянул, что в прошлом мы работали над несколькими проектами. Мы занимались социальными сетями. По сути, я создал список учеников UVA для обмена книгами и всеми этими вещами, и мы обнаружили, что часто вы воссоздаете одно и то же снова и снова. Большинство приложений имеют одинаковую инфраструктуру. Для меня не имело смысла, что каждый раз, когда вы хотели запустить приложение, вам приходилось идти в Amazon, раскручивать веб-серверы и базы данных, выяснять безопасность, вычислять масштабируемость и все эти вещи, которые действительно могут быть помещены в песочницу.

Идея началась с того, что я впервые увидел сообщение Hacker News, и они говорили об этой новой технологии под названием GraphQL. Я углубился в это, и я заставил Винса начать смотреть на него, и мы действительно узнали, что эта технология действительно улучшила способ, которым вы могли бы создавать клиентские приложения, но с обратной стороны все еще была большая головная боль. Вы все еще должны были сделать много сервисной архитектуры — много баз данных и резервных копий и все такое. Итак, мы решили: давайте создадим систему или сервис, который позволит людям получить все преимущества GraphQL, которые в первую очередь видны со стороны клиента, а затем мы сделаем все мелкие мелочи, чтобы упростить их раскрутку. системы вверх. По сути, мы устраняем трения, позволяя людям очень быстро создавать системы данных с помощью GraphQL.

Это то, что делает Scaphold. Скажем, через несколько минут вы хотите создать Instagram, например. На высоком уровне вы можете подумать: « Хорошо, у меня есть пользователи, и у меня есть сообщения, и у меня есть комментарии. Они должны относиться друг к другу определенным образом. Когда ты инженер, это не работает так. Вы беспокоитесь обо всем, о чем я говорил. Мы позволяем вам думать на таком высоком уровне, а затем вы приходите в нашу систему и говорите: « Хорошо, мне нужны пользователи, сообщения и комментарии, у них есть эти поля, и они связаны друг с другом таким образом, и наша система вращается». все беспорядочные вещи, а затем предоставляет этот API для вас, что позволяет сразу начать создавать приложения с GraphQL.

Тим:

Это звучит очень круто. Еще на один уровень глубже … Мне очень жаль. Для любого из наших слушателей, которые не совсем понимают, как работает GraphQL или что именно он делает, вы тоже хотите немного углубиться в это?

Винс:

Конечно. История GraphQL — это был проект. Это технология, которая была создана в Facebook, я думаю, в 2012 году, и они часто использовали ее для внутреннего использования, развернув в производстве для поддержки всех своих мобильных приложений, веб-приложений, в значительной степени всей их инфраструктуры. Как вы можете сказать, это очень масштабируемое, готовое к использованию решение. В прошлом или начале 2015 года, поэтому два года назад они открыли эту технологию для широкой публики, чтобы все — самые разные разработчики в Интернете — начали использовать эту удивительную новую технологию, потому что они сказали: « Эй, она отлично работает для мы, и мы являемся одной из крупнейших технологических компаний с большим количеством данных в мире. Это, вероятно, может работать для всех остальных.

Так что они открыли его, и именно тогда Майкл предложил идею GraphQL и рассказал мне об этом. И мы начали выбирать это и решили, что это удивительная идея, когда у вас есть только один API для взаимодействия со всеми вашими данными. И именно отсюда и родилась эта идея сервиса, и вам не придется беспокоиться о генерации всего многословия, связанного с созданием сервера GraphQL и возможностью использовать его преимущества на стороне клиента.

Михаил [8:34] :

Правильно. Однако распространенным заблуждением является то, что GraphQL — это база данных. Я хочу пояснить одну вещь: GraphQL не является базой данных. Если ваши слушатели знакомы с REST API, GraphQL по сути является REST 2.0. Он расположен в самом начале сервера, и это язык, который клиент использует для связи с сервером, но на самом деле он мало что знает о данных. Это то, что мы предоставляем. Мы берем эту удивительную технологию, которая находится на переднем крае, и затем наши клиенты говорят нам на GraphQL, а затем мы обращаемся к различным базам данных и API, которые позволяют нам представлять данные в действительно дружественном виде клиенту через GraphQL.

Дэвид:

Это хороший способ объяснить это. Я собирался спросить. Я слышал, как люди говорили о GraphQL и говорили об этом по сравнению с REST, и, похоже, он начал проявлять дух времени примерно в то же время, когда люди начали говорить о React.

Майкл:

Да. Это еще одна интересная вещь. Я не думаю, что это совпадение, что оба этих проекта вышли из Facebook. И это то, что мы нашли все больше и больше. Тем более, что мы использовали GraphQL, это почти вдохновляет вас думать более функционально. Вы начинаете думать о том, что React проповедует этот однонаправленный поток данных — однонаправленный поток данных в одном направлении. GraphQL соблюдает это. По сути, он позволяет вам проходить по этому дереву данных, и если вы думаете о своем приложении как о дереве компонентов — что вдохновляет вас React — это действительно взаимно-однозначное соответствие между API GraphQL и приложением React.

Вы обнаружите, что когда вы создаете приложения React с помощью GraphQL, вы часто пишете лучший код, чем если бы вы пытались модифицировать приложение React с помощью REST или чего-то еще.

Тим:

Вы упомянули Y Combinator. Я хочу немного спросить об этом. На что это похоже? [Смех] Как вы, ребята, пережили процесс?

Майкл:

На самом деле это наш второй прогон. Мы провели стипендию прошлым летом, и мы базируемся в Сиэтле — потому что мы работали в Microsoft и у нас был дом. Стипендия — это удаленная программа, и они недавно изменили ее. Я думаю, что мы были последней партией предыдущей итерации программы стипендий. Но это, по сути, молодые компании, находящиеся на ранней, ранней стадии развития. Мы вошли в наше интервью с функциональным прототипом. Мы еще не запустили. Они подтолкнули нас к запуску, подтолкнули нас к определению роста, заставили нас задуматься о показателях — и все, что вы найдете, очень ориентировано на показатели. Это одна из первых вещей, которые они проповедуют: если вы не разговариваете со своими клиентами, если вы не понимаете, что работает, что не работает, то вы не добьетесь успеха.

Винс:

Да.

Майкл:

Затем мы закончили прохождение программы стипендий прошлым летом, имели некоторый успех, получили много ранних последователей на платформе, и затем мы фактически повторно обратились к Y Combinator после стипендии, потому что у нас не было достаточно. Это была двухмесячная программа; мы хотели больше Мы были приняты в эту текущую зимнюю партию. На самом деле мы сейчас в доме. 3 компании живут в этом доме все в нашей зимней партии. Одна вещь, это просто много работы. Вы работаете все время, и это действительно то, что они проповедуют — вы должны руководствоваться метриками. Вы должны говорить со своими клиентами, но это действительно 3-месячный спринт, и это рост. 10% каждую неделю. Если вы можете получить больше … Они хотят, чтобы вы в 10 раз за 3 месяца. Они просто подталкивают вас к тому, чтобы по-настоящему понять, что работает, а затем продолжать.

Винс:

Да. В программе не так много волшебства. Просто вы входите, они говорят вам, что вам нужно действительно усердно работать, чтобы работать на одну целевую цель. Многие основатели попадают в ловушку, что они в конечном итоге думают, что они должны делать все эти разные вещи, будь то пиар, будь то, будь то на этой встрече, на этой встрече, говорить с этим человек. В конце концов, это все о создании продукта, который понравится вашим пользователям — что означает общение с вашими клиентами, а также развитие сообщества вокруг вашей платформы.

Давид [12:14] :

Итак, вы двое — основатели, и вы основали эту компанию. Вы живете в этом доме и активно строите это. На данный момент компания ограничена только вами двумя?

Майкл:

У нас есть пара других людей, которые помогают нам. Мы обратились к студенту в Wash U —

Винс:

Вашингтонский университет в Сент-Луисе.

Майкл:

Да, в Вашингтоне, Сент-Луис, у нас есть студент в Массачусетском технологическом институте, а затем на самом деле женщина, которая живет в моем родном городе Вирджиния-Бич. Они делают большую работу, помогая нам в маркетинге и аутрич-работе, находя соответствующих людей в пространстве и делая много вещей, которые … Мы создаем большую часть продукта, а затем они помогают нам сгладить границы и помогают мы выясним, как лучше отслеживать наши показатели и тому подобное.

Дэвид:

Мне любопытно, как будет работать логистика чего-то подобного. Потому что финансы, затраты на привлечение людей к чему-то в этом роде, в то время как вы все еще, по сути, являетесь студентами, участвующими в создании этой вещи.

Майкл:

Да. Я думаю, что нам повезло. Я думаю, что люди, которых мы нашли, помогли нам действительно поверить в продукт, и это то, что они почти пришли, и они были готовы работать за меньшие деньги, потому что мы молодая компания. Мы по-прежнему пытаемся улучшить наши финансовые показатели и все остальное, но они очень хотели внести свой вклад в достижение ощутимых результатов в будущем без необходимости платить 100 000 долларов, которые заплатит Microsoft.

Дэвид:

Это правда. Дорого заставить людей работать на тебя.

Винс:

Абсолютно.

Тим:

Происходя из инженерного образования и теперь руководя собственной компанией, есть ли уроки, которые действительно поразили вас, ребята, сильнее всего, когда вы только начинали на этом новом этапе своей жизни?

Майкл:

Самым важным для меня было то, что я всегда хотел создать продукт, и я думаю, что мы оказались в ситуации, когда у нас есть отличный продукт, но он гораздо более вовлечен в сообщество, чем я когда-либо думал. Итак, сейчас очень много мы узнаем, как мы можем привлечь больше сообщества и как сделать людей, которые строят на платформе … Я слышал эту замечательную цитату. Я не хочу ругаться, но эта книга называется Badass . Они считают, что вы не хотите делать отличный продукт. Вы хотите сделать отличного пользователя. Мне нравится эта идея. Продукт настолько ценен, насколько его способен сделать пользователь, и нам потребовалось немного времени, чтобы разобраться.

Винс:

Да. Я собираюсь договориться с Майклом об этом. Это одна из тех вещей, когда мы оба люди, ориентированные на продукт, и мы хотим сделать лучший продукт, поэтому мы тратим на это много времени, но потом не рассказываем людям о наших новых функциях. , Итак, в конечном итоге мы имеем все эти функции, о которых никто не знает, и в конце концов, это просто будет убрано в шкаф. Вот на что мы сейчас стремимся больше сфокусироваться — попытаться создать это сообщество, рассказать людям о том, что мы делаем, быть более прозрачными и более ориентированными на пользователей о наших функциях.

Дэвид:

Это вызов, потому что иногда кажется, что вы ставите телегу перед лошадью, пытаясь вовлечь людей в то, что вы не чувствуете, как основатели, что оно готово показать.

Винс:

Точно.

Дэвид:

Как ты справляешься с этим? Как вы даете тем первым увлеченным пользователям увидеть видение чего-то, что все еще определенно находится на ранних стадиях?

Майкл:

Я думаю, это восходит к духу времени, о котором вы говорили. Я думаю, что наши ранние последователи были людьми, которые были очень заинтересованы в GraphQL, и кое-что, что мы сделали для нас на раннем этапе, это то, что это было своевременно. Я думаю, что мы уловили эту технологию в ее зарождении, и это было то, что мы были в отличном положении, что мы могли бы помочь в ее разработке. Люди, которые пришли к нам, были бы такими, как Да. Я хотел что-то построить с помощью GraphQL, а затем погуглил GraphQL и нашел вас, ребята.

Это такие вещи. Технология вела ранних последователей. Сейчас мы пытаемся показать миру, что GraphQL — лучший способ создания этих вещей, а затем мы рассказываем о нашем новом повествовании о быстрой разработке продукта, быстрой разработке приложений. Вы можете сделать вещи намного быстрее. Вы можете создавать четыре приложения одновременно и A / B тестировать совершенно разные идеи только потому, что у вас есть такая платформа.

Дэвид:

Можете ли вы представить нашим слушателям, в чем преимущество GraphQL перед REST? Что делает его REST 2.0?

Михаил [15:48] :

Конечно. То, что делает это для меня, — это система типов. Слишком много раз я пытался использовать REST API, и единственный способ понять, как использовать REST API, был двояким. Либо вы идете читать страницы и страницы документации, а затем компании, которая выпускает REST API, приходится поддерживать много документации, и это действительно единственный способ выяснить это, хорошо. Что / треки на soundcloud.com принимают? Когда я делаю POST-запрос, чего он хочет и что он собирается вернуть? Вы понятия не имеете, если не идете читать документацию.

Другой способ — использовать SDK. Эти API-интерфейсы REST настолько сложны в использовании, что людям приходится фактически предоставлять программное обеспечение, чтобы люди могли их использовать. Таким образом, GraphQL меняет игру, и она предоставляет эту систему типов, и это очень важно для разработчиков, поскольку она позволяет вам на самом деле анализировать схему, а это означает, что в любой момент времени я могу точно видеть, что происходит и что выходит с полной ясностью. , Я могу полностью понять API, просто взглянув на простые инструменты.

Винс:

Да. Я хочу немного подробнее рассказать о SDK. Все запросы к GraphQL выполняются со строками, так что вы можете сделать это из любой сетевой библиотеки на стороне клиента, будь то cURL, jQuery или что угодно. Будь то мобильная сеть или Интернет вещей. Это действительно круто, потому что мы на самом деле только что запустили этот новый учебник по VR, чтобы вы могли создавать приложения VR и AR-приложения также на Scaphold. Идея в том, что нам не нужно предоставлять какие-либо проприетарные SDK, потому что все делается с помощью обычного запроса POST со строкой, добавляемой к телу содержимого полезной нагрузки. Да.

Майкл:

Я мог бы говорить об этом весь день. Там больше преимуществ. Система типов огромна. Там также крутые вещи с пересекающимися отношениями. Это может отчасти отразиться на сорняках, но, по сути, если вы думаете о REST, если вы хотите получить профиль пользователя, то вы собираетесь захватить пользователя, а затем вы получите список идентификаторов и тогда вы собираетесь сделать десять запросов, чтобы получить все сообщения этого пользователя. Затем вы получите те идентификаторы, которые связаны с комментариями, а затем вы получите комментарии.

GraphQL дает нам действительно простой язык, чтобы в основном сказать в одном запросе, я хочу , чтобы мой пользователь и мои сообщения и мои комментарии. Кроме того, я собираюсь дать эти фильтры и эти аргументы нумерации страниц. И тогда языковой аспект делает его кратким, а также стандартным. Вместо того, чтобы использовать Google с API-интерфейсом REST, отличным от Facebook, с API-интерфейсом REST, отличным от Twitter, когда вы используете GraphQL, все это GraphQL. Вы можете структурировать схему так, как хотите, но вы все еще пишете на одном языке для взаимодействия с данными. Это почти SQL для Интернета. Это как стандартный способ взаимодействия с этими сложными структурами данных, но вы также можете подключить его где угодно. Это более свободная форма, чем что-то вроде SQL, потому что вы можете поместить SQL за ним, вы можете поставить Elasticsearch за ним, вы можете поместить Mongo DB за ним. Вы действительно можете положить все, что хотите.

Тим:

Слышали ли вы от людей, использующих ваш продукт, которые действительно начали увлекаться и любить его?

Майкл:

Да. Мы потратили много времени на разговоры с нашими клиентами. У нас на платформу выходит довольно крупный европейский издатель, и они используют его для большого количества услуг. По сути, они ведут журналы о стиле жизни и тому подобное, и они были одними из тех, кто вышел, и мне очень хотелось использовать GraphQL, а потом они нашли нас. Мы предоставляем эти инструменты, чтобы вы мгновенно раскручивали эти системы GraphQL. Они любят это от этого. Это 0 к производственному API за 15 минут вместо 3 месяцев.

Дэвид:

Я заметил, что у вас также есть много связей с другими компаниями, которые предоставляют свои API. Это конкретные API API GraphQL, которые они предоставляют?

Винс:

Нет, на самом деле это не так. Самое интересное не только в том, что вы можете подключить базу данных или другую конечную точку REST, вы можете подключить различные из них, смешать и сопоставить их. Прямо сейчас мы подключаем мою базу данных SQL вместе с этими интеграциями, которые вы только что упомянули, и это все традиционные конечные точки REST. Будь то Stripe, один из наших самых популярных, или Auth 0 для аутентификации, мы сделали обертки вокруг их конечных точек REST и дали вам точное отражение этого в переводе GraphQL в переводе GraphQL.

Вместо того, чтобы взаимодействовать со всеми этими различными сервисами, которые вы обычно делаете для создания приложения в настоящее время, вам просто нужно взаимодействовать с одним API через GraphQL с одним языком и получать данные из 18 разных мест, даже не зная об этом.

Майкл:

Правильно. Хорошей аналогией была бы рыба Вавилон из «Автостопом по Галактике». Мы говорим на GraphQL с нашими клиентами, и мы можем пойти за кулисы и поговорить на 50 разных языках. Клиенты говорят только на GraphQL. Они получают этот универсальный переводчик видов данных через Интернет.

Дэвид [20:00] :

Как разработчик, что я должен положить в ухо?

Майкл:

У нас есть эти VR-приложения. Надеюсь, один из них.

[Смех]

Дэвид:

Очень круто. Одна из вещей, которая действительно меня интересует, — это то, что она основана на технологиях с открытым исходным кодом, и мне любопытно ваше взаимодействие с сообществом открытого исходного кода.

Майкл:

Да. Это то, во что мы все больше и больше углубляемся. До сих пор многие наши открытые источники изучали контент. Мы только что развернули сегодня страницу сообщества, к которой мы действительно призываем людей вносить свой вклад, просто пытаясь вырастить это знание центра для GraphQL, практического знания GraphQL. Мы также все больше вовлечены в проект Apollo. Мы пытаемся внести свой вклад, потому что мы любим … Apollo — это проект GraphQL, созданный парнями, которые создали Meteor JS. Они делают действительно классные вещи, создают много классных инструментов для разработчиков, и это один из проектов, который мы бы хотели начать вносить в него.

Винс:

Да. До сих пор я думаю, что большая часть нашего контента — это учебное пособие, поэтому мы идем дальше, чем просто бэкэнд API, который мы вам предоставляем. Мы поможем вам, начав с любой фреймворк, который вы хотите — будь то React с Apollo, React с Relay, Angular 2 с Apollo, все различные ароматы и комбинации фреймворков, так что вам нужно только войти, клонировать его, изменить одна строка в файле конфигурации указывает на ваш API GraphQL, и все работает. Это довольно волшебно в этом аспекте, и мы хотим продолжать делать больше этого и привлекать сообщество к участию, что вдохновляет эту страницу сообщества собирать и создавать совокупность всех этих разных вещей, которыми люди являются построение на вершине нашей платформы, так что другие люди могут извлечь из этого пользу.

Тим:

Для любого из наших слушателей, кому интересно, где люди могут связаться с вами, ребята, узнать больше о вашем стартапе и узнать больше о GraphQL?

Майкл:

Конечно. Если вы пойдете в Scaphold … и я просто объясню идею этого очень быстро, потому что людям всегда любопытно. Идея, когда мы впервые основали компанию, заключалась в том, что мы являемся фундаментом, на котором все строят, поэтому мы сразу же подумали о лесах. У нас есть эти прекрасные здания в Нью-Йорке, Сиэтле и Сан-Франциско, но они не просто растут из ничего. У них есть эти леса, эти грязные леса, которые поднимаются вокруг них, и затем медленно из этого выходит красивое здание. Это была классная аналогия, которая нам действительно понравилась, и к которой мы с самого начала привязывались. PH происходит от GraphQL. Так что именно scaphold.io/community будет лучшим местом для начала изучения этого материала. Вы также можете присоединиться к нашему Slack. Если вы зайдете на этот сайт, есть ссылка, чтобы присоединиться к нашему Slack. Там много людей, которые говорят о вещах GraphQL, о Scaphold повсюду — просто общие вещи веб-разработки от React до Angular до React Native, а теперь еще больше iOS и Android, поскольку этот набор инструментов становится более развитым.

Дэвид:

Очень круто. Ну, я с нетерпением жду, чтобы покопаться и узнать немного больше об этом, и я верю, что у вас также есть бесплатный уровень, верно?

Майкл:

Мы делаем.

Винс:

Да. У нас довольно большой бесплатный уровень, который расширяет хранилище вашей базы данных, хороший объем трафика. Идея в том, что мы хотели дать вам уровень без жира, чтобы помочь вам на этапе разработки. Мы не хотим, чтобы вы ощущали ограничение необходимости платить за что-либо, когда вы только запускаете свое приложение, а затем, как только вы запускаете, идея состоит в том, что вы, вероятно, будете потреблять достаточно данных, сохраняя достаточно данных на наших серверах или файлы, которые вы платите только 25 долларов в месяц в конце дня. Это фиксированная плата. Большинство стартапов не знают, какой объем данных они хотят использовать, поэтому мы просто собираем их таким образом, и я думаю, что это помогает устранить путаницу для многих из этих молодых стартапов, потому что они могут проецировать, я только собираюсь заплатить 25 долларов за мою инфраструктуру, что удивительно, о чем не может сказать много людей.

Нашим третьим уровнем является бизнес-уровень, который масштабируется бесконечно, и это больше для крупных корпоративных клиентов, у которых много данных, которые могут предсказать, какой объем трафика они получают, и в масштабе они получают гораздо лучшую ценность.

Майкл:

Правильно. У нас есть несколько интересных функций, которые могут увеличить количество услуг премиум-класса, но посмотрим.

Дэвид:

Конечно.

Винс:

Будьте на связи.

Дэвид:

Еще раз, большое спасибо, что присоединились к нам в шоу. Было очень интересно пообщаться с вами, и удачи в стартапе.

Винс:

Большое спасибо.

Майкл:

Да. Большое спасибо за то, что приняли нас. Это было действительно весело.

[Музыкальная интерлюдия]

Тим [24:02] :

Я всегда испытываю краткий страх, когда слышу о людях, которые уходят с работы и просто идут на это, особенно в таком молодом возрасте. Я не могу говорить. Я примерно в том же возрасте, что и они, но все же трудно представить. Я имею в виду, что вы действительно должны верить в свой продукт или услугу, чтобы иметь возможность пойти и сделать что-то подобное.

Дэвид:

Я думаю, что это тоже личность. Есть только некоторые люди, которые более склонны уходить и пробовать что-то экспериментальное и захватывающее, в отличие от людей, которые ищут что-то более стабильное и где кто-то другой берет на себя большой рыночный риск и просто платит вам зарплату на регулярной основе.

Тим:

Да. Я имею в виду, что в этом определенно есть фактор риска. Я думаю, что есть некоторые из нас, у которых просто еще не было идеи. Да, это интересно, и это действительно требует большой дисциплины, о которой вы даже не думаете. Чтобы это сделать, нужно много дисциплины, потому что, как только вы сделаете это, и, ладно, я уйду с работы, что бы вы ни говорили, папа. Я собираюсь пойти и сделать это, вы действительно должны убедиться, что у вас есть свои вещи вместе, что у вас есть план, что вы выполняете его, что вы теперь просыпаетесь каждый день вовремя и сами по себе босс. Это не легко сделать.

Дэвид:

Нет, расскажи мне об этом. Я работаю независимо уже как минимум два года, но до этого я работал на полную ставку в нескольких разных компаниях. Мой папа до сих пор без ума от того, что я это сделал. Почему ты не идешь и не получаешь зарплату и не работаешь на работе, и я все время говорю ему, папа, мир больше не работает таким образом. Это концертная экономика. Так обстоят дела, и вы намного более стабильны и намного более защищены, если продаете себя нескольким работодателям. Если один человек перестает нуждаться в ваших услугах, есть еще один человек или пять других или 20 других людей, которые получают ваши услуги, и у вас более стабильный доход, а также более тесная связь с рынком, так что вы знаете что то, что вы предоставляете, на самом деле то, что нужно рынку.

Тим:

Это очень помогает и в нашей отрасли, потому что, я думаю, Дэйв Руперт на Ток Шоу любит называть их «разработчиками темной материи» — людьми, которые занимались этим давно и действительно талантливы, но их просто нет. Эти люди в порядке. Они всегда будут хорошими, но я всегда предпочитал рекламировать себя через Интернет, потому что это помогает в основном просто найти больше возможностей. Например, SitePoint: этого бы точно не произошло, если бы я не был заинтересован и держал руку на пульсе сообщества и отвечал на вещи и отвечал на вещи в Твиттере. Портфолио сайт всегда помогает. Но я полагаю, что эти возможности, как правило, дают о себе знать больше, когда вы пытаетесь продвигать себя в этой отрасли.

Дэвид:

Дело не только в том, что они представляют себя. Речь идет о том, что вы говорите «да», потому что эти возможности могут представляться очень тонко и изобретательно, что вы даже не замечаете. Если вы не активно говорите «да» возможностям, вы упускаете их. Одна из вещей, которая произвела на меня впечатление при разговоре с Майклом и Винсом, это то, что они заметили этот интерес к GraphQL, что означало, что они держали руку на пульсе. Они слушали, о чем говорили люди, и поняли, что там не хватает фрагмента. Я знаю, как создавать API, и я знаю GraphQL. Людям сложно собрать воедино эти внутренние службы, которые необходимы для поддержки чего-то подобного. Я могу построить что-то, что может помочь людям. Я могу построить то, что есть люди, которые ищут, что им нужно. Они придумали способ сделать это и соединили его так, чтобы они смогли пройти через Y Combinator, который является удивительным достижением, и представить его людям. Теперь они живут в доме. Это звучит почти как какое-то реалити-шоу, но для них это реальность.

Тим [27:36] :

Да. Похоже, из того, что они описали, это работает очень хорошо. У них есть заинтересованные клиенты, и вы действительно не можете сказать, что это не то, что привлекает. Как разработчик внешнего интерфейса, я не хочу тратить время на создание API. Это не то, что … я имею в виду, конечно. Я бы научился. Я был бы заинтересован. Мне это может даже понравиться, но если у меня есть идея о продукте или услуге, я просто хочу ее реализовать. Это те услуги, которые не только облегчают, но и приобретают смысл.Я имею в виду, что бэкэнд как сервис — это то, что действительно поможет стартапам всех размеров. Вы можете быть очень большой организацией, но если ваш приоритет меньше на бэкэнд-разработке или больше на фронт-энде, или вы на самом деле не имеете дело с большим количеством данных, но вы по-прежнему большая организация, это действительно пригодится, и это может стать ключевым сервисом для вашего продукта.

Дэвид:

I was thinking about that, too, because I also come from a front-end engineering background. I’ve worked with some of those back-end engineers, and it’s amazing the things that you need to consider when you’re putting together a stable, secure, reliable, efficient, effective back-end for your service. There’s so much to keep track of, so much to stay on top of, so much that changes so quickly in that field as well where people … you never know when a DDOS is going to come in, and what the source is going to be, and what the new security patches are going to do to what you’re trying to build and make stable. This idea of having back end as a service available for free from companies like this and from Firebase and from other places, the fact that that’s out there just opens up a world of possibilities to people with a little bit of front-end knowledge.

Tim:

Да. We should probably spend some time focusing on some of those resources that are available, because we don’t talk about it a lot. Often, in my career, I hear about people saying, I just deployed this thing on Firebase, or, I just pushed it up to AWS, but there’s not a lot of, Hey, this is exactly how you go about doing that thing. Here are all of the resources available if you want to get an API for testing up and running, or if you want some quick storage or if you really just want to put some static thing up for free. You can do that. Those aren’t necessarily the cool things anymore, and I feel like they’re not always focused about as much, but there are some crazy good resources out there that can, if you don’t know, do most of the work for you, and I think like we should maybe spend some time going over that.

David:

Oh, absolutely. I see no reason why we shouldn’t, and it’s important for people to realize that it doesn’t have to live completely on your shoulders. This idea that you have to be a unicorn, essentially, and be able to create everything from top to bottom in order to put out a service and know that it’s yours, that’s no longer the case. With so many different services out there, it’s possible to build on top of something else, and people don’t know enough about how those things are changing out there. GraphQL, REST, all of these different ways of thinking about an API, the pre-REST APIs, the notion that we should think about structured data as part of what we’re doing, whether the structured data is enforced by a database or enforced in the API or somehow lives in a graph in the app itself. All of these things are things that people need to take into consideration when they’re building something for the front end.

We have frameworks like React. You can do so much on top of that. I’d be interested in finding out from our listeners if there are technologies that they think are the cutting edge, the things that are happening next that they’d really like to hear more about — and also, how they’re taking advantage of older technologies, and why they’re sticking with them.

Tim:

Да. As we know, it’s 2017. React isn’t cool anymore. There’s something else, and we have to know what it is. That’s our job. So, dear listeners, please tell us, because we don’t know. We don’t know what the next thing … I don’t know. Что это?

David:

We have to be cool. That’s the imperative.

Tim:

We’re both wearing sunglasses right now. That’s what’s happening. That’s how hard we’re trying at this.

David:

I think that’s an effect of the gig economy, too, because if you don’t look cool, they’re not going to hire you.

Tim:

Да. You’ve got to wear flannel shirts and distressed boots or something. I’m not that cool, guys. I don’t really know, but I tried.

David:

I have such a collection of hoodies.

Tim [31:44] :

Да. Exactly. But, that being said, GraphQL is really interesting and really exciting, especially if you have gone through the process of talking with a back end developer to get an API built and then grabbing that API and then formatting more data on that API. I’m sure you have, David. I’ve gone through this a number of times, wherein I need to get some user data, and for me it was eCommerce. What does this user have in their cart? I get a list of IDs. I need to go make more requests to find out what those IDs map to, then it’s not filtered the right way and I have to go and do that. It’s more work for everybody, because it’s really every time I need a new API, I just go to one of the back-end developers available and say, Hey, give me this now, and it’s slightly different from that but not really, but still I need a new one.

Lots of money gets wasted, because that’s what it really ends up to be. It’s just a lot of wasted hours on building similar things, formatting those things and you get this spaghetti mess, but now it’s on your back end.

David:

What little I know about GraphQL indicates that it’s going to be solving some of those problems with the ability to use types, with the ability to define interfaces that those types can implement. I think it’s going to make it possible to create variations and multiple versions of things inside of a data access layer that really will make sense and really will be more versatile, and maybe solve some of those problems and make some of that communication more visible. Because one of the things I’ve always noticed when I’ve been in those conversations is the issues around documentation, which Michael and Vince did bring up.

It’s important and it’s critical to document your REST API very specifically, and have all of these endpoints and exactly what everything means and what all of these different possible variations could mean. And, apparently, with GraphQL a lot of that documentation gets carried within the structure of the schema itself.

Tim:

Just like Michael was saying, when you are the SoundCloud API — which I have worked on before on podcasts trying to get right — and you really do run into those problems of, Okay, what does this thing accept? Is this parameter correct? Why am I not getting this thing? Oh, here’s a random person’s profile. It really gets you thinking, and it’s not necessarily SoundCloud’s fault. It’s a really large product. It’s a giant API. There are tons of ways to interact with it. If you rely on a human to get that documentation right every time, it’s never going to work.

David:

No. I will definitely confess I’m thinking through some of the REST APIs that I have had a hand in helping to design and occasionally build, and I’m thinking about all of the silly, stupid detailed things that are difficult to figure out and you would never … they’re completely unintuitive unless you understand exactly what the thing is trying to do in the first place. It sounds to me like bringing these things to the surface, and getting people thinking about them more, is going to be more critical, especially going forward. As front-end engineers ourselves, and working with designers and with back-end engineers, these conversations … it just helps bring these things to the surface, and I’m looking forward to this.

Tim:

That’s why my motto as a front-end developer is make the server do the work , because I don’t have to anymore. It’s not just lazy. It helps. Its helps everybody — because, again, some of the things that GraphQL helps with, you can rewrite the API on the back end and not have to change a single thing on the front end.

David:

A good engineer is a lazy engineer — and yes, you may quote me on that.

Tim:

Это так. Our job is to write the least amount of code, not the most.


David:

Well, thank you so much for listening, everybody. We always enjoy getting to talk technology with all of you.

Tim:

Мы также хотели бы поблагодарить SitePoint.com и наших продюсеров, Адама Робертса и Офели Лехат, за помощь в производстве от Ральфа Мейсона. Пожалуйста, не стесняйтесь, присылайте нам свои комментарии в Twitter — @versioningshow — и дайте нам оценку на iTunes, чтобы сообщить нам, как мы делаем.

Дэвид:

Увидимся в следующий раз и надеемся, что вам понравилась эта версия.