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

Фронтенд / Бэкэнд

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

Веб-страница или мобильное приложение - самые распространенные типы интерфейсов. На вашем устройстве выполняются операции внешнего интерфейса.

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

Например, вы хотите просмотреть список подписчиков определенного пользователя в Twitter. Веб-интерфейс Twitter предоставляет ссылку «ПОДПИСАТЬСЯ», но на самом деле не имеет никакого представления о том, кто такие подписчики. Каждый раз, когда пользователь нажимает ссылку «ПОДПИСАТЬСЯ», интерфейс взаимодействует с серверной частью и отправляет обратно запрос для подписчиков конкретного пользователя Twitter. Бэкэнд выполняет сложные вычисления в базе данных и готовит список подписчиков. Сам Backend не отображает список подписчиков, но предоставляет данные веб-интерфейсу. Затем задача внешнего интерфейса - показать список подписчиков и стилизовать представление.

Бэкэнд состоит как минимум из двух частей: серверного приложения и базы данных. Бэкэнд должен работать на сервере, доступном для пользователей по всему миру, поскольку он питает приложение. Затем приложение обрабатывает данные, хранящиеся в базе данных, и доставляет их во внешний интерфейс.

Обычно вы должны нанимать отдельных разработчиков для каждой стороны. Вокруг есть несколько «супер-разработчиков», которых называют «разработчиком полного цикла», и они могут справиться с обеими сторонами.

API / REST / JSON

Обычно пользователь инициирует запрос, щелкая или касаясь пользовательского интерфейса (UI). Это нормально! Но что произойдет, если двум приложениям потребуется взаимодействовать друг с другом? Как один из них может инициировать запрос, а другой может ответить? API делает это возможным, это интерфейс связи между приложениями. Приложение стало способным запускать запрос через другое приложение с помощью API.

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

REST - это аббревиатура от REpresentational State Transfer. Это метод обмена данными через API. А JSON - это формат данных. Итак, два приложения используют метод REST для обмена данными JSON через API.

Вот API Stripe: https://stripe.com/docs/api

Stripe - это шлюз онлайн-платежей для приложений. Ниже вы можете увидеть данные JSON для заказа:

{
  "id": "or_19usf22eZvKYlo2CeFxbt1r0",
  "created": 1488932892,
  "amount": 1500,
  "currency": "usd",
  "description": "T-shirt",
  "quantity": 1
}

JSON - это гибкий формат данных, поэтому вы можете добавлять любые данные без каких-либо условий. Например, вы можете добавить поле «Цвет» для определенного набора данных, в то время как у других этого поля нет.

Backend предоставляет API и выполняет определенные задачи по определенным URL-адресам. Для доступа к каким-либо внутренним функциям приложения используют соответствующие URL-адреса. На самом деле разработчики вместо этого используют URI.

Пример URL-адреса API для заказов будет выглядеть так: https://api.example.com/v1/orders

И когда кто-то подключается к этому URI, серверная часть выполняет определенную задачу.

СУБД / NoSQL

Давайте сначала проясним это. Нет YesSQL :-)

NoSQL разработан как ответ на SQL (язык структурированных запросов), который является традиционным языком запросов к базе данных.

Пример SQL-запроса:

ВЫБРАТЬ * ОТ клиентов ГДЕ Страна = 'Мексика';

Мы используем СУБД (систему управления реляционными базами данных) для баз данных с поддержкой SQL. РСУБД работают со структурированными и предопределенными наборами данных. Но современный Интернет содержит огромное количество данных как структурированных, неструктурированных, полуструктурированных или полиморфных. Итак, из-за резкого увеличения числа пользователей Интернета нам нужны горизонтально масштабируемые базы данных.

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

Oracle, Microsoft SQL и MySQL - хорошо известные базы данных SQL, а MongoDB, Cassandra, Redis - популярные базы данных NoSQL.

Репозиторий кода / Git

Современные разработчики сотрудничают. Они используют удаленные и общие репозитории кода для совместной работы над своими кодами со своими коллегами. Git - это один из типов репозитория кода, разработанный Линусом Торвалсом - создателем Linux.

В облаке доступно несколько сервисов репозитория кода. Github, Bitbucket и Gitlab - одни из самых известных.

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

Чтобы узнать больше об особенностях репозитория кода, вы можете проверить это: https://github.com/features

Сборка / развертывание

Вы должны часто слышать эти слова от своей команды разработчиков.

Сборка: в большинстве случаев невозможно запустить приложение только с одним фрагментом кода. В самом деле, он включает в себя несколько частей, таких как серверная часть, интерфейс, скрипты и т. Д. Он требует набора заданий, чтобы объединить все эти части и обеспечить их бесперебойную работу. Мы называем этот процесс «сборкой». Разработчики делают это почти каждый час, иногда каждые 10 минут. Они создают сценарии сборки для выполнения этих заданий.

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

Есть несколько вариантов развертывания и хостинга веб-приложения:

  1. Физические серверы «из чистого металла» в центре обработки данных (HP, Dell)
  2. Виртуализированные серверы в вашем помещении или от поставщика услуг (Amazon AWS, Digital Ocean)
  3. Облако платформы как услуги (Amazon AWS, Heroku)

HTML / CSS / JavaScript

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

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

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