Как создать передовой сервер сейчас

1656556932 kak sozdat peredovoj server sejchas

Исроэль Яковсон

yj46ZTHvtK2IklMJCdjcgZQCzsf47nX9WPBk
Фото Максима ВАЛКАРСА на Unsplash

Встречайте полный стек графиков

Ищете какие-нибудь быстрые новые навыки, которые можно реализовать на рынке? Или вы хотите создать надежный сервер за один день для стартапа?

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

У меня есть магистр компьютерных наук и несколько последних патентов на пользовательские интерфейсы для данных. Поэтому в некотором смысле я могу оценить силу этих прорывов.

PcJ6BnYn9fbSrglVYCe1HLRZHP73rGdZQpBs
Полный стек графиков

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

Я называю этот новый тип стека приложений a Полный стек графиковили Стек графиков кратко.

Основной подход

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

Если вам не ясно, что такое график, уделите несколько минут, чтобы объяснить это. Достаточно неформального определения: график — это набор точек (думайте кругов) с соединяющими линиями. Общее название этих точек узлыа линии есть края.

SxrjtbFitVTc0j7gqAGj-yv33GFyqSPkX7u2
Очень простой образец графика

Приложение (включая веб-приложение) имеет типы информации. График может отображать потребности программы в данных. Типами информации есть узлы, а отношения между ними являются ребрами. К примеру, график для программы для обработки событий может выглядеть так:

1i0WmsoCEGG0843ekCQcvrOoNTS73yEXOn3l
График программы

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

Как это работает

Полный стек графиков сосредотачивается на спецификации схемы GraphQL. Директивы могут улучшить спецификацию. Если вы не знакомы с GraphQL, прочтите его. Для наших целей запросы API являются подмножествами графика программы.

Схема GraphQL включает в себя график основных типов и их взаимосвязей. Apollo предлагает набор услуг, упрощающих создание интерфейсов GraphQL. Граф данных есть TypeDefs.

TypeDefs являются центральными для всего в полном стеке графов. Ваша задача состоит в том, чтобы создать TypeDefs, чтобы показать график вашего приложения. Конвертеры генерируют:

  • полная схема GraphQL из вашего TypeDefs. Это включает мутациикоторые являются обновлениями.
  • резольверы. Это функции, реализующие запросы и мутации на вашем сервере. Как обсуждалось во второй статье, конвертер, который я использовал, был neo4j-graphql-js.
J1H1lvpfaRXi4LVQlhkjvtO7-WMYKanY5H7z
Полный обзор стека графиков

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

Общепринятым подходом является создание базы данных практически без схем с помощью Prisma.

Но я призываю вас рассмотреть второй подход: использование an по своей сути без схем база данных! Хранилища документов и базы данных графиков не имеют внутренней схемы. Таким образом, вы можете взять базу данных без схемы и согласовать ее данные со схемой API GraphQL.

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

Графические базы данных

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

Графические базы данных не новые. Многие семантические модели баз данных возникли в 70-х и 80-х годах. Большинство представило схему в виде графика. Но до последнего десятилетия ни один из них не получил большую тягу.

Недавние разработки вызвали новую оценку моделей данных графиков:

  • большие данные
  • созревание машинного обучения
  • потребности в более эффективных и гибких альтернативах реляционным базам данных (т. н. Базы данных NoSQL).

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

Front End

В этих статьях я сосредотачиваюсь на задней части, но стек графиков распространяется на передний край.

Сайт GRANDstack отмечает, что React особенно подходит для стека графов. React использует простую иерархию элементов, которые можно сравнить с запросами GraphQL.

Компонент Apollo Query даже позволяет элементу напрямую запрашивать его данные. Итак, компоненты используют карту запроса к GraphQL. Ваш единственный источник истины становится задним ходом. Это гораздо проще, чем воспроизведение серверных данных в состоянии Redux.

Преимущества

Полный стек графов – это новая парадигма, и не все поняли ее силу. Многие статьи и блоги последних лет обсуждают решения, сосредоточенные на GraphQL. Большинство заявляют о таких вещах, как «мгновенный бэк-энд». Но фундаментальная цель единого графика, запускающая ваш стек, еще не ясна глобально. Как только люди оценят это видение, инструменты станут более последовательными и полными.

Короче говоря, преимущества полного стека графов:

  1. Быстрая реализация.
  2. Гибкость. Вы можете быстро повторять свое решение.
  3. Прозрачность.
  4. Последовательность. Тот же график на каждом уровне.
  5. Независимость. Фокус на уровне API с упрощенным сервером устраняет блокировку для серверных служб. Это удивительный поворот. Власти отходят от конкурирующих поставщиков облачных услуг.

Ознакомьтесь с пошаговыми инструкциями по созданию сервера MVP за час!

Это первая из 3 статей о стеках полных графиков. Смотрите также Запустите свой сервер MVP через час и От MVP к производственному серверу за день.

Добавить комментарий

Ваш адрес email не будет опубликован.