Разное

Что такое бэкэнд: Чем занимаются бэкендеры и как начать работать в этой области? — Академия Яндекса

Содержание

Чем занимаются бэкендеры и как начать работать в этой области? — Академия Яндекса

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

Кто такой бэкендер?

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

«Пользователь совершает действие, а реакция сервиса или сайта на него затрагивает нужную часть бэкенда. В это понятие входит всё, что позволяет вам реализовывать логику работы тех функций, которые предоставляет интерфейс», — объясняет Алексей Шаграев, руководитель службы разработки Яндекс.Поиска.

Работа фронтенда и бэкенда видна в любых взаимодействиях с приложением или сайтом. Например, вы подписываетесь на рассылку. «Фронтенд отвечает за то, что берет адрес, который пользователь ввел, и отправляет его на сервер. А сервер принимает адрес, парсит его (изучает и понимает, какой это провайдер), обращается к почтовому провайдеру (провайдер отвечает, что такой адрес существует) и формирует сообщение, с помощью которого провайдер скажет уже другой системе, что на этот адрес нужно отправить письма. Бэкендер отвечает за всё, что происходит после того, как пользователь ввел адрес в строку и данные ушли на сервер», — объясняет Виктор Мамлютов, системный аналитик компании Норбит.

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

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

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

«Бэкенд — это та часть, которая на вопрос «А можно ли сделать вот так?» отвечает: «Можно сделать всё что угодно, просто на это уйдет разное количество временны́х или человеческих ресурсов»»,  — Виктор Мамлютов, системный аналитик, компании Норбит.

Как строится работа над проектом

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

«У проекта есть команда, в которую входит в том числе бэкендер. У команды есть задачи по развитию сервиса: добавление функциональности и возможностей для пользователя. Руководитель сервиса отвечает за эти задачи — он объясняет всем, что сейчас важно делать и почему. Обычно бэкендер отвечает за конкретный кусочек продукта, с которым надо делать что-то разумное. Например, ускорять его», — говорит Алексей Шаграев из Яндекс.Поиска.

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

«Могу рассказать на примере команды Яндекс.Практикума. Я как заказчик для бэкенда говорю: «Нам нужно, чтобы платформа умела делать то-то и то-то. Например, чтобы я вводила код в окошко, а платформа мне что-то отвечала». Дальше мы садимся с бэкендом и обсуждаем задачу: что нужно сделать, как это реализовать, какие есть ограничения. Мы можем выбирать решение вместе, потому что я и моя команда понимаем в разработке. Иначе у бэкендеров была бы дополнительная задача — объяснить нам как заказчикам особенности каждого решения», — рассказывает София Техажева.

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

Если проект начинают с нуля, то шаги для бэкендера будут такими:

  • Выбрать язык. Python, C++, Java, PHP — это основные языки, на которых пишут бэкенд. Так, на Java написано большинство банковских систем — этот язык используют в Райффайзенбанке и Сбербанке. На PHP создана сеть Badoo и часть сервиса ВКонтакте. Чаще всего это исторически обусловленные решения. Когда в компании уже пять лет пишут на Java, сложно переводить огромный массив кода на другой язык.
  • Выбрать инструменты. Например, базу данных или фреймворк. Набор этих инструментов плюс языки, которые бэкендер выбирает, чтобы строить свой двигатель, все вместе называются стек технологий. Стеки бывают разные, в зависимости от задач и традиций компании.
  • Написать код. Здесь бэкендер пользуется инструментами для создания версий, тестирования и хранения данных.

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

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

«В больших компаниях бэкендер растет так: вначале он действует как механик — что-то чинит, вставляет новые части. А обучение и опыт приводят к тому, что он начинает проектировать новые структуры самостоятельно», — объясняет София Техажева.

Работа бэкендера не видна пользователю, но ошибки всегда заметны

Например, вы отправляете запрос, а ответа нет или выпадает бессмысленный текст — значит, с сервисом что-то не так. Когда пользователь видит ошибку, он редко может определить, где она случилась — во фронтенде или в бэкенде. Но если происходит сбой на сервере, то система выдает соответствующие сообщения (Error 503 Backend fetch failed и другие).

Что нужно для старта

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

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

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

