Зачем нужен javascript для создания сайта

HTML, CSS, JavaScript и PHP: что это такое и для чего?
Это самая популярная связка технологий для создания сайтов. Около 90% всех сайтов работает именно благодаря этому набору технологий. Давайте разберемся, что они обозначают и как же они работают?
Веб-разработка
1 нояб. 2019
Каждая из этих технологий имеет различное предназначение, цели и функции. Но бо́льшую ценность они представляют, когда работают вместе, а не по отдельности. Давайте теперь отдельно разберем каждую из этих технологий.
HTML
HTML (Hypertext Markup Language) — это язык гипертекстовой разметки. Эта разметка создается с помощью тегов (то есть с помощью «меток») — наборов символов, входящие в угловатые скобки. Например, основной тег страницы html пишется следующим образом — . Любая страница в интернете состоит из множества тегов. Конечно, это не то, что мы привыкли видеть, когда заходим в интернет. Каждый из этих тегов играет определенную важную роль.
Чтобы упростить задачу понимания этой технологии, давайте представим себе обычный дом. Увидев дом, мы видим его экстерьер, то есть то, из чего сделан дом. Теги на странице можно рассматривать как небольшие кирпичики, с помощью которых построен дом. Важно, чтобы эти кирпичи аккуратно и красиво были разложены, иначе дом будет криво смотреться, а может и вообще он будет непригоден для использования. Также и на страницах, при составлении структуры страницы важно уделить особое внимание тегам.
Рассмотрим общую структуру любой страницы в интернете:

Любая веб страница начинается с . Этот тег дает браузеру понять, что далее представлен код html последней [пятой] версии.
Затем пишется парный тег . Это основной тег страницы, который обязательно должен присутствовать и содержать в себе других 2 основных тега, это head и body.
Внутри парного тега необходимо написать заголовок страницы (тег title), который отображается во вкладке браузера. Так же в контейнере обычно находятся различные мета-теги для поисковых систем, подключение различных файлов к странице (например, стили) и т.д. В этой секции находится информация, которая важна для страницы, но не отображается на ней.
Внутри тега находится всё, что должно быть на странице. Это любые из существующих тегов, текст, картинки, элементы работы с данными и так далее. Всё, что вы видите на страницах в интернете, всегда находится в теге body.
В приведенном выше примере в теге body находятся 2 элемента — тег h1 и тег p. Тег h1 обозначает заголовок на странице, а тег p — абзац. У каждого html тега есть свое предназначение. К тому же все элементы имеют стандартное форматирование браузера, это значит, что размер текста в заголовке по умолчанию будет больше, чем в абзаце. Из таких тегов и составляется страница, которую вы видите в браузере. Однако без графического оформления эти элементы совсем не презентабельные, именно поэтому нужен CSS.
CSS
CSS — Cascading Style Sheets — это каскадные таблицы стилей. С помощью разметки мы создали структуру и наполнение документа, а теперь будем внешне оформлять. Вот для этого и служат каскадные таблицы стилей. Чтобы здесь тоже упросить задачу с понятием CSS, вернемся к нашему примеру с домом. После постройки дома он выглядит совсем не презентабельно, поэтому, чтобы придать красивый вид, его раскрашивают. Подъезд покрашен в один цвет, балконы в другой и так далее. Это и есть графическое оформление. Так же и со страницей: без стилей элементы имеют только стандартное оформление браузера. Но с помощью стилей вы меняете на странице размер текста, его цвет, шрифт и так далее.
Вернемся к нашему примеру кода страницы html. Для тега h1 можно задать красный цвет текста следующим образом:

