Что такое разработка front end: Фронтенд и бэкенд — Википедия – Что должен уметь фронтенд-разработчик / Нетология corporate blog / Habr

Содержание

Фронтенд разработчик кто это

Фронтенд разработчик кто это? Чем он отличается от бэкенд разработчика, верстальщика, веб-дизайнера? И сколько зарабатывает? Рассказываю в этой статье.

Содержание статьи

Фронтенд разработчик кто это

Фронтенд-разработчик – это тот, кто создает сайты. По большому счету. А почему его называют не создатель сайтов, а именно фронтенд-разработчик? Сейчас объясню.

Начнем с главного, т.е. происхождения слов. В словах “фронтенд” и “бэкенд” задействованы два разных начала, и одинаковый конец. Front – перед, Back – зад, End – конец. Понятно, что если переводить дословно и буквально, то получится полная чушь: передний конец и задний конец.

Однако, так это никто и не переводит. Frontend означает “передняя часть”, а Backend, соответственно, “задняя часть”. И да, речь идет не только о сайтах, но и о современных программах, приложениях для смартфона. Это на тот случай, если вы однажды услышали от кого-то из знакомых “Я фронтенд-разработчик” или хуже того “Я – бэкенд разработчик”. И подумали про этого человека чего-то не того 😉

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

Front-end разработчик – что это за зверь?

Когда вы заходите на любой веб-сайт (в том числе и на internetprofessia.ru), вы видите его, так называемое, лицо. Картинки, тексты, ссылки. Для обычного пользователя все взаимодействие с любым сайтом ограничивается нажатием на эти ссылки, вбиванием каких-нибудь слов в поля для ввода, возможно, сохранением картинок себе на компьютер. Все это время вы взаимодействуете с так называемым фронт ендом – лицевой частью сайта. С его крыльцом, витриной. “Сзади” у сайта тоже есть много всего важного, и это называется бэк енд – то, что глазу пользователя не показывается.

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

Просто нажимаете правой кнопкой мышки на любом пустом пространстве сайта, выбираете в появившемся меню функцию “Просмотреть код страницы”. И наблюдаете ровно ту же самую картину, какую каждый день видит, например поисковая машина, когда она исследует веб-сайт. Множество строк кода, из которого браузер впоследствии формирует для вас, для пользователя, конечный внешний вид любого сайта.

Так вот, фронтэнд (front-end, frontend, фронтенд, произносите как хотите) разработчик занимается ровно тем, что программирует внешний вид сайта, а также все функции, которые этот сайт выполняет. То есть, без фронтенд-разработчиков не было бы никаких веб-сайтов!

Фронтенд-разработчик, верстальщик или веб-дизайнер?

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

Начнем с веб-дизайнера. Это человек, который по заказу своего клиента буквально рисует внешний вид сайта. Чаще всего это делается в программе типа Adobe Photoshop или других, специальных, вроде Figma. Он делает сайт красивым, продумывает каждую мелочь и деталь: кнопки, тени, размер и стиль начертания шрифтов, отступы от края до края.

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

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

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

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

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

Что должен уметь фронтенд-разработчик?

Чтобы до конца прояснить всю эту историю с фронтом и бэком, скажу, что задача фронтеда — сделать так, чтобы красиво и легко срабатывало “лицо” сайта. Или лицо приложения на вашем смартфоне. То, с чем вы, как пользователь, непосредственно соприкасаетесь.

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

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

Каждую из этих частей необходимо сверстать, то есть, задать их внешний вид с помощью специального языка разметки. Сегодня таким языком служит HTML5. А чтобы упростить задачу браузеру, загружающему страницы сайта, был придуман специальный язык стилей, который называется CSS, Cascading Style Sheet, то есть, каскадная таблица стилей. Он нужен, чтобы разгрузить основной файл (обычно он называется index.html) от всех этих красивостей, занимающих кучу места в коде и утяжеляющих страницу.

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

Ну а для совсем продвинутого программирования, связанного с фронтендом, был придуман специальный язык Javascript, который сегодня очень востребован. Именно понимание Javascript отличает простого верстальщика от начинающего Front-end разработчика.