«Мы стараемся выступить в качестве такого друга, который поможет разобраться. Скорость самостоятельного обучения зависит от мотивации. Первые строки кода можно написать за день, а учиться делать что-то крутое — от нескольких месяцев до нескольких лет. Важно, насколько человек готов не сдаваться и разбираться, когда что-то не получается», — говорит София Техажева про задачи факультета бэкенд-разработки Яндекс.Практикума.

«Я не думаю, что разработка требует какого-то особого строения интеллекта. Такое мнение было распространено в прошлом, но сейчас его уже практически никто не разделяет», — считает Алексей Шаграев.

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

Профессия бэкенд-разработчик на Яндекс.Практикуме

кто это, как им стать и где учиться




  • Профессии
    • Профессии в аналитике
      Профессии в дизайне
      Профессии в маркетинге
      Профессии в менеджменте
      Профессии в программировании
      Все

      Профессии

      Всё о профессии 3D-художник: подробное описание

      Профессии

      До 15 октября: скидка -50% на курсы Skillbox

      Профессии

      Профессия «специалист по Data Mining»: подробное описание и…

      Профессии

      Все о профессии сценарист: кто это, чем занимается…

  • Онлайн-курсы
    • Курсы для бизнеса
      Курсы по аналитике
      Курсы по дизайну
      Курсы по маркетингу
      Курсы по программированию
      Все

      Онлайн-курсы

      До 15 октября: скидка -50% на курсы Skillbox

      Онлайн-курсы

      70+ бесплатных уроков для начинающего интернет-маркетолога

      Онлайн-курсы

      Топ-9 курсов для продуктового дизайнера

      Онлайн-курсы

      Подборка лучших курсов по математике для анализа данных

  • Агрегатор всех курсов
  • Рубрики
    • Интернет-маркетинг
      • Контекстная реклама (PPC)
      • Таргетированная реклама
      • SMM
      • SEO
      • Email-маркетинг
      • Контент-маркетинг
      • Копирайтинг
      • Мобильный маркетинг
      • PR
      • Видеомаркетинг
      • Веб аналитика
    • Дизайн
      • Веб-дизайн
      • UX/UI
      • Дизайн мобильных приложений
      • Графический дизайн
      • Бренд дизайн
      • 3D-графика
      • 3D-анимация
      • Motion-дизайн

бэкенд, фронтенд и их взаимодействие

Взгляд на расширяющиеся границы веб-разработки. Изначально этот пост был ответом на Quora: Как взаимодействуют друг с другом фронтенд- и бэкенд-код?

Давайте начнем с определений.

Все, что браузер способен воспринять, отобразить и/или запустить. То есть HTML, CSS и JavaScript.

HTML (Hypertext Markup Language, язык разметки гипертекста) говорит браузеру, что он должен отобразить, например, заголовок, абзац, список, элемент списка и так далее.

CSS (Cascading Style Sheets, каскадные таблицы стилей) отвечают за то, как выглядят элементы: «отступ после первого абзаца равен 20 пикселям», «весь текст в body должен быть темно-серым».

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

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

Вы можете использовать для бэкенда любые инструменты, доступные на вашем сервере (который, по сути, может быть просто особым образом настроенным компьютером). Можно воспользоваться любым языком программирования общего назначения, таким как Ruby, PHP, Python, Java, JavaScript/Node, bash. Также у вас есть возможность развернуть сервер баз данных, например, MySQL, PostgreSQL, MongoDB, Cassandra, Redis, Memcached.

Рендеринг на стороне сервера

Система прямых HTTP-запросов к server-rendered приложению заключается в том, что браузер отправляет HTTP-запрос, а сервер отвечает HTML-страницей.

Между получением запроса и ответом на него, сервер обычно обращается к базе данных и генерирует страницу с помощью шаблонизатора (ERB, Blade, EJS, Handlebars). В открытой браузером странице HTML отвечает за то, что в ней содержится, CSS за то, как это выглядит, а JS — за взаимодействие пользователя с контентом.

Коммуникация с использованием AJAX

Аббревиатура AJAX расшифровывается как Asynchronous JavaScript and XML (асинхронный JavaScript и XML). Эта технология основывается на отправке HTTP-запросов JavaScript-кодом со страницы. Исторически ответ поступал в XML, сегодня же он преобразился в более удобный JSON.

AJAX подразумевает, что ваш сервер имеет некую конечную точку, отвечающую на запросы XML или JSON-ами. Два примера отвечающих за это протоколов — REST и SOAP.

Одностраничные приложения

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