Как видите, ничего сложного в такой записи нет. Сначала мы указываем к чему нужно применить блок стилей. Далее в фигурных скобках мы описываем стили для этого элемента h1. В этом блоке мы можем задать любые из имеющихся стилей и все они применятся к элементу h1.
Теперь, разобравшись со стилем текста, давайте постараемся это все оживить. Тут нам придется прибегнуть к помощи JavaScript.
JavaScript
JavaScript — это язык программирования, сокращенно «JS». Изначально его создали для того, чтобы «оживить» веб-приложения и веб-сайты, то есть, чтобы элементы интерфейса (всплывающие окна, анимации, кнопки и т.д.) реагировали на действия пользователей. Однако сейчас этот язык программирования применяют не только для оживления страниц, но и на стороне сервера, для создания мобильных приложений, веб-сервисов и так далее.
Если вернуться к примеру с домом — то JavaScript это лифт, который доставляет пользователей на нужный этаж. Пользователь заходит в дом, ему нужно попасть на конкретный этаж, он нажимает на кнопку этажа и далее лифт автоматически доставляет пользователя на нужный этаж. Так же и на странице, пользователь нажимает на кнопку, а JavaScript выполняет нужное действие. Конечно, человек всегда может подняться по лестнице, так же как и сайт может работать без JavaScript, но, согласитесь, именно лифт делает дом лучше, так же как и JavaScript делает лучше веб-страницу.
PHP
Ну и последняя технология в этой связке — PHP. PHP (от англ. Hypertext Preprocessor) — это серверный язык программирования. Как мы уже отметили, если JavaScript работает на стороне клиента (браузера пользователя), то PHP — на стороне сервера (компьютер, где располагается сайт). PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. PHP позволяет соединить все страницы в единое целое и предоставить сайту функции, без которых эти страницы не будут работать как единое целое: авторизоваться на сайте, подать заявку на бронирование, добавить товары в корзину и сделать заказ. PHP работает с базой данных, которая хранит всю динамическую (изменяющуюся) информацию на сайте.
Если вернуться к нашему примеру с домом, то PHP можно представить как водопроводную систему, электричество и т.д. То есть это то, что работает «под капотом» дома. Чтобы лифт работал, в доме нужно электричество. И это более важная составляющая дома, нежели лифт. Когда жилец дома тратит электричество, то все эти показания записываются в «базу данных» дома. Так же и с сайтом, когда пользователь нажимает на кнопку отправки заявки на бронирование, JavaScript отправляет данные на сервер, где PHP обрабатывает эту информацию и записывает в базу данных.
Умея работать с этими технологиями в связке, можно создавать любые сайты, от простых лендингов до огромных интернет-магазинов либо же сложных веб-сервисов с большим количеством данных. Спрос на такие технологии не падает, а это значит, что в ближайшие годы вы точно сможете хорошо зарабатывать, используя эти технологии.
Если вы еще только планируете изучение этих технологий, то рекомендуем рассмотреть обучение на нашем курсе «Веб-верстальщик», в котором подробно изучаются такие технологии, как HTML, CSS и JavaScript. Этих трех технологий вполне достаточно, чтобы создавать сайты. А при необходимости можно заняться освоением языка PHP, чтобы делать более мощные и большие сайты.
#3 – Как создаются сайты? Смотрим код чужого проекта

