Тарифы Услуги Сим-карты

Фронтенд или бэкенд что выбрать. Что должен уметь фронтенд-разработчик

Браузер отображает всё, что получает от сервера и «понимает». Это даёт основание определить процесс отображения и процесс формирования данных на две составляющие. Посетитель, просматривая страницу, предпринимает действия, что даёт основания функционалу страницы «управлять» сервером.

Сервер формирует первую страницу, когда браузер «заходит» на сайт. Затем сервер ожидает «указаний». При таком положении вещей: 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.
  • 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 - что это такое, так и останется тайной.

Сегодня я хотел бы рассказать, что такое “фронтенд" и "бэкэнд” в маркетинге и продажах.

Правильно писать «front-end», «back-end», но мы, русскоговорящие люди, уже привыкли писать по-русски: фронт-энд, или фронтенд, и бэкэнд, или бэкенд.

Так что такое front-end и back-end?

Говоря о привлечении клиентов, без применения специальной терминологии мы не продвинемся дальше уровня первобытно-общинного строя, если сравнивать с историей. Нам надо оказаться в развитом капитализме, а мы не понимаем, что такое «деньги». Без понимания таких фундаментальных вещей невозможно не только доминирование над конкурентами, но даже и более-менее внятная рекламная стратегия.

Итак, фронтенд — это такой продукт, которому присущи следующие качества:

  1. Низкая цена, либо он бесплатен (сейчас бесплатный фронтенд чаще называют «лид-магнит» или лидмагнит — об этом ниже).
  2. Высокая востребованность на рынке. Иными словами, данный продукт должен быть либо либо не товаром из ассортимента компании, а специально созданным продуктом, привлекающим внимание целевой аудитории.
  3. Встроенность в цепочку продаж.

С этим пунктом немного сложнее, сейчас объясню.

Допустим, у вас магазин «Товары для дома и отдыха», в котором вы успешно продаете электроинструмент. Вы считаете электроинструменты вашим основным товаром, бэкендом. Вы хорошо зарабатываете на электроинструменте, на этот товар хорошая наценка. При этом, у вас хорошо покупают электрические печки (недорогие электрические печки, походный вариант). В данном случае, электрическая печка не может быть фронт-эндом, несмотря на низкую цену и высокую востребованность.

Почему?

Потому что разные целевые аудитории. Тот, кто купит электрическую печку в поход, скорее всего, не купит электроинструмент. А электроинструмент покупают те, кто работает руками, а не является туристом.

Да, чуть не забыл.

Основной товар называется «бэкенд», back-end . Понятие фронтенд имеет смысл рассматривать только в сочетании с понятием бэкенд.

В идеале всё происходит следующим образом: люди покупают фронтенд и оказываются втянуты в своеобразный конвейер продаж. А там – как говорит Андрей Парабеллум – «бэкенд бэкендом погоняет». СтОит коготку у птички увязнуть…

Понятно, каков алгоритм работы успешного бизнеса?

То есть мы должны знать — ЧТО ИМЕННО купит человек, купивший фронтенд, в качестве бэкенда. И по статистике такие покупки должны происходить постоянно.

Стал уже классикой пример с McDonald’s.

McDonald’s продает гамбургеры по себестоимости, а покупатели приобретают массу других лакомств по цене с хорошей наценкой. Тот же чай – ему красная цена несколько копеек, а сколько он стоит в McDonald’s?

Еще один пример — это продажа автомобилей в автосалоне. Не столь велика наценка на автомобиль (фронтенд), сколь велика наценка на сервисные услуги и комплектующие.

Таких примеров можно привезти массу.

Высшим пилотажем является фронтенд, искусственно созданный под конкретный бизнес.

Современная тенденция заключается в том, что практически под любой бизнес можно сделать искусственный фронтенд. Даже если этот бизнес продает один какой-то товар – и в этом случае под него можно придумать фронтенд, через который потом продавать этот товар бэкендом. О том, как создать такой фронтенд для вашего бизнеса, я вам могу рассказать вам на бесплатной консультации.

Пару слов о том, что такое лид-магнит.

Это бесплатный продукт, который показывает потенциальному клиенту, насколько ценна ваша услуга (чаще услуга, чем товар).

Чтобы долго не объяснять, посмотрите ниже и вправо.