Универсальные/изоморфные приложения

React и Ember в числе прочих библиотек и фрейморков позволяют одинаково успешно рендерить приложение как на клиенте, так и на сервере. Созданное подобным образом, оно использует и AJAX, и рендерящийся на сервере HTML для взаимодействия бэкенда и фронтенда.

Standalone фронтенд

По мере развития веб-приложений, они все меньше и меньше зависят от подключения к сети.

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

Легковесный бэкенд

Параллельно бэкенд становится все более и более легким. Такие технологии как хранилища документов и графовые базы данных подразумевают довольно вялую активность повторной агрегации данных на стороне сервера. Ответственность за определение, какие данные требуются (графовые БД) и как вытащить все необходимые их фрагменты (REST API) ложится на клиентскую сторону.

Сегодня создаются бэкенд-серверы, которые даже запущены не все время, а только тогда, когда в этом возникает необходимость, спасибо таким бессерверным архитектурам, как AWS Lambda.

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

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

Оригинал

Фронтенд и бэкенд: о самом главном

Освоить основы фронтенда за 12 часов: большая видеоподборка

введение, инфраструктура бэкэнд / Блог компании Surf / Хабр

Оглавление

1. Введение

2. Backend

2.1. Инфраструктура.

2.2. Доменное имя. SSL.

2.3. Серверное приложение на Dart.



3. Web

3.1. Заглушка «Under construction»



4. Mobile

Введение

Меня, Flutter-разработчика, знакомые часто спрашивают: «Что же такое язык Dart?». Качают головой со словами: «А вот Петя серьёзные транспорты на Java пишет, а в Яндексе вообще плюсы в проде…». Ну что ж, пожалуй, действительно, Dart далёк от практик «фабрик для создания фабрик» из Java. Однако если стоит задача реализовать клиентские приложения сразу для нескольких платформ, не утонув в потоке задач по синхронизации разработчиков разных целевых ОС; создать целостный UI, узнаваемый, но специфичный для Android, iOS и веб и в целом уложиться в адекватные бюджет и сроки, — здесь Flutter не имеет конкурентов. И эти вопросы стоят вдвойне если у вас… стартап.

Итак, легенда: некий стартап решил создать новый сервис… ну, например, для

обмена списками покупок

Такая себе идея для стартапа, я знаю, но если я выпущу ещё один ToDo лист в этот мир, мне будет стыдно 🙂

между пользователями сервиса. Цель стартапа — выпустить MVP за три месяца на трех платформах (плюс четвертая — сервер, конечно).

10 лет назад я бы сказал, что этот кейс не имеет решения и постарался бы держаться от него подальше, 3 года назад решением мог стать стек ReactNative/React/NodeJs, в 2020 году для этого есть Dart. Добро пожаловать в атмосферу разработки альфа версии сервиса, я постараюсь наглядно пройти и объяснить весь процесс разработки. Код всех приложений будет выложен в паблик. Комментарии, включая набросы и холивары, приветствуются. Спросить автора «по существу» или просто посоветоваться можно в Telegram канале нашего отдела.

Инфраструктура бекэнд

Типовым способом размещения серверного приложения является, конечно, VPS (виртуальный приватный сервер). Фактически — это часть физического сервера в дата центре, ресурсы которого (ядра процессора и оперативная память) разделены с помощью технологии виртуализации (о наиболее распространённых технологиях аппаратной виртуализации можно почитать здесь XEN, KVM). Внимание: технологии программной виртуализации (OpenVZ, Virtuozzo) для нашей задачи могут не подойти из-за конфликтов с Docker и агрессивным оверселлингом (зачастую, при внимательном прочтении договора аренды такого VPS, можно обнаружить, что провайдеры гарантируют «не менее 5%» (!) утилизации ядра арендуемого процессора. Это означает, что провайдер планирует продать наше ядро процессора 20 (!) раз).

Итак, приобретём бюджетный VPS со следующими характеристиками: 1 ядро процессора, 1ГБ оперативной памяти, 10ГБ накопителя (в моём случае, это гибридный HDD). В качестве операционной системы выберем Ubuntu, желательно одной из LTS версий. После чего в электронную почту придёт сообщение об активации сервера с логином и паролем доступа по SSH (зашифрованный доступ к консоли операционной системы нашего VPS) в формате SSH:

IP-адрес: 91.230.60.120

Пользователь: root

