Developer following scheme he has drawn when wring a code
Сегодня большинство бизнесов (если не все) нуждаются в полнофункциональных сайтах для обслуживания своих клиентов. Бэкенд-разработчики помогают создать и оптимизировать такие ресурсы.
Бэкенд-разработка — это все процессы, скрытые от глаз потенциального пользователя, происходящее вне его браузера и компьютера.
Бэкенд-разработчики отвечают за построение логики приложений и сайтов, создание алгоритмов, а также решают задачи обработки данных. Такие IT-специалисты обычно умеют интегрировать в имеющуюся платформу всевозможные сервисы, инструменты, библиотеки.
В этой статье я расскажу, какие знания и навыки пригодятся вам для старта карьеры бэкенд-разработчика. Речь пойдет о технической базе, которая позволит успешно овладеть программированием. А в конце — небольшой бонус для практики.
Именно на этом устройстве вы создаете программные приложения. Поэтому нужно понимать, что находится «под капотом» и как все работает: процессор, оперативная и постоянная память, материнская плата, дисководы, разъемы и т.д.
По собственному опыту скажу так: хорошему бэкендеру лучше разбираться в нескольких из них. Хотя для разработки можете выбрать ту, которая больше нравится. Чаще всего бэкенд-разработчики обращаются именно к Linux. Известность системы обусловлена тем, что на ней работает большое количество серверов. Лично я выбрал Linux Mint и Ubuntu, а в качестве основной системы использую MacOS.
Следует знать основные консольные команды: работа с директориями, файлами, подключение к сторонним серверам, консольный текстовый редактор. Используя эти знания, вы сможете выполнять большинство действий с помощью терминала. Например, создавать файлы, директории, искать нужные данные, устанавливать дополнительные программы, управлять процессами операционной системы и т.д. К тому же у большинства серверов может не быть графической панели администрирования. В таком случае пригодится использование терминала.
Пользователь вводит в адресную строку запрос. Браузер пытается понять IP-адрес сервера, на котором находится сайт. Обычно такая информация хранится в DNS — распределенной системе серверов. Это что-то вроде списка контактов в смартфоне. Только в качестве номеров здесь IP-адреса, а вместо имен людей — домены сайтов.
Например, если необходимо найти IP-адрес сайта mail.google.com, браузер спрашивает о нем у DNS-сервера. Сервер может ответить: «Я не знаю о mail.google.com. Я знаю сервер, который отвечает за google.com». Запрос переадресовывается дальше, пока один из серверов не найдет ответ на вопросы. Как только это удалось, браузер пытается установить соединение, обработать ответ и отобразить запрашиваемую страницу конечному пользователю.
Поскольку бэкенд-часть находится на серверах, разработчику нужно научиться работать и с ними. Именно они предоставляют доступ к данным по протоколам HTTP и HTTPS. Попробуйте установить веб-сервер, изучите его конфигурации и команды для работы с сервером. А затем узнайте, как создать конфигурацию для вашего будущего сайта или веб-приложения.
Почти каждое приложение работает на основе информации, которую нужно где-то хранить. Начните с реляционных баз данных MySQL или Postgre. Они используют одинаковый язык для работы — SQL. Изучите базовый синтаксис запросов, в частности Select, Insert, Update, Delete. Затем узнайте, как создавать базы данных, модифицировать таблицы, добавлять и удалять колонки, ознакомьтесь с индексами и транзакциями.
Чтобы качественно обработать полученную информацию, обратитесь к наиболее распространенным функциям для работы с массивами, срочными и другими типами данных. Важно понимать базовые алгоритмы для работы с данными, в частности, сортировку массивов. Начните с сортировки пузырьком и постепенно овладейте алгоритмом быстрой сортировки. Исследовав оба варианта, можете сравнить их производительность. После этого вы уже сможете написать набор инструкций на псевдокоде, а затем превратить их в настоящий код.
Советую потренироваться на задачах по обработке массивов данных. Упражнения будут помогать осознать, как устроен язык программирования «изнутри».
Также необходимо ознакомиться со следующими терминами:
Что-то знакомое? Да, это все может напомнить классическую математику. Если вам хорошо давалась эта наука в университете, то с языком программирования будет значительно легче разобраться.
Как правило, вышеперечисленную теорию преподают на технических кафедрах. Для начала этих знаний вполне достаточно. А дальше — терпение, упорство и желание изучать новое помогут постичь бэкенд.
Прежде чем приступить к изучению любого языка программирования, я рекомендую четко понять, какое у того или иного языка назначение. Каждый из них используется для разных сфер программирования, хотя иногда эти сферы совпадают:
Если хотите развиваться в сфере машинного обучения, выбирайте Python или язык R. Для веб-разработки лучше всего подойдет стандартный стек LAMP (Apache)/LEMP (Nginx), PHP или Python .
В свое время я выбрал PHP, потому что хотел связать свою жизнь с веб-разработкой, работать с проектами e-commerce. Сегодня это один из самых популярных языков для серверной разработки. Чем это обусловлено?
Замечу: ниже приведенная задача не из легких, требует немного креатива, но хорошо поможет вам разобраться с основными подходами в программировании.
Когда новичок создает сайт, для каждой страницы он обычно делает отдельный файл. Со временем страниц становится все больше. Разработчику все труднее поддерживать структуру в должном виде. В нашем случае нужно создать файл index.php, на который будут отправляться все запросы с фронтенда. Затем необходимо настроить конфигурацию веб-сервера таким образом, чтобы получать запросы именно через этот файл.
Переходим к формированию структуры папок. Лучше всего сделать так, чтобы бизнес-логика вашего фреймворка была отделена от той части, которая доступна пользователю в браузере. Рекомендую следующее:
Начальная структура директорий готова. Следующий этап — маршрутизация логики для приложения. Ее можно поместить, например, в файл bootstrap.php в каталоге app и обязательно подключить этот файл в index.php. Кроме того, нужно создать массив роутов, где будут сопоставляться страницы и соответствующие контроллеры и обрабатывать запросы пользователя.
После создания маршрутизации переходим к созданию контроллеров, моделей данных и темплейтов для отображения результатов пользователя.
Логика будет следующая: есть роут, к которому привязан контроллер — в контроллере происходит запрос к базе данных с помощью модели данных — полученная модель используется в темплейте для отображения данных пользователю — готовый темплейт выдается как результат работы контроллера.
В дальнейшем можно расширять функционал фреймворка, добавлять файлы для конфигурации, миграции для базы данных, изменять структуру директорий, использовать сторонние библиотеки и т.д.
В этих материалах вы найдете базовые понятия по веб-разработке:
Документация:
В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…
Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…
«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…
Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…
Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…
Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…