Фронтенд – внешняя часть приложения, с которой непосредственно контактирует пользователь. Например, фронтенд веб-сайта — это все, что пользователь видит на экране и с чем может взаимодействовать при помощи браузера. Проектируют и разрабатывают пользовательский интерфейс устройства фронтенд-разработчики. Их базовые навыки включают в себя знание HTML и CSS, JavaScript с фреймворками, препроцессоры и сборщики SASS, LESS, GULP, графические редакторы, знание принципов верстки и дизайна интерфейсов. Фронтенд-разработчики работают в команде с UX/UI-дизайнерами, тестировщиками, менеджерами продукта и бэкенд-разработчиками. Код, написанный фронтенд-разработчиком, может посмотреть любой пользователь интернета, открыв на веб-странице «Инструменты разработчика» (Dev Tools):
Бэкенд – внутренняя, скрытая от пользователя часть приложения. Это часть приложения, которая работает на удаленном сервере, а не в браузере или персональном компьютере. Бэкенд-разработчик работает над внутренней логикой и архитектурой приложения, обеспечивает интеграцию с внешними сервисами. Благодаря его усилиям продукт быстро и правильно функционирует, обеспечивает качественный поиск, безопасно хранит пользовательские и другие данные. Бэкенд можно писать почти на разных языках программирования.
Клиент-серверная архитектура – это способ организации работы приложений, в котором выделяют три составляющие: клиент – приложение, с которым работает пользователь посредством GUI, сервер – система, к которой обращаются, чтобы получить необходимые данные; и сеть – система из нескольких устройств, которая помогает клиенту и серверу обмениваться данными.
HTTP (HyperText Transfer Protocol) – это протокол передачи гипертекста, он позволяет клиенту и серверу обмениваться сообщениями. Клиент отправляет запрос (request), а сервер возвращает ответ (response). Чтобы обеспечить безопасность передачи данных, применяется c расширением защиты – HTTPS (HyperText Transfer Protocol Secure – протокол защищенной передачи гипертекста). Он шифрует соединение по криптографическим протоколам, благодаря чему клиент и сервер могут безопасно обмениваться данными. Чтобы узнать, что веб-сайт работает по защищенному протоколу HTTPS, достаточно посмотреть на адрес сайта: слева будет отображаться символ замочка:
Кэш (Cache) – данные веб-страниц (изображения, аудио и видео, CSS, HTML, JS-файлы), которые сохраняются локально на компьютере после посещения сайта. Технология кэширования помогает веб-страницам загружаться значительно при их повторном посещении. Для отображения страниц браузер обращается к кэшу, а остальное содержимое запрашивает с сервера.
API (Application Programming Interface – программный интерфейс приложения, или интерфейс программирования приложений) – это набор правил, подпрограмм и протоколов для создания программных приложений. API помогают в общении со сторонними программами или службами и активно используются различными компаниями, чтобы облегчить разработчикам доступ к своим сервисам.
Баг – общий термин, используемый для обозначения ошибки или дефекта в программном обеспечении, который приводит к сбою в работе программы. Чтобы зафиксировать найденный баг и передать его на рассмотрение и исправление разработчикам, составляют баг-репорт. О том, как правильно написать такой отчет об ошибке, мы писали в этой статье. Баги негативно влияют на пользовательский опыт и приводят к финансовым потерям. Поэтому компании инвестируют в процесс контроля и обеспечения качества, называемый тестированием, или QA. Роль тестировщика считается одной из наиболее доступных входов в IT-сферу. Примерить ее на себя и получить все необходимые знания для старта можно на онлайн-курсах.
Исключение (exception) – особое, неожиданное и аномальное состояние, возникающее во время выполнения программы. Примером исключения может быть случай, когда программа пытается загрузить файл с диска, но файл не существует. Исключения необходимо обрабатывать и устранять, чтобы избежать фатальных ошибок.
Язык разметки (Markup language) — это относительно простой язык, используемый для форматирования общего вида страницы и ее содержимого. Наиболее распространенными языками разметки являются язык гипертекстовой разметки (HTML), расширяемый язык разметки (XML) и стандартный обобщенный язык разметки (SGML).
Объектно-ориентированное программирование (ООП) – подход к программированию, подразумевающий отношение к программе как к набору объектов со своими свойствами и поведением, которые взаимодействуют друг с другом. ООП отвечает следующим принципам: абстракция, полиморфизм, инкапсуляция и наследование. Примеры объектно-ориентированных языков программирования: Java, Python, C++, JavaScript, PHP.
GUI (Graphical User Interface, графический интерфейс пользователя) — вид пользовательского интерфейса, при котором пользователи взаимодействуют с устройством при помощи графических элементов: кнопок, ссылок, курсора, различных форм и так далее. Элементы интерфейса отображают свойства, что значительно облегчает работу пользователя. На данный момент GUI является стандартом для большинства приложений и операционных систем.
Интерфейс командной строки (Command line interface, CLI) — разновидность пользовательского интерфейса, является альтернативой графическому интерфейсу, более привычному непродвинутым пользователям. Инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд). В 1960-80-х годах интерфейс командной строки был основным средством взаимодействия с большинством компьютеров.
Начало работы в командной строке в Windows 10:
Компиляция – это процесс преобразования программного человекопонятного кода в машинный, понятный процессору. Компилятор занимается только преобразованием кода, но не запускает его.
Фреймворк (framework) – шаблон/заготовка, на основе которого можно дописать свой собственный код под конкретную задачу. Фреймворки используются с целью упростить и ускорить создание приложений. Например, для веб-разработки широко используются JavaScript-фреймворки: React, Vue, Angular.
Итерация – процесс многократного повторения определенного фрагмента кода для выполнения какого-то действия. Одной из форм итерации являются циклы. Цикл будет повторять фрагмент кода до тех пор, пока не будет выполнено условие, после чего он сможет продолжить работу. Также термин «итерация» является одним из базовых в сфере управления IT-проектов по Agile-методологии. Итерацией называется временной интервал фиксированной длины, за который команда разработки поставляет единицу ценности в виде работающего протестированного программного обеспечения. В итерацию входит планирование, разработка и тестирование, а продолжительность обычно составляет одну-две недели.
Agile – в широких массах известна как гибкая методология разработки, созданная как обобщение разных подходов к разработке ПО и включающая в себя семейство разных методов и методик разработки. Но в первую очередь Agile следует рассматривать как философию и систему ценностей. Про основополагающие принципы Agile можно прочитать на официальном сайте манифеста Agile. В рамках Agile выделяют два популярных подхода: Scrum и Kanban.
DevOps – это набор методов, сочетающих разработку программного обеспечения и ИТ-операции. Он направлен на сокращение жизненного цикла разработки системы и обеспечение непрерывной поставки программного обеспечения высокого качества. DevOps дополняет Agile-разработку программного обеспечения; несколько аспектов DevOps пришли из методологии Agile. Чтобы больше узнать о DevOps, рекомендуем ознакомиться с подборкой статей на Хабр.
CI/CD – это непрерывная интеграция (Continuous Integration) и доставка (Continuous Delivery). Представляет собой культуру, набор принципов и практик, которые позволяют разработчикам чаще и надежнее вносить изменения в разрабатываемое программное обеспечение. CI/CD — это одна из DevOps-практик. Она также относится и к Аgile-практикам: автоматизация развертывания позволяет разработчикам сосредоточиться на реализации бизнес-требований, на качестве кода и безопасности.