Пароль: <Пароль>

Проверим подключение, введя в командной строке:

ssh [email protected]

и, по запросу:

password: <Пароль>

Результатом должен быть вывод сведений о виртуальном сервере и поле ввода внизу:

Server is hosted by хххххххххх

Hostname: 91.230.60.120

Kernel: 3.19.0-22-generic (Ubuntu хх.хх LTS)

Uptime: 09:07:06 up 3 days, 17:17, 1 user, load average: 0.00, 0.01, 0.05

CPU: Intel® Xeon® CPU 0 @ 2.00GHz (1 cores)

Memory: 989 MB total / 723 MB free

[email protected]:~$

Поздравляю, наш виртуальный сервер создан и доступен для работы.

Теперь определимся со структурой бекэнд. Нам понадобится HTTP сервер. Мы будем использовать NGINX. Его задачами будут:

  1. Раздача статических файлов (файлы веб приложения).
  2. Раздача служебных ресурсов, например, файлов подтверждения владения доменом для мобильных приложений, сведений о владельце для получения SSL сертификатов Let’s encrypt и пр.
  3. Reverse proxy для доступа к серверным приложениям.
  4. Шифрование соединений — https.

Два серверных приложения:

  1. Приложение регистрации и авторизации пользователей. Назовём его auth_app.
  2. Приложение с данными. Назовём его app.
  3. Для каждого из приложений п.2 нам понадобится отдельная база данных PostgreSQL.
  4. Приложение для автоматического получения и обновления сертификатов шифрования SSL (в следующей статье).

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

Разработку будем вести в IDE Visual Studio Code от Microsoft, которая, благодаря множеству доступных плагинов, позволит работать со всеми необходимыми технологиями. Также необходимо установить следующие расширения:

После перезапуска VScode подключимся к нашему VPS. Нажимаем F1 и начнем вводить команду:

Remote-SSH: connect to  Host…

далее новое подключение:

+ Add New Ssh Host

затем:

ssh root@<ip-адрес сервера>

Откроем окно терминала VScode (Menu/Terminal/New terminal) и проверим системные ресурсы командой:

top

Готово, доступ к консоли и файловой системе VPS получен:

Утилита top будет использоваться довольно часто, поэтому установим её псевдографическую версию htop:

Ctrl-C #Завершаем выполнение утилиты top
apt-get update #Обновляем установленные пакеты
apt-get install htop #Устанавливаем htop 
htop #Запускаем 

Теперь необходимо установить Docker и Docker compose:

Ctrl-C #Завершаем выполнение утилиты htop

Поскольку docker отсутствует в официальном репозитории Ubuntu, установим дополнительный репозиторий

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common #Устанавливаем необходимые утилиты 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #Устанавливаем ключ репозитория docker 
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" #Добавляем репозиторий 
apt-get install docker-ce docker-ce-cli containerd.io #Устанавливаем
curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #Скачиваем менеджер Docker compose 
chmod +x /usr/local/bin/docker-compose #Устанавливаем разрешение для загруженного файла «исполняемый файл»
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose #Добавляем символьную ссылку в директорию исполняемых файлов 
 docker  --version #Проверяем
docker-compose --version

Отлично, сервер готов к тестовому развёртыванию сервиса.

Теперь установим Docker desktop на нашем локальном ПК для разработки. Установщик для Windows 10, версия для MacOS здесь. Будет установлен не только Docker, но и Docker toolbox, в который входят Docker compose и графические утилиты для работы с контейнерами.

Откроем новое окно VScode, Menu/File/Open folder… Создадим новую папку нашего проекта, например, Srv и откроем её. В этой папке создадим файл docker-compose.yaml:

В этом файле описывается сценарий запуска контейнеров сервиса, их зависимости, переменные, команды, сети, хранилища и пр.

Здесь необходимо остановиться и уточнить разницу между образом и контейнером Docker. Контейнер — это приложение + его зависимости (например, пакеты и библиотеки) + операционная система, которую можно с помощью Docker запустить как обычное приложение. А образ — это подготовленный к запуску и упакованный в архив контейнер. Таким образом, весь наш бекэнд будет представлять собой набор контейнеров с описанием сценария их запуска.