Перед изучением HTML нам стоит узнать для чего вообще он нужен и какие дополнительно нужны языки программирования для создания веб сайта. За видео мы поговорим на тему разработки веб сайтов и рассмотрим ключевые языки и технологии для разработки сайтов.
Видеоурок
Front-end и Back-end
При создании веб-сайта всегда есть две стороны: Front-end и Back-end. Front-end – это понятие, что описывает разработку внешнего вида сайта. Back-end – это второе понятие, что описывает разработку серверной части сайта. Чем бы вы не хотели заниматься в будущем, но вам в любом случае нужно изучить HTML и CSS . Это – словно таблица умножения в математике. Изучите её, чтобы потом понимать дальнейшие действия.
Вне зависимости от того, хотите ли вы делать функции связанные с сервером (создание комментариев, работа с базой данных, настройка куки. ) или же хотите делать внешний вид сайта (создавать дизайн, разметку. ) вам в любом случае нужно изучить HTML и CSS.
Что за что отвечает?
За счет HTML вы сможете указать какие объекты должны быть на странице: кнопки, текст, формы и так далее. HTML лишь позволит расставить все объекты и по началу они будут выглядеть не особо красиво.
Тут вступает в силу CSS. Он даст вам возможность указать стили для любого HTML объекта. При помощи CSS и HTML вы уже сможете делать красивую разметку веб-сайтов. Ваши сайты будут ничем не хуже, чем полноценные веб проекты, что вы видите ежедневно на тысячах сайтов.
В то же время, HTML и CSS, ни дает никакой функциональности. У вас будет сайт, он будет красивый, но без функций. По этой причине вам стоит ещё обязательно изучить JavaScript. Он позволит создавать пользовательские функции, что выполняются в браузере и для их выполнения не требуется перезагрузка страницы.
И последнее, вам стоит изучить язык, что будет работать с серверной частью сайта. Таких языков много, но наиболее простой язык это PHP . За счет подобного языка вы сможете работать с базой данных, создавать регистрацию, систему комментариев и многое другое.
Базис, что нужен вам для разработки веб сайтов таков: HTML, CSS, JavaScript и PHP. При чем вместо PHP можно выбрать Python, Java, C++ или другой серверный язык.
Помимо базиса есть и много сопутствующих технологий. Сейчас мы рекомендуем вам в них не вдаваться и пока лишь изучить: HTML, CSS и JavaScript.
Языки программирования для создания сайтов
Прежде чем приступать к изучению языков и написанию кода, важно разобраться в значении этих двух терминов. Фронтенд специалисты занимаются клиентской стороной – то есть тем, что увидит пользователь. Бэкенд – это программно-аппаратная часть сервиса, то, что работает на сервере. В зависимости от специализации программист задействует различные технологии создания сайта. Фронтенд-разработчики обычно не обходятся без HTML, CSS и JavaScript. Для Backend «must have» — PHP, Python, Ruby. Сразу скажем, что как такового лучшего языка программирования нет. Выбор специалиста зависит от текущих задач, поставленных целей и сложности проекта. В этой статье рассмотрим востребованные языки программирования, на которых сегодня пишут сайты и создают приложения.
8 самых популярных языков программирования
- Серверная платформа — более компромиссное по стоимости решение относительно ПК со стандартными компонентами, представляющее собой системный блок без наличия процессоров, планок оперативной памяти и прочих не опциональных для поддержания работы сервера компонентов.
- Программная часть — используемое в работе программное обеспечение.
- Серверная часть БД (базы данных) — SQL-сервер, представляющий собой высокий по мощности сервер с установленным ПО и представляющий собой систему управления базами данных (СУБД).
Перед выбором определенного языка программирования учитывайте упомянутые выше — серверную платформу, программную часть, наличие опыта написания кода, а также БД для серверной части. Взяв во внимание эти условия, вы сможете определить для себя, какой язык в конкретном случае наиболее предпочтительно использовать.
JavaScript
Один из самых распространенных языков. Часто начинающие программисты путают Java и JavaScript. Несмотря на созвучное название, это два совершенно разных языка. Область его применения обширна и практически безгранична. На JavaScript пишут серверные, мобильные и компьютерные приложения. Любой браузер и любая операционная система хорошо знакома с JavaScript. Все сценарии выполняются непосредственно в браузере устройства, пользователю не нужно предпринимать каких-либо действий. В большинстве случаев он используется для создания простых анимаций, скриптов и объектов пользовательского интерфейса.
PHP
Главное преимущество PHP – код языка не конфликтует с HTML версткой и может использоваться одновременно для разметки внешнего вида страницы с помощью HTML-тегов и функционала страницы php-частью. Он легок в освоении практически на всех этапах изучения. Отличается развитой поддержкой данных, подходит под аппаратные платформы и известные ОС. Этот язык программирования предназначен специально для работы на стороне сервера. Библиотека языка подходит для задач, выполняемых многократно во время разработки сайта.
Python
Этот язык многие специалисты считают идеальным в DataScience (методика анализа данных с использованием машинного обучения и искусственного интеллекта). Одним из главных плюсов Python считается его простота. При наличии желания, с его особенностями и тонкостями программирования сможет разобраться каждый желающий. К тому же Python способствует экономии времени программиста, так как предлагает большое число специальных библиотек с уже готовыми программными конструкциями.
Можно отметить и недостатки:
- У программиста появляется привычка к простоте. Работая с Python, специалист начинает искать такую же лаконичность в других языках, но не находит.
- Низкая скорость. Это интерпретируемый язык, что означает выполнение кода построчно, это приводит к потере времени. Впрочем, во многих проектах подобная особенность Python не приносит дискомфорт и не является критичной, так как разница не заметна глазу пользователя. Но уже это нельзя сказать в отношении крупных проектов с огромной базой данных. Разница будет ощутимая.
- Динамическая типизация. Программист может писать кратко, не объявлять тип переменной. Время экономится, но часто это приводит к появлению ошибок. Поэтому часто приходится делать дополнительные проверки.
Многие специалисты используют Python из-за его гибкости. Легко работает на серверах под управлением Linux и Windows.
Ruby
Основное назначение Ruby – формировать и программировать сайты, а также мобильные приложения. Вокруг языка Ruby сложилось мнение о его медлительности и невозможности масштабировать крупные проекты. В самом начале существования в плане производительности Ruby действительно уступал PHP и Python. Однако многочисленные обновления языка в корне исправили ситуацию, грядущие апгрейды должны принести и другие изменения – возможность работы с параллельными потоками. Медлительность работы современного приложения на Ruby целиком зависит от способностей программиста и правильности построения архитектуры. Из достоинств можно отметить легкость изучения языка начинающим специалистом, часто его используют благодаря простым методам записи.
С#
Язык программирования C# перенял многое от Java и C++. Больше половины его синтаксических возможностей идентичны с языком Java. Изначально использовался как средство разработки веб-сайтов. Отметим, что сегодня C# активно развивается, выходят обновления и дополнения, появились асинхронные методы, динамические связывания. Если сравнивать его с другими популярными языками, то можно отметить относительную молодость C#: его первая версия появилась в 2002 году.
Perl
Языки программирования для веб-разработки сложно представить без Perl. В самых истоках возникновения, Perl предназначался для избавления от необходимости написания различных программ и сценариев на разных языках, объединяя возможности системного администрирования и обработки документов в единую языковую среду. На текущий момент — Perl активно используется при написании интерактивных приложений, администрировании серверов и адаптирован ко всем популярным платформам — Windows, Mac и прочие.
Легко выделить основные преимущества Perl:
- наличие множества готовых библиотек;
- простота обработки большого объема данных;
- кросс-платформенность;
- поддержка работы с регулярными выражениями;
- свободный синтаксис.
Но из преимуществ образуются небольшие недостатки. Наличие большого числа библиотек затрудняют поиск одного конкретного модуля, нужного программисту, что может тормозить процесс работы.
Java
Язык, зачастую используемый в целях создания мобильных приложений, сетевых программ. Считается основным языком разработки для Android. Язык идет в ногу со временем и сегодня актуален как никогда. Он включает объектно-ориентированное программирование (ООП) — методику упрощения сложного кода, при котором участок кода с конфликтующими друг с другом функциями делится на независимые объекты, каждый из которых содержит в себе те же функции и данные, которые активируются при непосредственном обращении к ним, а не одновременно, создавая конфликт (как при процедурном программировании). К прочим достоинствам Java стоит отнести безопасность, надежность и простой синтаксис.
SQL
Язык SQL это основа многих СУБД (система управления базами данных), он отвечает за структурирование, запись и чтение данных с диска. Считается важной частью программирования. Используется не только программистами, но и админами БД. Это первый и пока что основной язык для работы с БД, получивший повсеместное распространение.
Но SQL отличается и некоторыми недостатками. В первую очередь это сложность. Язык задумывался как средство работы конечного пользователя, но стал настолько непростым, что превратился в инструмент, используемый сегодня разве что программистами. Специалист обязательно должен знать SQL если в веб-разработке используется любая из базы данных – MySQL, Oracle. Умение работать с SQL обычно отличает профессионала от дилетанта.
Заключение
Задача любого языка программирования состоит в описании доступным способом содержимого страницы. Все они ориентированы под конкретные запросы пользователя и разработчиков, занимающихся созданием веб-сайта. Каждый из перечисленных языков отличается свойственными только ему плюсами и минусами.
Если же у Вас возникла необходимость в разработке сайта, обращайтесь к нам. У нас более 1000 реализованных веб-проектов и штат квалифицированных разработчиков, будем рады помочь в реализации проекта.
Фронтенд-разработка: ключевые технологии и понятия