Ну а кроме упомянутого, фронтенд-разработчик должен также знать различные фреймворки, WebAPI, иметь представление о том, как работают все популярные CMS, к примеру WordPress, уметь “натянуть” верстку на эти самые CMS, реализовать все рабочие элементы так, чтобы в любом браузере они работали корректно и не конфликтовали ни с одной операционной системой.

Что такое fullstack front-end разработчик?

Кроме простого фронтенд-разработчика иногда можно встретить еще резюме и вакансии, где упоминается еще одно странное слово fullstack. Если его переводить буквально, то получится ерунда: “заполненная куча”. Бред какой-то. Но на самом деле, fullstack означает, что у какого-то конкретного профессионала имеется так называемый, полный набор знаний и умений.

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

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

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

Сколько зарабатывает фронтенд-разработчик?

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

Как видите, фронтендеру также не помешает понимание Объектно Ориентированного Программирования, знание реляционных баз данных, понимание SQL и другие страшные слова.

Здесь к упомянутому выше добавляется уже некий JSON, Schema.org, Vue и прочие ужасы =)

К сонму страшных чудовищ присоединяются JQuery, GitHub, Bootstrap…

Ну да, а еще вам нужно подучить React и Ajax. Страшное дело, в общем. Но согласитесь, уровень зарплаты – топовый. И это только то, что я быстрым поиском нашел за пару минут в Телеграм-каналах. Теперь, когда вы обозрели все перспективы и требования, наверняка вас гложет закономерный вопрос: а как же всему этому выучиться и при этом сохранить рассудок, не взорвавшись от огромного количества новой информации? Варианты есть, читайте ниже.

Где учиться на фронтенд разработчика?

Чтобы выучиться на фронтендера, придется потратить немало времени, потому что к 2020 году область технологий серьезно расширилась, в сравнении с самым началом зарождения Интернета, когда нужен был только голый HTML. Сегодня нужны также CSS, JS, React, GIT и так далее. Перечислять весь стек технологий я не стану, чтобы не запугивать тех, кто только начинает интересоваться всей этой темой, связанной с веб-разработкой. А еще потому что их уже и так запугали без меня авторы вакансий, которые можно увидеть выше =)

Зато я могу порекомендовать несколько отличных мест, где можно с нуля обучиться верстке и веб-разработке, даже если вы никогда в жизни этим не занимались. Сразу скажу, что мощный компьютер для этого не понадобится, потому что верстка совершенно нетребовательна к железу, зато нужен монитор. Достаточно большой, чтобы в него помещались базовые разрешения —1920х1080 вполне хватит.

Skillbox

профессия Frontend-разработчик

Ещё раз, ссылка на регистрацию — «ЗДЕСЬ»


Skillbox — курс Frontend-разработчик

Ещё раз, ссылка на регистрацию — «ЗДЕСЬ»


Сколько учиться на веб-разработчика?

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

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

Если вы готовы часами смотреть в монитор, строить никому, кроме вас, не понятную абракадабру, а на выходе иметь возможность гордиться созданным продуктом, значит, добро пожаловать в веб-разработку!

Где брать заказы?

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

А если вы только учитесь верстать, то здесь все довольно просто. Во-первых, вам нужны демо. То есть, у вас должно быть хоть что-нибудь, что можно показать в качестве демонстрации ваших умений. Сделать это очень просто: берёте, например, лэндинг, т.е. посадочную страницу, одностраничный сайт, который вам очень нравится. И воссоздаете его полностью, от начала до конца, наполняя другими картинками, другим текстом.

Эту процедуру с копированием чужого сайта вы повторяете несколько раз, 3-5 сайтов будет достаточно. После чего, публикуете эти лэндинги на каком-нибудь бесплатном хостинге, чтобы можно было показать ваши работы, сбросив ссылки на них при личном общении. А дальше идете в какую-нибудь группу ВК, где тусуются веб-дизайнеры и пишете ее администратору: “Привет, я начинающий верстальщик, можно опубликовать у тебя в группе объявление о поиске заказов от дизайнера?”. Если он соглашается, прикладываете ссылки на свои демо-сайты, сверстанные в рамках тренировки, и ждете, кто откликнется на ваше объявление.

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

Итог