Справа — моя мини-книга «5 убийц вашего бизнеса», которую Вы можете скачать бесплатно. Это лид-магнит, рассчитанный на предпринимателей. Если вы таковым являетесь — вводите свои контактные данные и переходите на новую ступень осознания ситуации в вашем бизнесе.

Ниже — предложение скачать чек-лист оценки бизнеса.

Кстати, а какие лид-магниты встроены в вашем бизнесе?

______________________________________________

Некоторое время назад в нашем городе прошла «Кузбасская ярмарка» — крупнейший предпринимательский форум Кемеровской области.

Помимо участия в работе выставки (у нас там был стенд), мы, силами студентов провели анкетирование руководителей компаний-участников. Цель — понять, насколько конкурентоспособны бизнесы в нашем регионе.

Наши сотрудники и студенты заполняли чек-листы со слов собственников и руководителей, присутствующих на выставке.

Результаты обескуражили.

Из 87 компаний лишь 3 (а это 3,4%) ответили положительно на все вопросы.

96,6% — недотягивают либо в выполнении современных требований, либо собственники вообще не понимают, о чём их спрашивают.

Получается, минимум 84 компании в Кемеровской области работают, проваливаясь по ряду видимых, измеримых параметров!

И почему-то мне кажется, что эти 3 «положительные» анкеты были заполнены людьми, которые не хотели показывать истинное положение дел в фирме. Типа, «у нас всё хорошо».

А ведь вопросы-то о том , как должен работать среднестатистический бизнес в 21 веке.

Обычный, а не инопланетный.

И вот, мне в голову пришла идея дать своим подписчикам возможность заполнить этот чек-лист самостоятельно.

А почему бы и нет? Вопросов всего 9. Ответить на них не займёт много времени.

Ну что, проверите себя?

Ниже я расскажу, чем отличается этот тест от тысяч других.

Чем необычен этот тест?

Тем, что я гарантированно причиню Вам непоправимую пользу, если Вы заполните контактные данные вверху анкеты и пришлёте её мне.

Не хотите — можете просто поотвечать на вопросы.

Что получат те , кто вышлет мне заполненную анкету?

Если Вы заполните тест полностью (включая контактные данные) и отправите его мне, я проведу небольшой аудит бизнес-процессов в Вашей компании.

По скайпу или лично.

В результате Вы получите не «бла-бла-рекомендации» , а я отберу для Вас наиболее легко внедряемые мероприятия, которые уже через несколько дней покажут Вам свет в конце тоннеля принесут Вам прибыль (если Вы внедрите эти пункты).

Frontend и backend: об иерархии разработки веб-приложения, точках соприкосновения, сходствах и различиях двух столпов веба, а также сферах их ответственности.

Давно остались в прошлом времена, когда мир веба был прост и понятен, а сайты были наборами статических страниц с табличной разметкой. Веб-разработка прошла быстрый, яркий и насыщенный путь развития. Появились новые языки, техники, технологии и парадигмы. Сегодня это одно из самых перспективных и высокооплачиваемых IT-направлений.

Сложная и многоуровневая структура современных веб-приложений требует иерархического разделения процесса их разработки. Исторически этот процесс разделяется на две части: front-end (клиентская) и back-end (серверная). Взглянем поближе на каждую из них, поговорим об их различиях, точках соприкосновения и зонах ответственности

Фронтенд

Пользователь вводит адрес в строке поиска, переходит по ссылке с внешнего ресурса или из поисковой системы. Он видит много рекламы. Взору его предстает навязчивое требование регистрации. Ему представлена неудобная навигация и трудночитаемый контент. Страница долго загружается, или не адаптирована для мобильных устройств, или имеет устаревший дизайн. Что делает пользователь? Правильно, покидает сайт.

Задачей фронтенд-разработчика является сделать все возможное, дабы предупредить подобное развитие событий. Сфера его ответственности охватывает создание пользовательского интерфейса , что в свою очередь подразумевает некоторую иерархию. Это дизайн макета, верстка, адаптация . Важной частью разработки веб-приложения является UI/UX дизайн - то, что в наибольшей степени влияет на первое впечатление пользователя.

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

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

Библиотека jQuery позволяет легко реализовывать эффективное взаимодействие JavaScript и HTML. Язык TypeScript, компилируемый в js-код, дает возможность использования классов, модулей, шаблонов, являясь, таким образом, полноценным объектно-ориентированным языком. Программная платформа Node.js превращает JavaScript из узкоспециализированного языка в язык общего назначения, «выпуская» его из браузерной песочницы. На клиентской стороне реализуется отправка запросов и обработка ответов сервера , парсинг данных , динамическое изменение отображаемого контента.