Когда вы гуляете по городу, что вы видите? Взгляд часто останавливается на стильных витринах, созданных с целью привлечь внимание. Вы выбираете самую красивую из них и заходите внутрь.
То же самое происходит и в интернете. Блуждая по интернету в поисках необходимого, вы натыкаетесь на самый подходящий на первый взгляд сайт и заходите на него.
Но если витрины прозрачны и показывают, что находится внутри, приглашают рассмотреть товары поближе, то для сайтов все немного иначе. Что скрывается под видимыми элементами сайта, как они взаимодействуют с пользователем, друг с другом и с системой, стоящей за всем этим? Давайте же выясним это.
Что такое фронтенд-разработка? Фронтенд vs бэкенд
Фронтенд веб-сайта — это все, что пользователь видит и с чем может взаимодействовать при помощи браузера. Создание этой визуальной части называется фронтенд-разработкой. Дизайнеров, создающих пользовательские интерфейсы, тоже можно в какой-то смысле назвать фронтенд-разработчиками, потому что они совместно работают над этой же частью проекта.
Для разработки фронтенда в качестве базовых инструментов используются: HTML (для создания базовой структуры страниц и контента), CSS (для стилизации внешнего вида) и JavaScript (для добавления интерактивности). Такой же набор инструментов используется в процессе создания прогрессивных веб-приложений — мобильных приложений, которые выглядят, как нативные, но при этом создаются с участием фронтенд-технологий. Подробнее об этом можно почитать в статье по ссылке.
Бэкенд — это серверная часть веб-приложения, скрытая от глаз пользователя. Это понятие включает в себя серверы, на которых расположены веб-страницы и определенную логику, которая управляет функциями и процессами сайта. Здесь можно почитать более подробное описание внутренней работы веб-приложений.
Бэкенд разрабатывается с использованием другого стека технологий, включая Java, PHP, Ruby, C# и иногда JavaScript, о которых мы поговорим в соответствующем разделе статьи.

