Практическое руководство, которое обучает вас GraphQL с помощью JavaScript. Оптимальный темп. Научитесь быстро!
"Почему я должен изучать GraphQL?"
Очевидно, вы должны использовать правильный инструмент для работы, верно? ... но часто то, что было «правильным» инструментом, становится плохим инструментом, и часто вы даже не замечаете ...
На сегодняшний день наиболее популярным способом общения с серверами является использование REST. REST предлагает приятный, простой для понимания способ взаимодействия с другими серверами, но подумайте об этом: REST появился около 2 десятилетий назад ... Это долгое время в нашем мире!
Позвольте мне задать вам вопрос: насколько изменилась разработка программного обеспечения за 2 десятилетия? Черт возьми, насколько изменилась разработка программного обеспечения за 2 года?!
Поэтому я думаю, что было бы справедливо задать вопрос:
Имеют ли смысл REST api, учитывая то, как мы пишем программное обеспечение сегодня?
Чтобы ответить на этот вопрос, давайте рассмотрим некоторые проблемы с API REST:
Проблема -> Много параллельных запросов
В большинстве нетривиальных приложениях выполняется много одновременных вызовов API REST, прежде чем приложение может даже отобразить представление ... Почему это проблема? Это может не быть проблемой, если приложение имеет отличное сетевое соединение (как у наших машин), но это может быть ужасной проблемой на мобильных устройствах со слабыми соединениями.
Когда мобильные устройства выполняют много одновременных сетевых запросов, ответ часто очень медленный, и приложение может показаться не отвечающим ... и оно может вообще не работать. Это может привести к печальному опыту пользователя.
Итак, насколько вы должны заботиться о мобильных устройствах?
Что ж, большая часть интернет-трафика поступает с мобильных устройств, которые часто имеют плохое сетевое соединение ... и следующие миллиарды интернет-пользователей будут в основном пользователями смартфонов ... вы думаете о них?
"Пострадает ли GraphQL от этой проблемы?"
Нет, GraphQL позволяет избежать такого сложного поведения соединения, объединяя все ваши запросы данных в один запрос к серверу, что значительно повышает реальную и воспринимаемую производительность.
Проблема -> Несколько обращений к серверу (неполная загрузка данных и проблема N + 1)
Иногда приложениям необходимо получить некоторые исходные данные с сервера, а затем приложению может потребоваться сделать последующие запросы на основе первоначально возвращенных данных. Другими словами, вашему приложению может потребоваться отправить несколько запросов на сервер в оба конца ... Это приводит к замедлению работы приложения и может привести к снижению производительности сервера.
"Пострадает ли GraphQL от этой проблемы?"
Нет, с GraphQL вы избегаете такого «болтливого» общения, потому что GraphQL позволяет вам выполнять расширенные / глубокие запросы, которые выбирают именно то, что вам нужно, за один цикл, и вы избежите проблемы N + 1, которая может убить производительность ваших серверов.
Проблема -> Перегрузка данных
Зачастую REST API дает вам больше данных, чем вам нужно. Например, представьте, что вы получаете некоторую информацию о книге, но вам нужны только название и описание книги, есть большой шанс, что API REST предоставит вам все 50+ свойств книги ... Вы перегружаете данные и вы в конечном итоге облагаете налогом свои серверы и клиентов, занимаясь ненужными данными / пропускной способностью, что приводит к снижению производительности приложений.
"Пострадает ли GraphQL от этой проблемы?"
Нет, с GraphQL вы не будете получать данные, которые вам не нужны, вместо этого вы создаете явные запросы, запрашивающие именно то, что вам нужно, а сервер GraphQL предоставляет именно то, что нужно ... Ничего больше и ни меньше.
Проблема -> Обнаруживаемость и документация
Представьте, что вы новый сотрудник и пытаетесь выяснить, что могут предложить существующие компании REST API. Это может быть довольно сложной задачей. Если вам повезет, люди поддерживают документацию по API, но чаще вам нужно будет спросить кого-то и / или покопаться в коде, просто чтобы выяснить, что доступно.
"Пострадает ли GraphQL от этой проблемы?"
Нет, понять API GraphQL легко.
Как это возможно?
Многие функции GraphQL позволяют создавать отличные инструменты для разработчиков, такие как GraphiQL и Insomnia. Подобные инструменты значительно улучшают возможности обнаружения API, которые вы изучите в этом курсе.
С GraphQL разработчики могут быстро и легко выяснить, что предлагает API, полностью самостоятельно.
Проблемы -> Медленное развитие
Это отстой, когда вам приходится ждать от других людей, чтобы завершить свою работу. Бесчисленное количество раз меня блокировали для выполнения задачи в ожидании бэкэнд-разработчика. Это прерывание действительно отстой, особенно когда я нахожусь в состоянии потока.
"Пострадает ли GraphQL от этой проблемы?"
Иногда, но не так часто, как REST. С GraphQL часто вы можете добавлять новые функции, не касаясь серверной части ... это позволяет вам двигаться быстрее и быть более гибким ... Как? потому что вы не застряли, ожидая кого-то еще.
Например, если вы добавляете функцию на существующую страницу и вам нужны дополнительные данные ... с помощью GraphQL вы часто просто изменяете свой запрос GraphQL, чтобы получить дополнительные данные, что обычно занимает несколько минут ... С REST вам часто нужно создавать собственные конечные точки, что замедляет работу.
Проблема -> Пользовательские конечные точки и дублированный код на стороне сервера
Часто, чтобы обойти недостатки REST (множественные обходы, проблема N + 1 и т. Д.), Разработчики создают одноразовые конечные точки, которые нарушают принципы «REST», но обычно это разумный компромисс для производительности… Однако проблема заключается в том, что часто вы заканчиваете тем, что дублируете код на стороне сервера, когда у вас есть несколько конечных точек, которые просто немного отличаются.
"Пострадает ли GraphQL от этой проблемы?"
Нет, с GraphQL ваш серверный код повторно используется в совершенно разных запросах по умолчанию. Например, если у вас есть какой-то код, который извлекает информацию о книге, этот же код на стороне сервера будет использоваться, когда ваши запросы к книге предназначены для: покупки, продажи, планирования, распространения или для любых других целей.
Это лишь некоторые из проблем, с которыми сталкиваются API REST ... GraphQL был создан для решения этих проблем и многих других, которые вы изучите в этом курсе.
Для кого этот курс?
Этот курс предназначен для разработчиков, которые знакомы с JavaScript и заинтересованы в понимании того, как GraphQL может улучшить производительность ваших приложений и значительно улучшить опыт разработчиков.
Что мы будем строить в этом курсе?
В этом курсе мы будем создавать сервер GraphQL, необходимый для нашего приложения... Затем мы будем создавать запросы GraphQL, необходимые для приложения, а затем подключим приложение к серверу GraphQL.
Hacker Book Review - книжное приложение для таких хакеров, как мы.
Почему я должен взять этот курс у вас?
Мои курсы отличаются от большинства инструкторов. Я стараюсь делать вещи как можно более практичными, стараюсь обеспечить хорошую графику и анимацию, чтобы помочь вам учиться максимально быстро. Я потратил сотни часов на создание этих курсов, чтобы они были хорошо продуманы и понятны ... и самое главное, я не хочу тратить ваше время.
Сколько контента в этом курсе?
Этот курс содержит более 50 видеороликов и более 5 часов целевого контента, кроме того, есть более десятка практических упражнений.
Сколько времени потребуется, чтобы пройти этот курс?
Это зависит от вас ... Если вы действительно амбициозны, вы, вероятно, могли бы закончить это в выходные, но темп зависит от вас.
Какой результат я получу от этого курса?
К концу этого курса у вас будет хорошее понимание того, что такое GraphQL, почему вы будете использовать GraphQL, и вы сможете создавать и использовать сервер GraphQL.