Бэкенд

Бэкенд - это серверная логика веб-приложения. Здесь реализуется работа с хранилищем данных , поэтому человек, занимающийся разработкой серверной логики, должен иметь навыки работы с базами данных, а также опыт использования механизмов ORM. Именно от бэкенд-разработчика зависит производительность серверного кода, его масштабируемость, безопасность и рациональность.

Помимо серверной логики в сферу ответственности бэкендера входит отладка и прототипирование с использованием клиентской части приложения. Это влечет за собой необходимость понимания работы стека протоколов TCP/IP, HTTP, REST/SOAP, принципов взаимодействия браузера с веб-приложением.

Несмотря на то, что сфера фронтенда традиционно считается самой богатой и разнообразной в плане технологий, бэкенд также имеет широкий спектр инструментов разработки. Помимо каноничного PHP, несправедливо многими поругаемого, прочные ниши заняли Python с фреймворком Django, Java и Node.js, Ruby, а также набирающий популярность Go.

Заключение

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

В арсенале как фронтенда, так и бэкенда имеется множество языков и технологий. Об их актуальности и удобстве ведутся ожесточенные споры. Но истина, как всегда, где-то рядом. На выбор технологии должна влиять не мода, а то, какие задачи разработчик перед собой ставит. Каждый язык и фреймворк уместен тогда, когда он отвечает специфике решаемой проблемы. В этом (и только в этом) случае использование его будет наиболее эффективным.

Фронтенд и бэкенд - вовсе не взаимоисключающие параграфы. Для тех, кто одинаково свободно чувствует себя на обоих поприщах, существует такое понятие, как full stack. “Фулл стэк” -разработчик занимается и клиентской, и серверной частями приложения. Освоение такой профессии - непростое дело. На этому тернистом пути путеводной звездой может послужить онлайн-программа . В ней в оптимальной пропорции совмещаются теория и практика. В процессе обучения вы освоите два языка программирования, пополните свое портфолио пятью проектами, прокачаете коммуникационные навыки и работу с системой контроля версий git.

И напоследок приятный бонус для наших читателей - промокод proglib со скидкой 7000Р.

Старт программы — 21.07.

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

Для начала давайте разберёмся, что же означает термин «фронтэнд», и кто такой фронтэнд-разработчик?

Данный термин весьма специфичен и обширен, в связи с чем сложно дать ему лаконичное и однозначное определение. Фронтэндом называют всю клиентскую (в том числе невидимую для пользователя — программную) часть сайтов/веб-приложений: интерфейсы, шаблоны, стили, виджеты и т. д. Соответственно, всё, что происходит на стороне сервера — бекэнд .

Приведу краткий список наиболее часто ассоциируемых с фронтэнд-разработкой понятий и технологий:
HTML , CSS , JavaScript , jQuery , Node.js , AJAX , SPA …

Разберём по полочкам, чем занимается типичный фронтэнд-разработчик.

Конечно же, первой приходящей на ум обязанностью является вёрстка . Наш герой в идеале знает, как сверстать страницу любой сложности. Соблюдение стандартов (в пределах возможного) — обязательное условие.

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

Хотите поставить на главную страницу своего сайта красивую галерею «как вот на том сайтике»? Спросите фронтэнд-разработчика! Он без раздумий назовёт вам дюжину готовых решений, предложит варианты кастомизации стандартных плагинов, и всё это сразу с учётом совместимости с вашей CMS и поддерживаемых устройств/браузеров.

Задумали редизайн и добавление вашему сайту модной фичи? Адаптивность, бесконечная прокрутка, параллакс-скроллинг и т. д. Наш герой уже рассчитал в уме, во сколько вам встанет реализация любой безумной идеи, и вовремя отговорит вас, если его художественный вкус и здравый смысл подсказывают, что такие фичи станут как минимум пустой тратой денег, а как максимум — причиной ухудшения пользовательского опыта.

Внимание к мелочам и чувство прекрасного — отличительные черты фронтэнд-разработчика.