Спасибо, что дочитали мою статью “Фронтенд-разработчик кто это”, я надеюсь, она была для вас полезна. На моем блоге “Интернет-профессия” есть и другие интересные статьи, ссылки на них вы найдете чуть ниже, в блоке “Еще интересное”. Поделитесь ссылкой на этот материал в своих соцсетях, это можно сделать с помощью кнопок, которые вы тоже увидите ниже. До встречи!

 

кто такой Frontend, Backend и Full Stack разработчик

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

Кто все это создал? WEB-разработчик.

Первый сайт появился 6 августа 1991 года, а сейчас их уже почти миллиард. WEB-разработчики строят, анализируют и поддерживают каждый сайт.

Сайт – необходимый компонент любого конкурентоспособного бизнеса. Тренды и специфика WEB-разработки меняется каждый сезон и работы у WEB-разработчиков всегда много.

Но как понять, кто и чем занимается и на кого следует учиться? Людей, которые занимаются WEB-разработкой много. К ним относятся Front-end, Back-end, Full Stack WEB-разработчики. Поверхностно интересуетесь HTML, JavaScript или Python? Самое время понять, что к чему в WEB-разработке. Кто и за что отвечает во время работы и создания сайта.

Front-end разработчик

Пользователи видят и взаимодействуют только с той частью сайта, над которой работали Front-end разработчики. Все, что видит пользователь на сайте от шрифта, фона, выпадающего меню, слайдера создано с помощью HTML, CSS и JavaScript, контролируется браузером, который установлен на компьютере пользователя.

Навыки и инструменты

Front-end разработчик создает «лицо» сайта, часть, которую видит пользователь. Он учитывает опыт взаимодействия пользователей с сайтами. Чтобы пользователь был доволен всем и понимал, как работать с сайтом, разработчику необходимо знать языки программирования HTML, CSS и JavaScript, а также уметь работать с фреймворками Bootstrap, AngularJS, библиотеками типа jQuery и технологией Ajax, которая позволяет обращаться к серверу без перезагрузки страницы, а это живой поиск, элементы интерфейса, динамическая подгрузка сайтов.

Можно даже сказать, что Front-end разработчик отвечает за внешний вид, фасад сайта, над которым работали Back-end разработчики, если представить Интернет-сайт как здание.

Front-end разработчик совместно работает с дизайнерами и UX-аналитиками над разработкой сайта. Ему важно общаться с другими командами разработчиков, чтобы лучше понимать цели и потребности бизнеса и потом предлагать решения, которые будут лучше соответствовать целям бизнеса.

Все, что Вы сейчас видите на сайте Академии ШАГ создано Front-end разработчиками. Дизайнер создал логотип и графику, фотограф предоставил фотографии, копирайтер придумал тексты, а Front-end разработчик собрал все воедино и перевел на язык WEB.

BackEnd Developer

Итак, что же заставляет работать сайт? Где собираются и находятся основные данные, регистрации, заказы пользователей на покупку и заявки на обратный звонок? Back-end часть сайта состоит из сервера, приложения и баз данных. Back-end разработчик строит и поддерживает технологии, которые управляют всеми компонентами сайта.

Навыки и инструменты Back-end разработчика

Для того, чтобы сервер и базы данных работали вместе, разработчик использует серверные языки программирования вроде PHP, Ruby, Python, Java, или .Net, инструменты MySQL, Oracle и SQL Server.

В описании вакансий Back-end разработчиков часто встречаются требования по работе с РНР фрейморками, опытом работы с системами контроля версий, например, Git.

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

Сервер отправляет информацию компьютеру, когда пользователь начинает перемещаться по страницам сайта, что выражается в отображении необходимой страницы. Вы читаете, к примеру, о направлениях обучения в Компьютерной Академии ШАГ, значит Вы нажали на кнопку «Направления обучения» на сайте Академии и выбрали, к примеру, «Профессиональные спецкурсы», далее «Разработка и продвижение WEB-проектов», именно по этой причине Вы и находитесь на соответствующей странице. Этот сложный процесс – результат кропотливой работы Back-end разработчика.

Full Stack Developer

Основная идея в том, что Full Stack разработчик работает кросс-функционально с полным стеком технологий, и с Front-end и с Back-end. Идею Full Stack разработчиков стали активно продвигать в компании Facebook несколько лет назад.

