Если вы не технический предприниматель, у вас могут возникнуть проблемы с общением со своей командой по разработке продукта. Вы не одиноки, даже я, будучи компьютерным инженером, сталкивался с похожими проблемами. Итак, я начал готовить глоссарий, который поможет избежать недопонимания.
Фронтенд / Бэкэнд
Современные веб-приложения состоят из серверной части и внешнего интерфейса. Бэкэнд обеспечивает фактическую функциональность и хранит постоянные данные, а внешний интерфейс генерирует пользовательский интерфейс на основе вводимых пользователем данных и данных, предоставленных серверной частью.
Веб-страница или мобильное приложение - самые распространенные типы интерфейсов. На вашем устройстве выполняются операции внешнего интерфейса.
Пользователи не видят серверную часть, их взаимодействие ограничено интерфейсом. После ввода пользователя интерфейс взаимодействует с серверной частью, чтобы зафиксировать определенную задачу и получить результат.
Например, вы хотите просмотреть список подписчиков определенного пользователя в 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 минут. Они создают сценарии сборки для выполнения этих заданий.
Развертывание: для развертывания необходимо упаковать ваше веб-приложение и поместить его в производственную или тестовую среду, в которой можно запустить приложение.
Есть несколько вариантов развертывания и хостинга веб-приложения:
- Физические серверы «из чистого металла» в центре обработки данных (HP, Dell)
- Виртуализированные серверы в вашем помещении или от поставщика услуг (Amazon AWS, Digital Ocean)
- Облако платформы как услуги (Amazon AWS, Heroku)
HTML / CSS / JavaScript
Я думаю, что большинство людей уже слышали об HTML. Это язык разметки, используемый для создания веб-интерфейсов.
HTML работает для определения элементов пользовательского интерфейса на веб-странице, а CSS стилизует эти элементы. JavaScript изменяет элементы на основе ввода данных пользователем и создает соответствующие действия. Часть JavaScript требует навыков программирования, тогда как часть HTML и CSS требует больше навыков, связанных с дизайном.
Лучшие коды создаются с улучшением взаимодействия и, следовательно, с лучшими предприятиями…