Итак, базовый набор инструментов для разработки фронтенда четко определен: HTML, CSS и JavaScript. Однако этот набор может быть значительно расширен, включив в себя диспетчеры пакетов, CSS-препроцессоры, фреймворки и многое другое.
HTML: ключевая фронтенд-технология
HTML (от англ. Hypertext Markup Language) — это язык гипертекстовой разметки, предназначенный для создания веб-сайтов, которые впоследствии могут просматриваться при помощи доступа к интернету. HTML обычно используется для структурирования веб-документа. Он определяет такие элементы, как заголовки или абзацы, и позволяет вставлять изображения, видео и другие медиафайлы.
Как работает HTML. HTML-код представляет собой множество тегов и пишется в текстовом файле. Этот текстовый файл затем сохраняется в виде HTML-файла, который можно открыть и посмотреть в браузере. Браузер сканирует его, интерпретирует код в визуальную форму и в лучшем случае отображает страницу именно так, как задумал дизайнер.
- Гипертекст — способ, с помощью которого мы путешествуем по интернету, переходя по гиперссылкам, которые ведут на другие страницы. «Гипер» отсылает к нелинейности, которая позволяет перемещаться в любое место, поскольку этот процесса не подразумевает предопределенного порядка.
- Разметка определяет качества, которыми наделяется текст внутри HTML-тегов. Теги определяют, как браузеры форматируют и отображают содержимое страницы.
- Будучи языком, он содержит кодовые слова и синтаксис, как и любой другой язык.

Парный тег / определяет границы веб-страницы, а текст между тегами
/ определяет видимое содержимое страницы.в самом начале объявляет тип документа для HTML5. Если его не обозначить, разные браузеры будут отображать его по-своему.
Вот так плавно мы перешли к HTML5.
HTML5
С момента первого своего релиза в 1991 году HTML претерпел множество обновлений. HTML5 был выпущен в 2014 году. В него были добавлены такие функции, как поддержка оффлайн хранилищ мультимедийных данных, более точные элементы контента (например, хедер, футер, навигация) и поддержка встраивания аудио и видео.
CSS: стилизация
CSS («каскадные таблицы стилей», от англ. Cascading Style Sheets) — это язык, используемый для стилизации страниц. Он определяет то, как HTML-элементы будут выглядеть на веб-странице с точки зрения дизайна, макета на разных устройствах с разными размерами экрана. CSS управляет макетом множества различных веб-страниц одновременно.
Как это работает. CSS взаимодействует с HTML-элементами, компонентами веб-страницы.
- Для взаимодействия с HTML в CSS используются селекторы. Селектор — это часть CSS-кода, определяющая, на какую часть HTML будут воздействовать стили CSS.
- Объявление содержит свойства и значения, используемые селектором.
- Свойства определяют размер шрифта, цвет и отступы. Каждое свойство имеет значение или набор значений.
Возьмем в качестве примера:

где P (абзац) — это селектор, < font-size:24px; color:blue; >— это объявление, font-size: и color: — свойства, а 24px; и blue; — значения.
CSS записывается в виде простого текста в текстовом редакторе. Есть три способа добавить CSS-код в HTML:
- Вместо того, чтобы добавлять CSS-код к каждому HTML-элементу, который необходимо видоизменить, можно использовать внешнюю таблицу стилей (External style sheets) — текстовый файл, содержащий весь CSS-код. Внешняя таблица стилей подключается в .html файле в контейнере .
- При использовании внутренней таблицы стилей CSS-код размещается прямо в теле тега конкретной .html-страницы.
- Под встроенным стилем подразумевается прописывание CSS в html-коде непосредственно того элемента, который нужно стилизовать.
CSS-фреймворки. CSS-фреймворк — это набор дефолтных CSS- и HTML-файлов, который расширяет возможности по части дизайна. Помимо их пользы при создании адаптивного дизайна, CSS-фреймворки помогают создавать различные макеты, что избавляет разработчиков от необходимости писать код с нуля в каждом случае. Обычно они заметно помогают при разработке веб-приложений под разные платформы и размеры экрана. Благодаря общим компонентам пользовательского интерфейса, Grid Layout и многим другим функциям, CSS-фреймворки значительно ускоряют рабочий процесс разработки. Существуют разные виды фреймворков:
- Полнофункциональные (Bootstrap, Foundation, Semantic UI и др.),
- Ориентированные на материальный дизайн: (Materialize and Material Design Lite) и
- Легкие (Pure).
Мы не будем описывать их все, вместо этого приведем сравнительную таблицу:

Чтобы подробно изучить эти CSS-фреймворки, ознакомьтесь со статьей «Самые популярные адаптивные CSS-фреймворки».
Препроцессоры — Sass и LESS. Написание CSS является рутиной, и мелкие задачи, такие как: поиск значений цвета, закрытие тегов или любые другие повторяющиеся операции, отнимают много времени. Вот где пригождается препроцессор. CSS-препроцессор представляет собой скриптовый язык и расширяет возможности CSS.
Самые распространенные препроцессоры — это Sass и LESS. У них есть некоторые общие основы:
- Синтаксические элементы и
- Обратная совместимость с обычными файлами CSS.
Однако между ними есть и различия.
- Sass расшифровывается как Syntactically Awesome Style Sheets («синтаксически превосходные таблицы стилей»). Sass работает на Ruby и обрабатывается на стороне сервера. Поскольку корни его происхождения восходят к языку Ruby, установка осуществляется через так называемые gem-ы (несколько библиотек Ruby/Rails).
- LESS расшифровывается как Leaner Style Sheets («компактная таблица стилей»). На данный момент его можно назвать скорее JavaScript-библиотекой, которая обрабатывается на стороне клиента в браузере. Разработчики гораздо чаще выбирают LESS при использовании JavaScript с таблицами стилей. Эта технология позволяет использовать фрагменты CSS-кода в файлах LESS повторно.
DOM: структура веб-страницы
Объектная модель документа (DOM, Document Object Model) — это программный интерфейс для документов HTML и XML. Он интерпретирует страницу, чтобы программы могли видоизменять структуру, стиль и содержимое документа. DOM отображает документ в виде узлов и объектов, позволяя языкам программирования подключаться к странице.