Некоторые говорят, что работа с серверной и клиентской частью сайта открывают больше возможностей. Но эта работа не без вызовов. Full Stack разработчик должен разбираться и в серверной и в клиентской части сайта одинаково хорошо.

Однако есть мнение, что быть одинаково  хорошим в двух областях сложно, в какой-то одной области разработчик будет лучше.

Инструменты и навыки

Чаще всего Full Stack разработчик работает  над серверной частью сайта и разбирается в Front-end разработке, что позволяет ему контролировать то, как будет выглядеть весь контент на стороне пользователя.

Чтобы проиллюстрировать комплексность Full Stack разработчика приведем несколько фактов. Нехватка специальных инструментов, зависимость от клиента или проекта, Full Stack разработчики должны знать и иметь представление о том, как работает WEB: настройки и конфигурации сервера, оживлять дизайн с помощью CSS, писать на JavaScript. Используя эти инструменты, разработчик определяет клиентскую и серверную часть сайта и отвечает за принятые решения, касательно выбранных технологий. Full Stack девелопер отвечает за работу сайта и за то, что происходит с пользователем на сайте: от времени загрузки сайта до его структуры и интерактивности.

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

И напоследок, отметим, что за последние 10 лет потребность в WEB-разработчиках возросла на 20%, а это больше, чем в среднем по всем специальностям.

В Компьютерной Академии ШАГ студенты получают знания как по Front-end, так и Back-end разработке. 

На занятиях студенты погружаются в атмосферу разработки и создания веб-сайтов. Они изучают HTML, CSS, JavaScript, PHP, Ruby, Python, Java, чтобы создавать сайты, которые помогают пользователям и бизнесу в разных странах.

 

Современная front-end разработка. Плюсы и минусы.

За последние несколько лет front-end разработка ушла далеко вперёд. От банальной верстки html-страниц при помощи CSS c минимальной динамикой, задаваемой javascript/jquery, практически не осталось и следа. Если вы не работали хотя бы с одним из сборщиков front-end проектов (grunt, gulp, webpack), не слышали слова "транспайлер" (babel), не знаете, что на front end тоже можно писать тесты (jasmine, mocha, chai), и запускать их автоматически в любом браузере (karma), то вы весьма сильно отстали от жизни. А ведь есть ещё React.js (библиотека для построения интерфейсов), ES6 (новейший стандарт языка javascript, который ещё не поддерживается большинством браузеров, но если очень хочется, то уже можно использовать в production-коде), Node.js (платформа, позволяющая исполнить мечту любого front-end разработчика - писать не только front end, но и back end проекта на любимом javascript) и многое-многое другое.

Но как и любое новшество, данный скачок в развитии имеет две стороны медали. Мы попытаемся разобраться, какие есть недостатки и достоинства в работе с самыми новыми front-end технологиями и как постараться избежать проблем при старте работы с ними.

Работая над проектами в Anadea Inc., мы успели испробовать не только все вышеназванные, но и многие другие инструменты front-end разработчиков. Это был длинный и тернистый путь, и теперь мы хотим поделиться полученным опытом, дабы помочь вам приоткрыть дверь в мир современной javascript-разработки.

Поговорим о преимуществах использования передовых front end инструментов.

Pros

  • рост скорости решения задач;

Эта одна из основных причин появления всех вышеназванных инструментов. Благодаря им значительно сокращается время, затрачиваемое на рутинную работу. Например, благодаря, karma вы можете запустить тесты в режиме слежения сразу во всех имеющихся браузерах (а также в вашей виртуальной машине и даже на мобильных устройствах, подключенных к той же локальной сети, в которой находится ваш компьютер) и при каждом сохранении изменений в коде тесты будут автоматически перезапускаться.

Или же для создания нового проекта вы можете начать использовать yeoman (генератор проектов). С его помощью этот этап жизни проекта превратится в запуск одной команды в терминале, которая даст готовую структуру папок и предустановленный набор инструментов. Довольно удобно, если вы делаете много типовых проектов.

  • повышение качества кода;