На этом месте давайте обозначим грань, разделяющую верстальщика и фронтэнд-разработчика. Не будем вдаваться в подробности работы верстальщика. Основная его задача — нарезать макет. Если далее он предпочитает брать на себя часть бекэнд-разработки (PHP, Python...), то он развивается в сторону бекэнд-программиста. Если он больше уделяет внимание программированию клиентской части (JS), то, возможно, это будущий фронтэнд-разработчик. Может случиться и так, что верстальщик уйдёт в сторону дизайна, что тоже весьма неплохо — практические навыки вёрстки станут его весомым преимуществом относительно классических дизайнеров «по призванию».

Вторая важная обязанность фронтэнд-разработчика — обеспечение должного уровня юзабилити и опыта взаимодействия (UI и UX). Безусловно, об этих вещах должен в первую очередь думать дизайнер. Но в одиночку дизайнер не всегда может спроектировать такой интерфейс, который будет понятен в использовании и прост в реализации, по всё той же причине незнания технической части. Хороший фронтэнд-разработчик обладает навыками дизайнера и UX-специалиста . Другими словами, он знает как сделать красивый и удобный пользовательский интерфейс. Но ни в коем случае не отнимает хлеб у дизайнеров и UX-специалистов. А в случае отсутствия в команде любого из них — может их частично заменять.

Приведу жизненный пример.
Дизайнер больше не занимается проектом, а заказчик решил переделать внешний вид и логику работы какой-либо части своего интернет-магазина на Битриксе.
1. Менеджер проекта идет к программисту.
2. Программист говорит «нужна вёрстка, ТЗ и платное решение из Маркетплейса, потому что это нестандартный функционал для магазина» и отправляет менеджера к верстальщику.
3. Верстальщик говорит «нужен макет и нестандартный плагин для такой галереи, потому что этого нет в нашем готовом решении».
Менеджер оказывается в сложной ситуации. Клиент ждет результат, бюджет минимальный, рисовать некому. Как показывает практика, если доверить спасение подобной ситуации бекэнд-программисту, то на выходе клиент получит нечто, вроде бы работающее, но ужасное настолько, что дизайнер побелел бы, увидев такое, а пользователь ушел бы с сайта, приняв это за один большой баг. Верстальщик не справился бы с задачей однозначно. Малой кровью спасти ситуацию может только опытный фронтэнд-разработчик. Без лишней суеты он перепишет похожий компонент под поставленную задачу, переверстает стандартную галерею и добавит элементы интерактивности так, что решение задачи устроит клиента и понравится пользователям, а менеджер в очередной раз выдохнет с облегчением.

Наш герой — специалист широкого профиля. Ему интересен весь спектр веб-технологий. Не обходит вниманием он и серверную разработку . Помимо родного JS фронтэнд-разработчик знает на среднем уровне хотя бы один серверный язык программирования, может выполнять значительную часть задач, которые обычно выполняет бекэнд-программист. Знает как обращаться с таким зверем, как командная строка (консоль, терминал), и даже может настроить веб-сервер. Серверная разработка на платформе Node.js — не экзотика, а, как минимум, повод ответить всем «пэхэпэшникам» и «питонщикам» мол мы тоже не лыком шиты.

Одна из основных задач фронтэнд-разработчика — это, конечно, разработка на JavaScript , начиная от мини-плагинов для галереи, заканчивая полноценными веб-сервисами. Здесь вновь стоит упомянуть Node.js, в последние годы играющий огромную роль как в разработке клиентской части веб-приложений, так и серверной. Сотни клиентских фреймворков и библиотек, таких как, jQuery, Angular, Backbone, Knockout, Ember и др. — бескрайний простор для развития техник построения архитектуры приложений, улучшения качества и расширения спектра решаемых приложениями задач.

С развитием платформы Node.js стало популярно понятие «full-stack developer» — в нашем случае это JS-разработчик, использующий в своих проектах JavaScript для всех возможных целей. Сервер, база данных, клиентские шаблоны — всё это работает с данными в формате JSON, что весьма выгодно смотрится на фоне того же PHP, где «матёрые программисты» пишут кашу из PHP/Smarty/JS/CSS, которую бывает не под силу расхлебать уже через месяц после сдачи проекта.

Инструменты фронтэнд-разработчика — так же отдельная тема для разговора. Для Node.js было написано множество замечательных утилит, работающих в духе «одна программа — одна задача». Автоматизация рутинных задач с помощью Grunt стала неотъемлемой частью работы. Проверка кода, запуск тестов, автоматический деплой, обфускация и минификация, препроцессинг CSS и многие другие задачи решаются «на ура» всего в несколько кликов.

Chrome Dev Tools и Firebug — вне конкуренции среди инструментов для клиентской разработки. В умелых руках нашего героя эти штуки позволяют творить чудеса. Ваш сайт глючит и медленно загружается, из-за чего подвергается пессимизации в поисковиках? Хороший фронтэнд-разработчик с помощью Firebug за пару минут найдет все тонкие места в производительности сайта. К слову, и про SEO-оптимизацию наш герой не забывает. Случалось так, что товарищи по цеху в лице верстальщика и программиста наставили в коде страницы прекрасных тегов

, а все картинки имели атрибут alt="image001.jpg" . Они, безусловно, получат втык и под чутким надзором будут исправлять это.

Вывод

Кратко перечислим по порядку изложенные выше навыки хорошего фронтэнд-разработчика:
  1. Валидная pixel-perfect вёрстка
  2. Проектирование интерфейсов
  3. Работа с серверными технологиями
  4. JavaScript во всех ипостасях
  5. Оптимизация веб-приложений
Выясняется, что фронтэнд-разработчик — отличный парень. И дизайн поправит, и вёрстку, напишет и отдебажит как надо. Этим постом я не хочу поставить фронтэнд-разработчика выше остальных, а хочу, чтобы сомневающиеся граждане поняли разницу между веб-специалистом широкого профиля и узкоспециализированными специалистами. Бывает обидно, когда человека, работавшего несколько лет над самыми разнообразными проектами, начальство называет простым верстальщиком и думает, что без него бы и так справились. Из-за такого отношения к сотрудникам компании часто теряют весьма достойных людей.

Часто мне приходилось слышать оба этих термина, причём люди, которые ими оперировали, порой даже близко не понимали их сути. Front-end (фронтенд ) и back-end (бекенд ) используются во многих сферах и отраслях, однако мы поговорим именно об IT, или, даже более конкретно, о Web-разработке.

Фронтненд - браузер, бекенд - сервер

Говоря я фронтенде и бекенде, программисты обычно подразумевают разделение интерфейсной части пользователя от программной логики. В этом случае front-end - это интерфейсная часть, которая выполняется, например, в браузере, а back-end - это серверная часть.

В Web-разработке, например, в качестве фронтенда выступают HTML-вёрстка, стили CSS и JavaScript, а в качестве бекенда - серверная часть, которую обычно программируют на PHP или ASP.net. Грубо говоря, всё то, что исполняется на стороне клиента - front-end , а то, что на стороне сервера – back-end . Кстати, поскольку пользователи не видят бекенд, то программисты могут поменять его «втихую». Twitter, например, в качестве бекенда некоторое время использовал Ruby on Rails, но в 2011 году перешел на Java. Готов поспорить, большинство даже и не заметило этого!

Фронтненд - статика, бекенд - программный код

В среде разработчиков высоконагруженных систем (highload-разработчиков) термином front-end называют ту программную часть, которая непосредственно «отдаёт» контент. Например, на больших проектах часто программную серверную часть представляют 2 веб-сервера - Apache и nginx. Nginx принимает запросы и, в случае статического файла, (изображение, файл css, js или xml) сразу же отдаёт его содержимое, а в случае PHP-скрипта, отправляет его к серверу Apache, который уже умеет обрабатывать PHP. Тут nginx - это фронтенд , а Apache - бекенд . Конечно, высоконагруженные системы имеют сложную инфраструктуру, и порой представляют собой много серверов, разнесённых по разным континентам, но общую суть вы уловили.

Фронтненд - открытые данные, бекенд - админка

Также, когда говорят об CMS, административную часть называют back-end , а «лицевую» часть сайта - front-end . С такой трактовкой термина я сталкивался реже всего, однако многие его применяют повсеместно.

Так что же такое фронтенд и бекенд?

Если вы не лишены логического мышления, то поймёте в чём нюанс: в одной сфере один и тот же термин имеет 3 (!) различных значения:

  • Браузерная / серверная часть (самый популярный вариант);
  • Серверная часть, отдающая статику / серверная часть, выполняющая код (highload);
  • Часть сайта для пользователей / часть сайта для администраторов и модераторов.