Как это работает. Будем считать, что веб-страница — это документ, который может быть представлен либо в окне браузера, либо в качестве исходного HTML-кода. DOM является представлением этого документа, поэтому его можно изменить. DOM — это объектно-ориентированное представление веб-страницы, которое можно изменить с помощью сценарного языка, например, JavaScript.
DOM должен соответствовать стандартам спецификаций W3C и WHATWG, которые исполняются в большинстве современных браузеров. Современный DOM строится с использованием нескольких API, работающих вместе. DOM определяет объекты, которые полностью описывают документ и объекты в нем.
JavaScript: оживляя веб
JavaScript (JS) — один из самых популярных сценарных языков. Он в основном известен своей применимостью как для фронтенд-, так и для бэкенд-разработки. Во фронтенде он используется для придания веб-страницам динамики.
Как работает JavaScript. JS повышает общую интерактивность сайта. Он позволяет моделировать анимированные компоненты пользовательского интерфейса, такие как: слайдеры, всплывающие окна, расширенные меню навигации по сайту и многое другое. С помощью JavaScript веб-сайт можно наделить разными функциональностями, что не достижимо только с помощью HTML и CSS. Веб-страницы, разработанные с помощью JavaScript, реагируют на действия пользователей и обновляются динамически. Благодаря JavaScript этот процесс не требует перезагрузки страниц, чтобы отобразить изменения.
Фреймворки и библиотеки JavaScript и зачем они нам нужны
Новичкам в этой области знаний может показаться, что фреймворки и библиотеки делают одно и то же, благодаря чему различные визуальные элементы взаимодействуют друг с другом. Будем честны: это не так уж далеко от истины. Однако есть несколько отличительных особенностей. Итак, давайте определим, что представляет собой JS-фреймворк, что такое JS-библиотека и для какой цели они оба служат.
Фреймворки представляют собой шаблоны для создания веб-сайта или веб-приложения. Они обеспечивают структуру (например, основу или заготовки — scaffolding), на которой можно разместить весь проект. В то время как фреймворк устанавливает шаблоны страниц, они создают структуру с определенными выделенными областями для встраивания кода фреймворка.
Итак, фреймворки JavaScript — это полные наборы инструментов для формирования и настройки веб-сайта или веб-приложения.
Библиотеки — это наборы предварительно написанных фрагментов кода, которые повторно используются для реализации основных функций JavaScript. При необходимости фрагмент кода можно легко интегрировать в существующий код проекта.
Таким образом, библиотека — это специализированный инструмент для конкретных узких потребностей, а не универсальная машина для подготовки всего проекта.
Основные фреймворки и библиотеки
Начнем с фреймворков:
Angular — это JavaScript-фреймворк от Google, совместимый с большинством распространенных редакторов кода. Angular предназначен для создания динамических одностраничных веб-приложений (SPA — Single Page Applications) и прогрессивных веб-приложений. Еще с момента выпуска первоначальной версии этот фреймворк больше всего ценился за способность преобразовывать документы на основе HTML в динамический контент. Angular является одним из самых популярных фронтенд-фреймворков. Почитать про него подробнее можно в нашей статье о плюсах и минусах разработки на Angular.
Vue.js — еще один фреймворк с открытым исходным кодом для одностраничных приложений, который требует знания HTML и CSS. Он использует модель разработки на основе компонентов и позволяет присоединять компоненты к проекту. Vue.js — это пример библиотеки, больше похожей на фреймворк, поэтому мы отнесли его к фреймворкам. Он предлагает целую кучу шаблонов и паттернов, применяемых при разработке. Vue в первую очередь известен небольшим размером документов и синтаксисом на основе HTML. Чтобы ознакомиться подробнее с преимуществами и недостатками Vue.js, переходите по ссылке.
Ember.js — это фреймворк для разработки одностраничных, мобильных и десктопных приложений. Он использует шаблон проектирования Model-View-ViewModel (MVVM). Инструменты Ember позволяют проектировать среду разработки, а его интерфейс командной строки предоставляет инструменты для автоматизации сценариев.
А теперь коротко о нескольких библиотеках:
React — библиотека с открытым исходным кодом для создания динамических пользовательских интерфейсов, разработанная Facebook. Применяется для создания веб-приложений с множественными динамическими компонентами. React основан на JavaScript и JSX и позволяет создавать HTML-элементы для многократного использования. React также включает в себя React Native, специальную кроссплатформенную среду для разработки мобильных приложений. Чтобы узнать больше о плюсах и минусах React и React Native, читайте статью на эту тему.
jQuery, в свою очередь, предназначена для управления HTML-документами. Она обладает простым API для управления событиями и разработки анимации в браузерах. Кроме того, jQuery применяется для управления объектной моделью документа (DOM), а также служит инструментом разработки плагинов. Она также поставляется с более легкой кросс-браузерной библиотекой, jQuery UI для мобильного фреймворка jQuery Mobile и для построения графического интерфейса.
D3.js — это управляемая данными библиотека для визуализации данных. С помощью привязывания временных данных к DOM и внедрения в документ изменений, управляемых данными, библиотека позволяет управлять данными и создавать динамическую визуализацию данных. Она может поддерживать и обрабатывать большие наборы данных и динамические ответы для взаимодействия и анимации. Функциональный стиль D3 допускает повторное использование кода и работает с CSV и HTML.
Как мы видим, библиотеки JavaScript обладают широкой функциональностью, обеспечивая фронтенд-разработчиков универсальными решениями. Но мы не говорим о замене фреймворков библиотеками или наоборот — всегда найдется место как для одного, так и для другого.
Если вы начинаете свой путь во фронтенде, было бы разумно начать с библиотек, так как они имеют более мягкую кривую обучения. После изучения основ некоторых из них можно переходить к фреймворкам, поскольку они требуют более глубокого понимания JS.
JavaScript для бэкенда
Говоря о JavaScript как о комплексной среде разработки, мы не можем не упомянуть его значимость для бэкенд-разработки. Поскольку JavaScript очень популярен, мир разработки программного обеспечения адаптировал JS к специфике бэкенда.
Для разработки на стороне веб-сервера с помощью JavaScript одним из самых значимых инструментов, вероятно, стал Node.js. Однако, это не фреймворк и не библиотека. Node.js — это среда выполнения, работающая на основе ядра JavaScript V8. Чтобы больше узнать о Node.js, прочитайте статью о плюсах и минусах разработки веб-приложений на Node.js. Или посмотрите видео:
Взаимодействие между фронтендом и бэкендом
Фронтенд не существует изолированно от бэкенда или сервера, который фактически предоставляет данные. Давайте посмотрим на это с точки зрения клиент-серверного взаимодействия.
Асинхронные операции
В 2010-х годах одной из основных концепций, описывающих работу интернета, был AJAX. Термин расшифровывается как «асинхронный JavaScript и XML» (от англ Asynchronous JavaScript and XML). По сути, это комплекс средств для создания веб-сайтов и веб-приложений. Давайте рассмотрим ключевые компоненты, из которых состоит AJAX.
Асинхронность — фундаментальный аспект всего инструментария. Ключевая роль подхода заключается в асинхронном обновлении веб-контента. Это означает, что браузер не перезагружает всю веб-страницу целиком, когда изменений требует небольшая часть контента на странице. Например, не нужно перезагружать страницу со всеми продуктами, чтобы применить фильтр к результатам поиска. Вам просто нужно, чтобы результаты обновились.
JavaScript — JavaScript использует процессы автоматизации сайтов, поэтому разработчикам не приходится отдельно редактировать каждый процесс, отображаемый на странице. Он используется, в частности, для создания, добавления и управления динамическим контентом веб-сайта. После обработки всех процессов HTML и CSS JavaScript запускает обновления в реальном времени, пока посетитель просматривает страницу с интерактивным контентом.
XML (или «расширяемый язык разметки», от англ Extensible Markup Language) позволяет передавать данные, размещенные на странице, в браузеры, которые ее просматривают. Это важно для определенных систем, которые зачастую не умеют взаимодействовать с данными, отформатированными другой системой. В этом случае XML позволяет избежать несовместимости при сохранении данных в текстовом формате между XML-тегами. Таким образом, XML предлагает средства хранения, перемещения и обмена данными, которые не зависят от какой-то одной программной или аппаратной системы. Поскольку XML устаревает, уступая новым форматам данных, можно запускать AJAX с JSON, который является более коротким и удобным для чтения людьми.
На сегодняшний день AJAX не так часто обсуждается во фронтенд-сообществе из-за того, что асинхронный рендеринг веб-страницы входит в стандартную комплектацию всех основных фронтенд-фреймворков, которые мы обсуждали выше.
Как работают асинхронные обновления. Предположим, пользователь нажимает на кнопку. Клиент в фоновом режиме отправляет запрос серверу в формате XML/JSON, пока пользователь продолжает просматривать страницу. Серверная сторона получает данные от JavaScript, при необходимости обращается к базе данных и обрабатывает данные. Данные в формате XML/JSON отправляются обратно на исходную страницу на стороне клиента, которая выполнила запись. Коллбэк, выполняемый JavaScript, собирает данные и обновляет компонент веб-страницы, который требует изменений.
REST и GraphQL
REST расшифровывается как «передача репрезентативного состояния» (от англ Representational State Transfer). По сути, это упрощенный архитектурный стиль, применяемый для обмена сообщениями между клиентом (фронтенд) и сервером (бэкенд). Службы RESTful и API — это веб-службы, соответствующие архитектуре REST.
Например, разработчик должен разработать веб-приложение, которое показывает всех друзей в социальных сетях в определенном порядке. Фронтенд может создавать запросы к RESTful API Facebook для просмотра списка друзей и передачи этих данных обратно. Любая служба, использующая RESTful API, похожа на этот общий процесс, разница только в том, что данные извлекаются и возвращаются. REST — это простой набор руководств и практик, устанавливающих правила взаимодействия с веб-службой.
Основная идея REST заключается в том, что серверу безразлично, что происходит с клиентом. REST-сообщения содержат всю необходимую информацию для сервера, чтобы вернуть необходимые данные и забыть об этой операции. Узнать больше о различных форматах обмена сообщениями и более старом стандарте SOAP можно в этой статье.
GraphQL представляет современную версию обмена сообщениями. Это язык запросов к базам данных из клиентских приложений. GraphQL определяет на стороне сервера, как отображать данные клиенту, и обслуживает различные типы клиентов и их потребности в данных. Чтобы узнать больше на эту тему, читайте статью о возможностях ядра GraphQL.
Больше практик, которые используются во фронтенд-разработке
Итак, мы обозначили базовые составляющие фронтенд-разработки. Однако есть еще много терминов и понятий, в которых фронтенд-разработчик должен разбираться.
Отзывчивый дизайн
Поскольку все больше людей пользуются интернетом с мобильных устройств, а не с настольных компьютеров, обязательной характеристикой веб-приложений стала отзывчивость дизайна. Отзывчивый дизайн означает, что макет приложения (включая функциональность и контент) подстраивается под размер экрана и вид устройства.
Например, когда сайт посещается с настольного компьютера с большим монитором, дизайн включает несколько колонок, тяжелую графику и пользовательский интерфейс, разработанный с учетом использования мыши и клавиатуры. На мобильных устройствах контент того же сайта отображается в одну колонку, сайт адаптирован для сенсорного взаимодействия, но содержит те же базовые данные. Чтобы узнать об отзывчивости больше, читайте эту статью.
Доступность и инклюзивность
Говоря о доступности, мы имеем в виду, что сайт должен быть доступен как можно большему количеству людей с различными видами нарушений, таких как: нарушения зрения, когнитивных функций, слуха или подвижности. Этот термин также охватывает вопросы права, стандартов соответствия, различные мобильные устройства и различные типы сетевых подключений. Подробнее на эту тему можно прочитать в статье «Как создавать интерфейсы, которые принесут пользу всем: тестирование доступности и принципы инклюзивного дизайна».
Подведем итоги
Мы признаем, что знакомство даже с основами фронтенд-технологий может удивить. Давайте подытожим, что мы узнали.
HTML (Hypertext Markup Language) — это язык разметки для создания веб-сайтов. Обычно он применяется для структурирования веб-документа.
CSS (Cascading Style Sheets) — это язык таблиц стилей, который используется для стилизации HTML-элементов на веб-странице. Область действия CSS включает в себя дизайн, макет и варианты отображения для различных устройств и размеров экрана.
DOM (Document Object Model) — это программный интерфейс для HTML- и XML-документов. Он содержит информацию о странице, чтобы программы могли изменять структуру, стиль и содержимое документа.
JavaScript — сценарный язык. Во фронтенде он используется для придания веб-страницам динамики. Кроме того, он предоставляет фулстек-технологии с библиотеками и фреймворками для написания скриптов как на стороне клиента, так и на стороне сервера.
AJAX. AJAX (Asynchronous JavaScript and XML) — это комплекс методов для создания веб-сайтов и веб-приложений с динамически загружаемым контентом без создания новой записи данных.
Конечно, есть еще много других технологий, навыков и общих знаний, которые предстоит освоить новичку. Тем не менее, мы надеемся, что эта статья проложила тропинку в лес фронтенд-разработки, чтобы путник не сбился с пути.
Приглашаем всех желающих на бесплатные открытые занятия:
«Селекторы» — на вебинаре вы научитесь, как можно обращаться к html-элементам, а также рассмотрите разные виды селекторов. Регистрация.
«Функции и условия» — на этом занятии посмотрим, как делать повторяющиеся действия удобными и переиспользуемыми, разберем ситуации, в которых это может быть полезно. Регистрация.