В последнее время стали популярными линтеры (jslint, jshint, eslint) - инструменты, позволяющие определить стиль кода в вашем приложении и указывать на места, где выбранный стиль не соблюдается. В зависимости от настроек окружения, это может происходить во время push'a изменений в репозиторий, во время deploy'a на сервер, либо в реальном времени прямо внутри вашего текстового редактора/IDE. Линтеры позволяют в значительной степени улучшить состояние вашего кода, избежать простых ошибок. Однако линтеры не являются решением всех проблем - они лишь укажут на места, где ваш код явно "плохо пахнет". Но это не исключает изучение pattern'ов и лучших практик программирования, чтение чужого кода, общение с более опытными коллегами и всё так же придётся рефакторить ранее написанный код. Только так удастся добиться повышения качества кода.

  • значительное снижение дублирования кода;

Ещё один полезный момент, который можно извлечь из использования линтеров - это возможность отслеживать дублирование в коде и избавляться от него. Но это не главный инструмент сокращения дублирования кода в мире современной javascript-разработки. К основным можно отнести Node.js, который при правильной архитектуре позволяет использовать один и тот же код и на back end, и на front end. Также снизить дублирование позволяет компонентный подход, применяемый многими библиотеками (например, React.js), и удобная система управления пакетами - npm. Компонентный подход позволяет инкапсулировать логику, стиль и отображение. Npm предоставляет несложный способ распространения (share) таких компонентов.

  • возможность программирования в реальном времени;

И самый "горячий" плюс в современной front-end разработке это - hot reload - возможность делать изменения в коде и видеть их на экране браузера без перезагрузки страницы и без потери текущего состояния данных. Эта feature доступна на данный момент только тем, кто использует в качестве builder'a проекта webpack. Если вам интересно как это выглядит, можете посмотреть пример с React.js.

Но как уже было сказано выше, современный front end имеет и обратную сторону медали. Давайте посмотрим на недостатки, которые нам удалось выявить в процессе работы с новейшими инструментами javascript.

Cons

  • высокий порог вхождения в окружение;

Как бы ни было, за всем разнообразием front-end инструментов скрываются три технологии: javascript, html, css. Но чтобы вывести банальный "Hello, world!" на экран своего монитора современным способом, вам придётся ознакомиться не меньше чем с десятком документаций, написать несколько не самых очевидных файлов конфигурации и запустить череду команд в терминале. Всё это отпугивает как новичков, так порой и опытных программистов, не желающих познавать новое. Настройка окружения действительно важный этап в современном мире front end'a. Хорошая новость в том, что это необходимо будет сделать "практически" один раз. Плохая - если вы постараетесь проскочить этот этап, бездумно скопировав чьи-то решения, то он постоянно будет возвращаться к вам часами серфинга просторов интернета в поисках решения банальных проблем.

  • "усталость от javascript инструментов";

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

Суть javascript fatigue сводится к тому, что если вы не следите за числом модулей, подключенных в проект, управление зависимостями превращается в сущий ад. Из-за обновления одного инструмента до новой версии вам придётся обновить ещё три, которые в свою очередь тоже имеют свои зависимости - и так до бесконечности. Если у вас несколько проектов, то приходится держать в голове не только специфику связей между модулями, но и специфику связей между версиями этих модулей, которая в мажорных версиях зачастую меняется кардинально.

  • большой выбор способа конфигурации модулей;

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

Практически каждая большая зависимость (webpack, karma, gulp, eslint и т.п.) в вашем проекте будет предоставлять более одного способа конфигурации: с помощью своего конфигурационного файла; через конфигурационный файл родительского модуля; с помощью флагов в shell-скриптах и т.д. Казалось бы, дополнительная гибкость - что плохого? А то, что на начальных этапах вы обязательно столкнётесь с ситуациями, когда настроив один инструмент, захотите добавить второй, расширяющий функциональность первого, и поймёте, что новый инструмент не работает. Виной тому часто становится банальная недосказанность в документациях инструментов о том, как они должны взаимодействовать и неосознанность возможных способов конфигурации этого взаимодействия.

  • нехватка ресурсов для поиска ответов;

Из-за неимоверного количества инструментов в мире современного front end'a пытаться удержать в голове знания о каждом становится практически невозможно. Для решения данной задачи программисты часто прибегают к помощи ресурсов для поиска ответов проверенных временем (stackoverflow.com, experts-exchange.com, superuser.com, github.com и др.). Но в нашем случае проблема в том, что инструменты и их новые версии появляются настолько быстро, что мы фактически являемся их бета-тестерами и сталкиваемся с проблемами, нигде ранее не описанными, отчего не можем даже понять, возможно ли их решить или же это баг библиотеки, которую мы решили использовать.