Первым контейнером, который мы запланировали станет HTTP сервер NGINX. И давайте подготовим необходимый образ… или нет? Дело в том, что для очень многих веб приложений и сред исполнения их разработчиками или комьюнити уже собраны необходимые образы и размещены в публичном реестре DockerHub. Разумеется такой широко используемый образ уже собран и ожидает нас по этой ссылке.

Обратите внимание на список — это различные версии, они отличаются и версиями самого NGINX и дополнительными инструментами (например, установленным PERL). Для разработки можно использовать тэг «latest» (последняя стабильная версия на момент запроса образа), но для развёртывания на сервере, конечно, стоит использовать конкретную версию. В данный момент это образ nginx:1.19.0.

Здесь и далее необходимые пояснения к содержимому docker-compose.yaml я буду указывать в комментариях в самом листинге файла:

Сохраним изменения в файле, откроем консоль VScode и выполним команду запуска сценария

docker-compose up

Этой командой был не только запущен сценарий, но и вывод консоли контейнера был направлен в консоль хоста. Теперь, если в адресной строке браузера обратиться к локальному хосту на порте 8081 будет получена стандартный ответ NGINX:

Наш первый контейнер уже работает. Обычно запуск сценария выполняется командой:

docker-compose up -d

это позволяет запустить контейнеры в режиме сервиса (без вывода в консоль). Остановка контейнеров сценария выполняется командой:

docker-compose down

Для тестирования http запросов в VScode есть удобное расширение REST client.

Установим его и напишем первый отладочный тест нашего сервиса. Для этого создадим файл client.http в папке test/http_dev/:

Таким образом можно выполнять тестовые запросы, просматривая подробную информацию об ответах сервера.

Теперь давайте заглянем внутрь контейнера. Остановим выполнение сценария в консоли:

Ctrl-C

и запустим с флагом:

docker-compose up -d

Теперь запросим список выполняемых в данный момент контейнеров (процессов):

docker-compose ps

В списке выполняемых только один контейнер. Давайте откроем его:

docker exec -it srv_web_1 bash

Эта команда выполняет (exec) приложение bash (командная оболочка Linux) в контейнере srv_web_1 и не дает закрываться консоли (флаги -it):

Команда ls покажет стандартную структуру папок Linux:

Нас интересует файл /etc/nginx/conf.d/default.conf — настройки NGINX, для просмотра можно использовать утилиту cat

cat /etc/nginx/conf.d/default.conf

В настройках NGINX один блок (так называемый location), в котором включено прослушивание порта 80 и раздача статических файлов из папки контейнера /usr/share/nginx/html. Можно попробовать внести изменения в файл настройки NGINX и перезапустить его, применив изменения, но при перезапуске сценария контейнер будет восстановлен из образа и никакие наши изменения не сохранятся. Это неправильный путь.

Выйдем из консоли контейнера:

Ctrl-D

Мы напишем свой файл настройки и разместим свои статические файлы, а при запуске будем их монтировать в контейнер NGINX. Создадим файл default.conf в папке /conf.d нашего проекта:

Создадим заглушку статического файла /public/index.html:

Теперь в сценарии запуска docker-compose.yaml смонтируем наши папки в файловую систему контейнера:

Обратите внимание, что содержимое папки проекта ./conf.d заменит содержимое контейнера в /etc/nginx/conf.d/, а в корневую папку папку контейнера будет смонтирована папка ./public.

Перезапустим сценарий:

docker-compose restart

Тестовый запрос:

Давайте посмотрим на файл default.conf. Обратите внимание, что мы отключили логирование доступа к статическим файлам access_log off. Это хорошее решение для прода, но очень неудобное при тестировании и разработке. Давайте создадим тестовые файл конфигурации NGINX /conf.dev.d/default.conf и сценарий docker-compose.dev.yaml.

Остановим сценарий:

docker-compose down

и запустим уже с флагами имен файлов:

docker-compose -f docker-compose.yaml -f docker-compose.dev.yaml up

При таком запуске сценария сначала будет прочитаны настройки из файла docker-compose.yaml, а затем будут добавлены или заменены совпадающие поля из docker-compose.dev.yaml (ports, volumes). Проверим логирование повторив запрос:

Итак, нам осталось выполнить копирование и запуск на сервере. Создадим на сервере папку /opt/srv_0/ (мы ведь ещё не закрыли окно VScode c SSH соединением к VPS) и скопируем в неё всё содержимое нашего проекта командой:

