В чем разница между фронт и бэкенд разработкой

Константин | 2 мая 2023 г. 17:15
В чем разница между фронт и бэкенд разработкой

Доброго времени суток тебе, уважаемый читатель. Сегодня я хочу немного рассказать о своем представлении о том, как проделать путь в бэкенд разработку с нуля. Хотя, может и не совсем с нуля, бывает люди начинают погружаться в эту сферу с определенным бэкграундом, но, представим что у тебя, даже если и есть понятие о том, что такое "бэк", то весьма отдаленное. Также хочется сказать, что даже для общего понимания - тема очень обширная, и даже просто рассказа о том, какие есть технологии и для чего их чаще всего используют определенно точно - недостаточно. Ну и конечно для разграничения понятий бэкенд и фронтенд, нельзя немного не рассказать про второе. Сперва стоить погрузиться в общее представление о том, что же это за зверь такой: "Бэкенд"! Поехали:

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

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

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

Высокоуровневые языки программирования (например, Python, Java, C++) представляют собой языки, которые абстрагируют программиста от аппаратного обеспечения компьютера. Они обычно предоставляют более высокий уровень абстракции и более удобный синтаксис для написания программ, а также предоставляют библиотеки и фреймворки для упрощения разработки. Просто представь себе, что ты пишешь простым и понятным языком в удобном интерфейсе код, который одним только своим синтаксисом говорит о том, какую работу он выполняет. А сам язык программирования преобразует его в более низкоуровневые команды, чтобы твой компьютер смог обработать их с помощью своего аппаратного обеспечения.

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

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