Как избежать проблем

Недостатков мира современного javascript достаточно легко избежать, придерживаясь простых правил.

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

	npm install brilliant-module-that-will-solve-my-problem-by-one-string

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

Если вы только шагнули в мир современной front-end разработки, старайтесь не использовать готовые шаблоны приложений. Их основная проблема - забитость до отказа инструментами, с которыми вы никогда не работали. И когда вам понадобится внести минимальные изменения, может оказаться, что из-за большой связанности инструментов и недостатка знаний в их настройке, вы не сможете получить желаемый результат.

Заключение

Современная front-end разработка находится уже далеко за пределами чистых js/html/css. Число инструментов, призванных помочь разработчикам, растёт в геометрической прогрессии. Но это ведёт не только к позитивным последствиям. Чем больше инструментов, тем сложнее рассмотреть среди них действительно стоящие - те, которые отслужат верой и правдой на протяжении всей жизни проекта и не подведут в ответственный момент. Именно такие инструменты мы попробуем помочь вам выбрать в следующей статье.

что нужно знать о ключевых трендах в 2019 году

Топ 5 мега-трендов front-end разработки, которые нужно знать

От автора: часто веб-разработка связана с ошеломляющим опытом. Я постоянно стараюсь оставаться в тренде, изучая новые фреймворки, новые функции языков, иногда изучая совершенно новые языки. Неудивительно, что front-end разработчики часто испытывают стресс.

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

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

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

Итак, вот они: Top 5 мега-трендов front-end разработки.

Топ 5 мега-трендов front-end разработки, которые нужно знать

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

1. Компонентно-ориентированная разработка

В наши дни каждый JavaScript-фреймворк применяет компонентно-ориентированный подход. Неважно, какой из них вы используете — React, Angular, Vue — это большая тройка, но мы также рассмотрим такие инструменты, как Ember, Dojo, Mithril … все они используют компоненты в качестве основной абстракции для представления интерфейса пользователя.

Эта ориентация также присутствует в CSS как на методологическом, так и на базовом уровне. Такие методологии, как BEM, разработаны именно для поддержки компонентно-ориентированного подхода к CSS. UI фреймворки, такие как Bootstrap, Material или Foundation, по сути являются просто наборами готовых компонентов. Это лежит в основе почти всех современных инструментов front-end разработки.

Почему компонентно-ориентированная разработка стала такой популярной? Потому что это позволяет разделить задачи и модульную разработку таким образом, который имеет смысл для пользовательских интерфейсов.

Мы всегда знали о важности модульности кода — это позволяет нам разрабатывать гораздо более сложные системы, сохраняя управляемость кода. Но правильный способ реализовать эту модульность для внешнего интерфейса не всегда был ясен. Подход React, направленный на то, чтобы развивать методы разделения компонентов, а не язык программирования, произвел революцию в мире front-end.

JSX — не всеми любимое решение. Я предпочитаю подход Vue Single File Component, и у обеих сторон есть веские аргументы, как в пользу шаблонных языков, так и включений JavaScript. Несмотря на это, ключевым изменением является ментальный сдвиг в контексте представления компонентов в виде небольших блоков тесно связанных HTML, CSS и JavaScript, которые сами по себе могут быть слабо связаны с другими компонентами.

2. Декларативное кодирование

На заре Интернета, и до сих пор во многих простых не-фреймворк приложениях JavaScript, мы используем императивную парадигму.

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

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

Первое — это феноменальное улучшение читаемости и понятности кода. Вместо того, чтобы копаться во многих строках jQuery для выяснения, что меняется, и пытаться определить, как будет выглядеть конечное состояние, мы можем просто взглянуть на шаблон и увидеть это.

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

3. Консолидация управления состоянием

По мере того, как все больше и больше сложных операций переходило во front-end, нам также приходилось придумывать все более и более эффективные решения для управления состоянием front-end. Чисто компонентно-ориентированная разработка хороша для локального состояния, но иногда нам нужно разделить состояние между разными компонентами. Одна из уникальных задач внешнего интерфейса заключается в реализации того, как все происходит асинхронно, но иногда нам необходимо обеспечить предсказуемость в управлении состоянием. Это касается двух, на первый взгляд, разных, но, по моему мнению, связанных событий.