scp scp -r ./* [email protected]:/opt/srv_0/ 

Теперь на сервере в папке проекта /opt/srv_0/ выполним команду:

docker-compose up -d

Напишем ещё один http тест, теперь уже для VPS:

Ну или откройте в браузере ссылка.

→ Исходный код github

Вместо заключения

Итак, сделан первый шаг. Мы успешно раскатили на боевой сервер приложение. Во второй статье мы продолжим настройку сервера: назначим доменное имя и установим сертификат шифрования SSL. В третьей статье напишем flutter web приложение с обратным отсчётом времени до запуска нашего сервиса, соберём его и разместим на нашем сервере. В четвертой статье напишем и соберём нативный сервер под Linux на языке Дарт, который станет основой для приложений авторизации и данных нашего сервиса.

Комментарии и предложения приветствуются. Пообщаться с автором можно в Telegram-канале.

Что такое Backend и Frontend разработка. Понятия и отличия

Приветствую вас, дорогой товарищ! Вы пришли узнать,что такое бэкенд и фронтэнд и в чем между ними разница? Очень емкий ответ на этот вопрос дает основная картинка к этому посту. Она многое объясняет. Костыли и велосипеды нарисованы не просто так. Опытные ребята поймут о чем речь )). Если простыми словами, то Frontend — это то, что видит пользователь, например страница сайта, и с чем он может взаимодействовать. Backend — наоборот, все, что скрыто от глаз, программная часть, которая работает «за кулисами», но тесно взаимодействует с фронтэндом. Еще можно сравнить с айсбергом. Мы видим только малую часть. Теперь давайте разберем каждый пункт более подробно.

Что нужно знать о фронтенде

Если вы хотите стать frontend разработчиком, то необходимо изучить несколько смежных технологий, а именно:

  • HTML
  • CSS
  • JavaScript
  • Основы дизайна
  • Верстка

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

Что нужно знать о бэкенде и на чем его пишут

Backend это серверное программирование, проектирование баз данных. Новичку довольно сложно понять на начальном этапе что к чему и разобраться в терминах. Вот несколько языков программирования, на котором пишут бэкенд:

  • PHP
  • Python
  • Java
  • C#
  • Ruby
  • JavaScript (Node JS)

Этот список относится в основном к веб-разработке, но использование бэкенд этим не ограничивается, он так же нужен для десктопных и мобильных приложений, серверных продуктов, робототехнике и еще много где. Если вы хотите изучать и не знаете с чего начать, то чисто для себя можно выбрать PHP или Python. Относительно не сложны в понимании. Если говорить о бэкенде, как о выборе профессии, то нужно подстраиваться под рынок и подробно его изучать. Необходимо отслеживать тенденции. IT — одна из самым быстроразвивающихся сфер. Здесь очень быстро меняются тренды. Что сейчас имеет большую популярность, завтра может затмить новая уникальная библиотека или фреймворк и все массово будут переходить на них, потому что они лучше быстрее, легче и т.д. Такова реальность. Поэтому нужно быть, что называется «на волне». А вот и зарплаты backend разработчиков на конец 2019 года.

Чем фронтенд отличается от бэкенда

Наверное вы и сами уже догадались в чем основные отличия Frontend и Backend. Первые имеют бОльшую востребованность и огромную конкуренцию, ведь освоить гораздо проще, чем вторую. Помимо этих двух понятий существует еще и третий — Full stack. Фулл стек разработчик — это человек, который знает и ту и другую сторону и хорошо ими владеет. Это уже высший пилотаж, но зависит от уровня. Иногда лучше знать хорошо что-то одно, чем плохо всего понемногу. Надеюсь этой статьей я ответил на все ваши вопросы. А если они остались, то милости прошу задать их в комментариях.

Frontend и backend: что это?

Все слышали в программировании про эти понятия. Простыми словами я расскажу о Frontend и Backend:  что это такое? Давайте быстро пробежимся.

Frontend и backend, чем они отличаются?

Есть допустим стартовая страница Яндекса (рис.1). Мы видим на ней дизайн, видим страницу.

Рис.1 Страница Яндекса ( дизайн)

Если нажать код этой страницы, мы увидим код этой страницы в браузере (рис.2).

Рис.2 Frontend

Это и есть frontend – это код, который скачивается в браузере, и который я вижу.В этом коде описаны все элементы, цвет стрелочки, цвет текста, верстка, что здесь такой отступ. То есть все взаимодействия внутри браузера – это frontend.

Backend – это огромные сервера, которые располагаются в самом Яндексе (рис.3).

Рис.3 Backend

Кстати, рекомендую посмотреть прямо сейчас:

Frontend или Backend, что выбрать?

Для ответа на этот вопрос важно понять, чем отличается frontend от backend. Давайте на примере разберем.

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

 Поэтому frontend —  это:

  • html
  • css
  •  java script
  • frameworks
  • Jquery, Angular, Backbone, Closure, Extj

Backend – это уже для конкретных программистов, backend дизайнеру знать необязательно. Вот чем frontend отличается от backend.

Backend:

1. Php
2. Rails
3. Ruby
4. Python
5. C#
6. Java
7. .NET
8. SQL
9. Node.js
10. Django
11. Xamarin
12. Swift

Frontend и Backend в работе веб-дизайнера

Дизайнеру важно знать Frontend и иметь представление о работе backend. Нужно просто понимать как это работает, какие данные мы понимаем. И лучше держать под боком программиста, который в backend соображает.

Что такое внутренняя разработка? — Простой программист

Программные приложения похожи на айсберги.

Есть часть приложения, которую видит пользователь, а затем — в большинстве случаев — большая часть приложения остается невидимой. Это неуловимый и мистический «бэкэнд».

В главе о веб-разработке мы в основном говорили о веб-разработке, поскольку она связана с прямым взаимодействием с конечным пользователем — то, что мы могли бы назвать «интерфейсной веб-разработкой».”

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

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

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

Все это происходит за кадром.

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

Что такое «внутренняя разработка»?

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

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

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

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

Чем занимаются внутренние разработчики?

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

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

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

Часто внешние разработчики создают пользовательский интерфейс, а внутренние разработчики пишут код, который заставляет все это работать.

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

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

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

Он может участвовать в построении фреймворков или архитектуры системы, чтобы упростить программирование.

Back-end разработчики обычно тратят гораздо больше времени на реализацию алгоритмов и решение проблем, чем front-end разработчики.

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

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

Первичные технологии и навыки внутренней разработки

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

Один из важных навыков, который необходим back-end разработчикам, связан с SQL и базами данных .

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

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

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

Например, в то время как интерфейсный веб-разработчик может быть сосредоточен на HTML, CSS и JavaScript, внутреннему разработчику может потребоваться дополнительная информация о веб-фреймворках PHP, Ruby on Rails, ASP.NET MVC или любой другой серверной инфраструктурой веб-разработки, которая используется для создания приложения.

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

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

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

А как насчет разработчиков полного стека?

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

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

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

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

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

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

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

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

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

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

Тогда вы все еще можете называть себя «full-stack», но на практике вы будете гораздо более полезны для команды.


.

Что такое бэкэнд в разработке? (Объясняется простым английским языком)

Backend — это технический термин, используемый для описания области конфигурации приложения. В WordPress бэкэнд используется для определения административной области веб-сайта, где вы создаете контент, устанавливаете плагины, управляете настройками дизайна и т. Д. Бэкэнд WordPress также известен как wp-admin или админка WordPress.

Бэкэнд WordPress

Вы можете войти в бэкэнд WordPress, добавив / wp-admin / в конце URL-адреса вашего веб-сайта.

Бэкэнд WordPress состоит из следующих страниц:

Dashboard — это первый экран, который вы увидите и отображает обзор вашего веб-сайта.

Сообщения — это место, где вы составляете, редактируете, публикуете или удаляете статьи.

Media позволяет загружать, просматривать, искать, редактировать и управлять медиафайлами.

Страницы — это место, где вы можете просматривать, создавать и управлять статическими страницами.

Комментарии позволяет модерировать и управлять комментариями посетителей.

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

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

Пользователи позволяет вам добавлять, просматривать, редактировать и определять роли пользователей на вашем сайте.

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

Настройки — это центральное место для настройки основных параметров вашего сайта.

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

В наших руководствах по WordPress и других статьях в Интернете вы можете встретить термин «бэкэнд», который используется в некоторых других сценариях.

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

Давайте посмотрим на каждый из них и на то, что они означают.

Что такое Backend-разработчик?

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

Что такое серверные языки?

Backend языки помогают серверам, приложениям и базам данных взаимодействовать друг с другом. Backend-разработчики используют специальные языки программирования, такие как PHP, Ruby, Python, Java и .Net, для создания серверных приложений. Эти серверные языки используются для управления системами с MySQL, Oracle и SQL Server для поиска, сохранения и редактирования данных для внешних пользователей.WordPress использует PHP и Javascript в качестве внутренних языков. Эти языки кодирования взаимодействуют с базой данных WordPress, используемой для хранения и организации данных ваших веб-сайтов.

Что такое проект внутренней разработки?

Backend разработка — это термин, используемый в процессе планирования веб-сайтов. Это включает в себя исследование рынка, фронтенд и бэкэнд-разработку, стратегию создания контента, оптимизацию SEO и многое другое.

В чем разница между серверной частью и фронтендом?

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

Не забудьте проверить ссылки ниже для получения дополнительной информации о WordPress Backend.

Дополнительное чтение

.

Я не говорю на вашем языке: интерфейс и серверная часть

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

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

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

Бесплатная пробная версия Treehouse: Хотите узнать больше о серверной и интерфейсной веб-разработке? Подпишитесь на бесплатную пробную версию Treehouse.

Различия между дизайном и разработкой на самом деле приводят к большему количеству дискуссий вокруг веб-интерфейса и внутреннего интерфейса. Что такое бэкэнд? А что такое фронтенд? Начнем с внешнего интерфейса…

Что такое интерфейс?

Когда мы обсуждаем «интерфейс» сети, на самом деле мы говорим о той части сети, которую вы можете видеть и с которой вы можете взаимодействовать. Интерфейс обычно состоит из двух частей: веб-дизайна и интерфейсной веб-разработки.

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

Итак, теперь, когда мы обсуждаем термин «веб-дизайн», мы действительно говорим о тех, которые работают с Photoshop и Fireworks, и — тех, которые кодируют с использованием HTML, CSS, JavaScript или jQuery (здесь может быть важно указать, что jQuery — это скомпилированная библиотека Javascript).

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

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

Что такое бэкэнд?

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

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

Мы вызываем человека, который создает всю эту технологию, для совместной работы backend-разработчика .Бэкэнд-технологии обычно состоят из таких языков, как PHP, Ruby, Python и т. Д. Чтобы сделать их еще проще в использовании, они обычно расширяются такими фреймворками, как Ruby on Rails, Cake PHP и Code Igniter, которые делают разработку быстрее и упрощают совместную работу .

Многие веб-профессионалы, которые только начинают работать в этой области, возможно, слышали, как многие люди говорят о WordPress. WordPress — хороший пример совместной работы внешнего и внутреннего интерфейса, поскольку WordPress — это платформа с открытым исходным кодом, построенная на PHP, которую вам необходимо установить на свой сервер с базой данных.Затем дизайнеры настраивают внешний вид и функциональность сайтов WordPress с помощью CSS, jQuery и JavaScript.

Заключение

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

Границы между дизайном и разработкой кажутся с каждым днем ​​все более и более размытыми, но в основном они все еще очень разные.

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

Что вы думаете о дизайне и разработке, а также о интерфейсе по сравнению с серверной частью? Пожалуйста, присоединяйтесь к беседе, оставив комментарий ниже. Ура!


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

.

Что есть, инструменты и примеры

  • На главную
  • Тестирование

      • Назад
      • Гибкое тестирование
      • BugZilla
      • Cucumber
      • Тестирование базы данных
      • Jmeter
      • Jmeter Тестирование
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Назад
      • Центр качества (ALM)
      • 000
      • Центр контроля качества (ALM)
      • 000 Управление тестированием

      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • MMO
      • HANA
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Tutorials

    000

  • AngularJS
  • ASP.Net
  • C
  • C #
  • C ++
  • CodeIgniter
  • СУБД
  • JavaScript
  • Назад
  • Java
  • JSP
  • Kotlin
  • Linux
  • Linux
  • Kotlin
  • Linux
  • js

  • Perl
  • Назад
  • PHP
  • PL / SQL
  • PostgreSQL
  • Python
  • ReactJS
  • Ruby & Rails
  • Scala
  • SQL
  • 000

  • SQL
  • 000

    0003 SQL

    000

    0003 SQL

    000

  • UML
  • VB.Net
  • VBScript
  • Веб-службы
  • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Business Analyst
      • Создание веб-сайта
      • CCNA
      • Облачные вычисления
      • COBOL
      • 9000 Compiler

        9000

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *