Браузер отображает всё, что получает от сервера и «понимает». Это даёт основание определить процесс отображения и процесс формирования данных на две составляющие. Посетитель, просматривая страницу, предпринимает действия, что даёт основания функционалу страницы «управлять» сервером.
Сервер формирует первую страницу, когда браузер «заходит» на сайт. Затем сервер ожидает «указаний». При таком положении вещей: front end и back end разработка действительно повод дать работу двум категориям разработчиков параллельно.
Сайт - это единая система
Всегда было дело и существовало общее мнение о том, как это дело делать. Всегда была динамичной передовая и стабильным - тыл. Так было всегда, в любом направлении технического прогресса, и складывались если не теории, то всеми признанные правила. В области информационных технологий до сих пор нет ничего общепризнанного, но есть много правильных идей, которые используются по мере необходимости.
На науку инфосфера ещё не тянет. Этап «строительства» программ и сайтов уже позади. Область информационных технологий спокойно развивается, а разработчики действуют на свой страх и риск, уважая мнение коллег, не особенно критикуя варианты работы каждого, принимая происходящее как есть, во всём его многообразии.
Статические страницы уже давно в прошлом, системы управления сайтами уже стали привычными. Значительная часть разработчиков продолжает писать «ручками», а все остальные, кто использует шаблоны, CMS, фреймворки и подобные инструменты ускорения работы над сайтами, время от времени дописывают к своим изделиям коды на серверных или браузерных языках.
Что делать, совершенных инструментов в области сайтостроения ещё нет, приходится использовать всё, что доступно.
О возможностях front-end
Книга «Front-end. Клиентская разработка для профессионалов» - своего рода концентрат качественного и практичного описания JavaScript, HTML5 и CSS3, ориентированного на квалифицированного разработчика, стремящегося к разработке качественного «клиентского» кода.
Node.js, ES6, REST, практичные примеры и отличный стиль. Вне сомнения, "Front end: клиентская разработка для профессионалов" - это отличное и полезное издание, фундаментальные основы для разработчика - библия знаний и процессов их эффективного применения.
Трудно спорить с тем, что специалист в сфере информационных технологий не отличается от специалистов других профессий. Как везде, здесь также существует мнение: специалист подобен флюсу - полнота его знаний односторонняя. Нельзя быть специалистом по JavaScript и одновременно идеально владеть CSS3.
Сложилось мнение, что есть независимые квалификации по гипертексту (HTML), по языку XML, по таблицам каскадных стилей (CSS) и другим направлениям. Естественно, трудно не разделить работу:
- среда браузера;
- «философия» сервера.
Так сказать, очевидно, front end разработка - что это: принципиально важно, но это вовсе не работа на сервере.
Об особенностях back-end
Мир интернета обслуживает великое множество серверов и технологий. Здесь Apache, во всех его действующих версиях, по-прежнему законодатель мод. Семейство юниксоидов по сей день не уступило пальму первенства в серверном деле никаким другим платформам.
С точки зрения разработчика, победила простота, надёжность и стремление к созданию систем, не склонных к синему экрану и «панике», но уверенно обеспечивающих адекватный выход из любой непредвиденной ситуации.
Это уровень серверных технологий, то есть, это не front-end разработка, что это значит - вроде как ясно: здесь нет браузера, но есть PHP или другой серверный язык.
Протокол HTTP (или другой) позволяет браузеру обратиться к серверу за получением страницы, и браузер отвечает взаимностью. Серверный язык отрабатывает функционал, созданный разработчиком "back-end" и передаёт "front-end" в браузер. Это может быть первая страница, обновление страницы или переход к другой странице, включая переход по ссылке на другой сайт, то есть на другой сервер.
Совмещение back-end + front-end разработка: что это, возможно ли это?
Любой прилично настроенный сервер предлагает разработчику массу современных языков и инструментов для любого ответа браузеру. Клиент здесь ни при чём, он действует только через браузер. Хотя клиентом может выступать:
- интернет-робот;
- «паук» - модный бренд в сфере парсинга;
- иное программное изделие.
Браузеров много, но его DOM-ская логика и JavaScript в 99.9% случаев - основа для отображения ответа сервера. Любой поток информации от сервера браузер пытается трансформировать в DOM и предполагает в нем найти:
- HTML.
- CSS.
- JavaScript.
Эта святая троица составляет front-end и разработку: что это такое и как это применить - вроде как предельно ясно.
DOM - это дерево, так привычно и традиционно звучит. На самом деле DOM - это, отлично продуманная система, а JavaScript - её родной язык. В этом контексте знания - Front-end: клиентская разработка для профессионалов в pdf-формате - это очень хорошо, но идеально в формате настольной книги, которая всегда на виду.
Существенно: когда браузер открывает сайт, он строит DOM и затем уточняет его, пока клиент находится в сфере компетенции открытой им страницы. Перемещение клиента между страницами, как по внутренним, так и по внешним ссылкам, меняет содержание DOM и JavaScript-функционала. Front-end разработчик имеет все основания и возможности комплексно управляться в браузере, не теряя при этом контроля над управлением.
У сервера - другая философия. Здесь много клиентов, за каждым не уследишь. Но важно не это, а то, что здесь невозможно построить постоянно действующую систему объектов для каждого открытого соединения. На самом деле квалифицированному разработчику это по силам, но этот момент не узаконен ни сервером, ни каким-либо серверным языком.
Система клиент + сервер
Если говорить о браузере, это всегда законченное изделие, у него есть собственная аура, и он обязан исполнять конкретный функционал, иначе он - не браузер. Сервер - также законченное изделие, функциональность которого гораздо шире, а ответственность гораздо выше.
И браузер, и сервер - совершенно самостоятельные и независимые системы. Кстати говоря, сайты - вовсе не единственное, н что способны и браузеры, и серверы. Это просто отличные программные системы, удовлетворяющие конкретным сферам применения.
Веб-ресурс - причина, по которой браузер и сервер начинают взаимодействие и продолжают его до тех пор, пока клиент не уйдёт на другой сайт.
Можно разделить всех строителей на каменщиков, плотников, штукатуров и маляров, но дом, который они строят - один. Это фактор абсолютно не зависим от фундамента, хотя всегда учитывает его особенности, специфику территории, климатическую зону и менталитет жителей.
Сайт могут создавать несколько разработчиков, но это должна быть команда. Команда квалифицированная и тесно связанная. Один может создавать CSS-правила, другой - компоновать только теги HTML, третий вдохновенно расписывать функционал на JavaScript по тегам, правилам и событиям. Но это должна быть взаимосвязанная команда, которая учитывает серверную часть, не отделяя ее от браузерной.
Невозможно написать код на PHP, который не владеет тем, что написал CSS-разработчик, скомпоновал специалист по HTML и обозначил JavaScript-программист. Иначе сайт не станет системой, а если сайт - не система, то это не сайт, а пустая трата сил и времени на создание страниц front-end'a, которые отражают то, что смогут разобрать в полученном от back-end'a. Последний отвечает взаимностью, понимая так, как получается, все что прилетает от браузера.
Точка всемирной сети: сайт = система
Интернет уже настолько стабилен и привычен, что стал жить по своим собственным законам, и эти законы уже давно не контролируются разработчиками, типа создателями... В интернете давно нет тех, кто его создал, но остался действующий активный потенциал всех разработчиков, которые работают во front-end, back-end, и вообще, просто работают, не разделяясь на квалификации и когорты по знаниям.
Естественно, как только интернет стал полноценной и саморазвивающейся системой, он превратился в среду существования веб-ресурсов различного назначения, но функциональность каждого ресурса тоже стала вполне конкретным спектром требований.
Если веб-ресурс удовлетворяет определённым требованиям - он есть и доступен в сети. Если нет, то не важно, как соотносится back-end и front-end - что это такое, так и останется тайной.