Топ 5 мега-трендов front-end разработки, которые нужно знать

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Первое — это развитие архитектуры Flux. Этот шаблон был реализован в таких инструментах, как Elm, Redux, Vuex. Сила этой архитектуры в том, что она вызывает однонаправленный поток данных, что значительно упрощает управление и отладку состояния. Все заканчивается прохождением через центральный диспетчер, что означает, что вы можете обеспечить предсказуемость, воспроизводимость и простую поддержку в управлении состоянием.

Вторая вещь, которая, я считаю, решает ту же проблему — это GraphQL. Это еще один способ решения проблемы — создание слоя консолидации, который вместо front-end в диспетчере функционирует на сервере GraphQL. Front-end больше не нужно управлять множеством разных мест, из которых он должен получать состояние, и их взаимосвязями… он просто запрашивают именно то, что ему нужно, а сервер GraphQL позаботится о том, чтобы это подготовить.

4. Одностраничные приложения и маршрутизация на стороне клиента

Когда сложные внешние интерфейсы впервые вступили в игру, сразу не было понятно, как мы собираемся их организовывать. Будем ли мы просто встраивать все более и более мощные компоненты в независимые серверные страницы?

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

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

И независимо от того, используете ли вы маршрутизаторы React Router, Vue-router, Mithril или что-то еще, основные концепции довольно схожи. URL-адрес сопоставляется с набором компонентов и состоянием, часто с приложением компонентов на основе вложенных маршрутов.

5. Типы для управления сложностью

JavaScript долгое время был быстро развивающейся средой разработки. Типы были свободными, аргументы не проверялись, и даже автоматическое тестирование долгое время оставалось без внимания. Но по мере роста сложности того, что мы передаем во front-end, увеличиваются и потребности в управлении кодом и предотвращении ошибок.

И самый мощный мега-тренд в этом плане — это типы. Еще в таких инструментах, как Flow, и тем более сегодня с повсеместным использованием компилируемых в JavaScript языков, таких как TypeScript, front-end охватывает проверку типов.

Потрясающая статистика по принятию на уровне 46% респондентов на npm, использующих TypeScript, показывает, что это происходит, и в 2019 году все признаки говорят за то, что эта тенденция сохранилась.

Бонус: рендеринг на стороне сервера и универсальный JavaScript

Хотя это скорее касается «развертывания» или эксплуатационных инноваций, чем инноваций в области front-end разработки, еще один мега-тренд, который очень четко проявился — это тенденция к упрощению рендеринга одностраничных приложений на стороне сервера.

Это позволяет вам использовать лучшие качества как серверных приложений, так и SPA — быстрое первоначальное отображение страницы, а также эффективность использования сети и все преимущества малой задержки и интерактивности SPA.

Заключение

Преимущество осведомленности об этих мега-трендах состоит в том, что вам не нужно паниковать по поводу необходимости «идти в ногу со временем» или выяснять, чему учиться. Вы можете сосредоточиться на одном стеке, но, изучая его, обратите внимание на общие принципы, которые вы по мере необходимости сможете быстро применить к другим стекам. Например, вы можете глубже изучить Next.js, используя TypeScript. Это заставит вас уделить внимание каждому из этих мегатрендов.

Вы будете работать с React, компонентно-ориентированным фреймворком с отличным декларативным стилем. Вы можете использовать Redux или GraphQL, и вы получите из коробки маршрутизацию и рендеринг на стороне сервера.

Если позже, например, вы решите перейти на Vue.js, все эти знания будут востребованы — частности Vue немного отличаются, но общая картина очень похожа, существует даже эквивалентная структура более высокого уровня: Nuxt .js.

Источник: https://zendev.com

Редакция: Команда webformyself.

Топ 5 мега-трендов front-end разработки, которые нужно знать

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее Топ 5 мега-трендов front-end разработки, которые нужно знать

Full-Stack практика. Создание JavaScript блога

Создание веб-приложения с нуля на JavaScript, NodeJS, ExpressJS

Смотреть

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *