Frontend и backend: различия, особенности и требования к специалистам

Содержание:

Путь обучения

Время изучения: 1–2 часа

Необходимые условия

Ничего, кроме базовой компьютерной грамотности.

Как понять, что я могу двигаться дальше?

В этой части курса нет оценок, но обязательно убедитесь, что вы ничего здесь не пропустили — важно всё настроить и подготовиться к выполнению упражнений в дальнейшем

Основные руководства

  • Установка базового программного обеспечения— базовая настройка инструмента (15 минут чтения)
  • История всемирной сети и веб-стандартов (45 минут чтения)
  • Обучение и получение помощи (45 минут чтения)

Время завершения: 35–50 часов

Необходимые условия

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

Как понять, что я могу двигаться дальше?

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

Основные модули

  • Введение в HTML (15–20 часов чтения/упражнений)
  • Мультимедиа и встраивание (15–20 часов чтения/упражнений)
  • HTML таблицы (5–10 часов чтения/упражнений)

Время завершения: 90–120 часов

Необходимые условия

Рекомендуется иметь базовые знания HTML перед началом изучения CSS. Сначала вы должны изучить Введение в HTML.

Как понять, что я могу двигаться дальше?

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

Основные модули

  • Первые шаги в CSS (10–15 часов чтения/упражнений)
  • Структурные элементы CSS (35–45 часов чтения/упражнений)
  • Стилизирование текста (15–20 часов чтения/упражнений)
  • CSS разметка (30–40 часов чтения/упражнений)

Книга рецептов CSS

Время завершения: 135–185 часов

Необходимые условия

Рекомендуется иметь базовые знания HTML перед началом изучения JavaScript. Сначала вы должны изучить Введение в HTML.

Как понять, что я могу двигаться дальше?

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

Основные модули

  • Первые шаги в JavaScript (30–40 часов чтения/упражнений)
  • Структурные элементы Javascript (25–35 часов чтения/упражнений)
  • Клиентский веб API (30–40 часов чтения/упражнений)
  • Введение в объекты Javascript (25–35 часов чтения/упражнений)
  • Асинхронный Javascript (25–35 часов чтения/упражнений)

Время завершения: 40–50 часов

Необходимые условия

Для эффективного использования форм требуется знание HTML, CSS и JavaScript. Они сложны и поэтому рассматриваются отдельно.

Как понять, что я могу двигаться дальше?

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

Основные модули

Веб формы (40–50 часов)

Время завершения: 60–75 часов

Необходимые условия

Рекомендуется ознакомиться с HTML, CSS и JavaScript перед началом работы с этим разделом — многие из техник и лучших практик используются в нескольких технологиях.

Как понять, что я могу двигаться дальше?

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

Основные модули

  • Кросс-браузерное тестирование (25–30 часов чтения/упражнений)
  • Доступность (20–25 часов чтения/упражнений)

Время завершения: 55–90 часов

Необходимые условия

Рекомендуется ознакомиться с HTML, CSS и JavaScript перед началом работы с этим разделом, так как обсуждаемые инструменты работают со многими из этих технологий.

Как понять, что я могу двигаться дальше?

В этом наборе модулей нет специальных статей для оценки, но учебные примеры в конце 2-го и 3-го модулей хорошо подготовят вас к пониманию основ современного инструментария.

Основные модули

  • Git и Github (5 часов чтения)
  • Понимание инструментов на стороне клиента (20–25 часов чтения/упражнений)
  • Понимание JavaScript-фреймворков для фронтенда (30-60 часов чтения/упражнений)

Что такое backend-разработка?

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

Например, когда вы вводите запрос на странице поисковика и жмёте клавишу Enter, frontend заканчивается и начинается backend. Ваш запрос отправляется на сервер Google или «Яндекса», где расположены алгоритмы поиска. Именно там случается всё «волшебство». Как только на мониторе появилась информация, которую вы искали, — вновь происходит возвращение в зону frontend.

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

Важно!

Backend — это процесс объединения сервера с пользователем.

Компоненты backend-разработки

Backend-разработчик применяет те инструменты, что доступны на его сервере. Он вправе выбрать любой из универсальных языков программирования, например, Ruby, PHP, Python, Java. Всё зависит от конкретного проекта и задачи заказчика.

Также для backend-разработки используются системы управления базами данных:

  • MySQL;
  • PostgreSQL;
  • SQLite;
  • MongoDB.

Что такое фронтенд и чем занимается специалист

Frontend — это разработка интерфейса, с которым взаимодействуют пользователи. Называется она так, потому что это создание наружной части сайта или приложения, а значит, находится снаружи/спереди (front).

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

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

Главные инструменты в этой сфере — языки веб-разметки (HTML, CSS) и программирования (JavaScript):

  • JavaScript используется для создания UI (user interface — интерфейс пользователя) с нуля;
  • На HTML производится основная верстка, где интерфейс переводится на язык, понятный современным браузерам;
  • Через CSS прикрепляются стили к структурированным документам (в случае с frontend это прикрепление стилей к документам HTML).

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

Из этого выходит, что профессия фронтенд-разработчика требует постоянного обучения и нахождения в курсе событий в индустрии.

Отличие frontend от backend

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

За все обработки и действия, которые производятся на серверах, отвечает другой специалист — бэкенд-разработчик. Так как это разные профессии, в backend используется другой инструментал, включающий языки программирования PHP, Perl, Java, Python, Ruby, фреймворки и SQL для работы с данными. Кстати, на нашем сайте есть обзор профессии PHP-программиста.

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

Достоинства и недостатки

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

Перечень плюсов:

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

Список минусов:

  • Во многих вакансиях по этой специальности есть требования, касающиеся бэкенда;
  • Обязательно взаимодействие с другими сотрудниками (далеко не для всех это минус);
  • Хоть JavaScript и не такой сложный и требовательный, как, например, C++, для того чтобы им уверенно владеть, нужно иметь начальные знания алгебры.

Структура специализации

  1. jQuery – библиотека с набором плагинов и расширений, которые делают разработку с помощью JavaScript быстрее и проще. Вместо того чтобы кодировать все с нуля, jQuery позволяет добавлять готовые элементы (таймер обратного отсчета, автозаполнение поисковых форм, автоматическая перестановка и изменение размера макетов сетки) в проект, а затем настраивать их по мере необходимости.
  2. Фреймворки JS (Angular, Backbone, Ember, React) дают готовую структуру JavaScript-коду. Они ускоряют разработку, могут использоваться с jQuery, чтобы свести к минимуму количество кода, который нужно сделать с нуля.
  3. Фреймворки frontend (Bootstrap) и CSS тоже ускоряют разработку.
  4. Препроцессоры CSS (SASS или LESS) добавляют дополнительную функциональность, чтобы сделать CSS масштабируемым и более простым в работе. Обрабатывают код, прежде чем он будет опубликован, и превращает его в хорошо отформатированный и кроссбраузерный CSS.
  5. RESTful-сервисы и API-интерфейсы упрощают сетевую коммуникацию в интернете.
  6. Адаптивный и мобильный дизайн – макет сайта (а иногда функциональность и контент) подстраивается под устройство и размер экрана.
  7. Кроссбраузерную разработку – чтобы браузеры правильно интерпретировали код за кулисами.
  8. Системы управления контентом и платформы электронной коммерции (WordPress, Joomla, Drupal, Magento).
  9. Тестирование и отладку, поскольку невозможно обойтись без ошибок в процессе написания кода. Unit testing позволяет тестировать отдельные блоки исходного кода.
  10. Git и системы контроля версий позволяют отслеживать изменения, внесенные в код с течением времени, а также вернуться к более ранней версии.
  11. Редакторы (Photoshop, Figma, Zeplin) и основы дизайна – разработчик должен иметь определенное представление о графике и дизайне, поскольку иногда приходится принимать кардинальные решения относительно интерфейса или переделывать то, что сделал другой специалист.

Frontend-программисты могут стать разработчиками backend или fullstack, если приобретут необходимые навыки. Также специализируются на проектировании UX/UI или архитектуре приложений.

Про общение клиентов и серверов, или Как это работает на языке компьютера

Есть несколько клиентов — ими могут быть обычные браузеры на ПК или мобильном устройстве. Один из клиентов — браузер вашего компьютера. Вы хотите получить информацию из интернета. Делаете запрос — вводите фразу в поисковик Yandex или Google. Сразу же открывается страница с необходимой вам информацией.

Как это работает на самом деле? Ваш клиент, он же браузер, отправляет запрос на сервер. Сначала на сервер пользователя — frontend. Frontend-сервер (компьютер) обрабатывает запрос, выбирает backend-сервер, который в данный момент свободен, и отправляет ему запрос из браузера. Backend-сервер обрабатывает запрос, обращается к базе данных и посылает ответ обратно frontend-серверу. А frontend, так как он отвечает за удобство пользователя, уже отображает ответ на запрос в виде HTML-страницы.


Передача данных

Что делает frontend-разработчик

StackOverflow ежегодно проводит исследования, согласно которым самой популярной профессией среди пользователей сервиса является Web developer, к которой относятся все фронтенд-разработчики.

Бесплатный онлайн-интенсив

Ваш Путь в IT начинается здесь

Подробнее

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

Отметим тот факт, что названия вакансий сильно перепутаны: можно увидеть такую формулировку как «frontend-developer», и «frontend-разработчик», «web-developer». Более того, нередко встречаются вакансии с желанием найти «веб-верстальщика» с требованиями под фулстак-разработчика. Что это вообще такое?

Задача фронтенд-разработчика — не только верстка макетов. Он должен разбираться в JavaScript, фреймворках и библиотеках (быть активным пользователем)

При этом он понимает, что находится под «пристальным вниманием». Он не боится препроцессоров и сборщиков LESS, SASS, GRUNT, GULP, и имеет навыки работы с DOM, API, SVG-объектами, AJAX и CORS, составляет SQL-запросы и копается в данных.

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

Любой frontend-разработчик имеет дело с контроллером версий (Git, GitHub, CVS и т. д.), умеет пользоваться графическими редакторами, «играет» с шаблонами разных CMS.

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

Давайте разбираться, что нужно знать frontend -разработчику и какими технологиями овладеть:

  • HTML и CSS (в том числе сетки и CSS-фреймворки, спецификации W3C и WHATWG, HTML5/CSS3 Polyfills)
  • Препроцессоры CSS (Sass, Less, Stylus и т. д.)
  • JavaScript
  • Популярные фреймворки и библиотеки: jQuery, Angular.JS, React.JS, Backbone.js и т. д.)
  • OOCSS / BEM / SMACSS
  • SVG
  • DOM
  • HTML5 API
  • ECMAScript 6
  • Популярные CMS (WordPress, Drupal, Joomla и т.д.)
  • Ориентироваться в принципах построения бекэнда и разбираться в серверных технологиях (Node.js, PHP, Ruby, .NET и т. д.)
  • Инструменты дебаггинга (Chrome Dev Tools, Firebug и прочие)
  • JavaScript транспайлеры (Babel)
  • Инструменты контроля версий (Git, GitHub, CVS и т. д.)
  • Базы данных и языки запросов (SQL, MySql, NoSQL, MongoDB и т. д.)
  • Графические редакторы (Photoshop, Illustrator и т. д.)

Как увеличить свой доход минимум на 50% выбрав правильную профессию
Запутались в разнообразии профессий и не знаете, куда двигаться? Хотите больше зарабатывать
или работать удалённо? Уже повзрослели, но так и не поняли, кем хотите стать? Мечтаете
наконец найти любимую работу и уйти с нелюбимой?

Александр Сагун
Главный карьерный консультант

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

Карьерная мастерская это:

  • Список из 30 востребованных современных профессий.
  • Долгосрочный план по развитию в той профессии, которая вам подходит.
  • Список каналов для поиска работы.
  • 3 теста на определение своих способностей и склонностей.
  • Практику в разных профессиях на реальных задачах.

Уже 50 000 человек прошли мастерскую и сделали шаг к новой профессии!

Запишитесь на бесплатный курс и станьте ближе к новой карьере:

Зарегистрироваться и получить подарки

В каких областях иметь компетенции:

  • кросс-браузерная и кросс-платформенная разработка;
  • прогрессивное улучшение и изящная деградация;
  • мобильная разработка;
  • адаптивная и отзывчивая верстка;
  • веб-шрифты;
  • основы SEO-оптимизации.

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

Что нужно знать начинающему front-end разработчику

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

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

Также начинающий front-end разработчик должен знать, где именно он может получить соответствующие знания и образование, подкрепленное дипломом. Во-первых, он может поступить в Международный учебный центр IT-образования «Компьютерная академия Шаг». Здесь только очное отделение, а выпускники получают соответствующие сертификаты и международный диплом. На сегодняшний день филиалы академии представлены в шестнадцати странах мира. Во-вторых, можно пройти онлайн-курсы в Образовательном IT-портале GeekBrains. За шестинедельный курс здесь можно пройти стажировку.

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

Дополнение: мобильная и десктопная разработка

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

Например, Instagram, Twitter, Pinterest, Spotify и десятки других популярных программ создавались с использованием JavaScript-кода. 

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

В этой области популярны технологии:

  • React Native

  • NativeScript

  • Flutter

  • Ionic

  • Electron (для Windows, macOS и Linux)

React Native самый быстрый, он лучше всех продвинулся в области создания нативных приложений. Взгляните на Discord – он написан на React + Electron для компьютеров + React Native для мобильных систем. Выглядит и работает отлично. 

Flutter тоже хорош. Довольно популярен и приближен к нативному коду по ощущениям со стороны пользователя. 

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

Используемые технологии:

Полезные ссылки:

Анализ фреймворков для разработки мобильных приложений при помощи JavaScript

Как стать frontend-разработчиком с нуля

Должность верстальщика – первая ступень на пути к должности фронтенд-разработчика. Это самый распространенный вариант.

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

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

Чтобы стать frontend-разработчиком с нуля, первым делом познакомьтесь с HTML-кодом и возьмитесь за изучение CSS.

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

А дальше оттачивайте свои навыки, пополняйте знания.

Можно заниматься саморазвитием, читать тематическую литературу. Список книг по frontend-разработке есть на нашем блоге.

Более быстрый способ узнать все тонкости профессии – обзавестись наставником. Найти его можно на онлайн-курсах.

Где учиться

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

По завершении обучения вам выдадут сертификат и помогут составить резюме.

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

Вот несколько хороших курсов:

  • Профессия Frontend-разработчик
  • Frontend-разработчик с нуля
  • React: библиотека фронтенд-разработки №1
  • Специализация Frontend-разработчик
  • Frontend-разработчик
  • Профессия “Фронтенд-разработчик”

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

Где работать

Frontend-developer требуются на предприятия, создающие софт для бизнеса, в IT-компании по разработке сайтов, мобильных и веб-приложений, web-студии, стартапы, агентства аутсорсинга.

Карьерная лестница начинается с пункта “стажер”. Работа позволит набраться опыта и узнать на практике, что такое фронтенд-разработка.

Вакансии можно найти на профильных IT-ресурсах или на популярном сервисе по поиску работы hh.ru.

Если вам достаточно подработки или вы еще совсем “зеленый”, найти работу и испытать себя можно на биржах фриланса. Есть международные сервисы, например, Upwork, Freelancer, Joomlancers, Gigster, Codeable и YouTeam. А есть русскоязычные: Kwork, FL, Freelance.

Биржи помогут начинающим программистам набить руку, собрать портфолио и научиться работать с заказчиками.

У опытного специалиста есть три варианта совершенствования в работе:

  1. Вертикальный – рост по карьерной лестнице, постепенное завоевание новых должностей.
  2. Горизонтальный – непрерывное совершенствование своих навыков, что приводит к повышению цены за свои услуги.
  3. Диверсификационный – обретение новых навыков, смежных специальности фронтенд-разработчик, и последующая переквалификация. Так часто frontend-developer превращается в backend-разработчика.

Dependency Injection. Adopt

Мы рекомендуем использовать паттерн DI и вместе с ним IoC-контейнеры. Кажется, что DI не сильно распространен во фронтенд-разработке за пределами Angular, но у нас в компании этот паттерн получил широкий охват, в том числе на проектах с React, где мы используем собственный фреймворк Tramvai.js, который построен на DI.

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

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

Наш коллега Сергей Нестеров сделал доклад Dependency injection в React-приложении — советуем посмотреть.

Инструменты

Теперь вы знаете, что за пользовательскую часть сайта отвечает frontend-разработка. Главная задача разработчика — создать понятный интерфейс, с которым будет легко взаимодействовать. Frontend — это не только дизайн, но и код, который помогает взаимодействовать с пользователем.

Какие инструменты нужны, чтобы создать клиентскую часть сайта?

HTML — содержание сайта

За содержание сайта отвечает язык гипертекстовой разметки HTML. Это не язык программирования, но он поможет наполнить сайт необходимой информацией и расположить её в нужных частях страницы. Всё, что вы видите на сайте, — это HTML-файл. Но просто HTML-страница без оформления выглядела бы очень скучно и непривлекательно. Поэтому, чтобы оформить сайт, сделать его приятным для восприятия, нужен инструментарий CSS. Самые широкие возможности, включая адаптивности дизайна и анимацию, предоставляет версия HTML5, на которую сегодня и стоит ориентироваться.

 CSS — оформление сайта

Этот язык отвечает за отображение HTML-документа. С его помощью вёрстка визуальной части сайта упрощается, у него появляется определённый стиль. А чтобы добавить интерактивность и динамику, например мигающие кнопки, можно использовать JavaScript.

JavaScript — интерактивность сайта

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

jQuery — фреймворк языка JavaScript

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

Inner source. Assess

Если вы нацелены на ускорение поставки, распространение владения кодовой базы и межкомандное сотрудничество, то подход Inner Source может быть вам интересен.

Inner Source — это как Open Source, только внутри компании, который позволяет уменьшить зависимость от смежных команд разработки, что должно привести к ускорению выполнения задач.

Разберем на примере. Допустим, у вас есть две команды и первая команда хочет доработку от второй. Команда 1 приходит к команде 2, добавляет свою задачу в очередь бэклога и получает блокирующую зависимость в исполнении своего проекта. В случае с Inner Source все репозитории открыты внутрь компании. В таком подходе команда 1 может сделать pull request в целевую систему, а владелец системы — команда 2 — эти изменения проверит и вольет в основную ветку. Выходит, что первая команда получит свою доработку быстрее за счет использования собственного ресурса, чем если бы ждала, своей очереди в бэклоге другой команды.

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

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

Подробней ознакомиться с Inner Source можно на сайте комьюнити Inner Source.

С чего начать и что читать? Чек-лист обучения

1. Как работает Веб

  • How the Web Works: A Primer for Newcomers to Web Development or anyone really (FreeCodeCamp);
  • Как работает Веб — Mozilla (MDN);
  • Всё, что нужно знать про HTTP.

2. Среда разработки

  • VSCode — бесплатный быстрый редактор с большим количеством дополнений для разработки;
  • JetBrains WebStorm — полноценная IDE, есть пробный период и возможность получить доступ по студенческой лицензии;
  • Если у вас возникает потребность отправить другому человеку фрагмент кода, быстро проверить или сохранить код в сети, можно воспользоваться онлайн-редактором, например, Codepen.

3. Основы HTML

  • Руководство по HTML — Mozilla (MDN);
  • Справочник по HTML, уроки по HTML и CSS — Webref;
  • FreeCodeCamp — Learn to code at home — очень полезный источник для практического изучения HTML, CSS, JS и др. (пошаговые задачи в интерактивном режиме обучения);
  • Введение в Chrome DevTools. Панель Elements для просмотра HTML-элементов сайта;
  • Семантика (HTML5 Semantic Tags: What Are They and How To Use Them!, рус. перевод);
  • Доступность (Writing HTML with accessibility in mind, рус. перевод).

4. CSS

  • CSS и CSS3. Свойства для форматирования HTML элементов — Html5Book;
  • Cascading Style Sheets (CSS) — Mozilla (MDN);
  • Справочник по CSS — Webref;
  • Инструменты разработчика Chrome DevTools для просмотра стилей;
  • Вёрстка на Flexbox в CSS. Полный справочник (перевод и оригинал на CSS Tricks);
  • 10 modern layouts in 1 line of CSS от Google;
  • БЭМ Методология;
  • БЭМ для начинающих. Очевидные и неочевидные вопросы верстки.

5. Система контроля версий Git

  • Интерактивный тур по GIT для начинающих — GitHowTo;
  • Github — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.

6. Язык программирования JavaScript

  • Современный учебник JavaScript — отличный источник с множеством примеров;
  • Серия книг «Вы не знаете JS» — подробный гид по основным механизмам языка (каждая книга подробно разбирает часть языка);
  • Не забывайте про уже упомянутый FreeCodeCamp с задачками для практики JS;
  • Онлайн-курс по JavaScript для начинающих в виде рассылки писем от Дэна Абрамова (разработчик из Facebook, создатель Redux и Create React App);
  • Chrome Dev Tools. Отладка JavaScript кода.

11. Препроцессоры CSS

  • Sass (SCSS);
  • Stylus;
  • Less.
  • Модульность. Вы сможете создавать CSS-код в разных файлах и импортировать стили при необходимости.
  • Вложенность. Вкладывайте селекторы друг в друга для компактности и логичной структуры кода. Это улучшит читабельность и уменьшит дублирование (будет особенно удобно, если вы станете использовать BEM-методологию для написания CSS).
  • Использование CSS-переменных и функций (миксинов).
  • Вы можете выбрать препроцессор с удобным для вас синтаксисом (например, CSS-код без фигурных скобок и точек с запятой).

PostCSS

стандарт компании Airbnb

  • Prettier;
  • ESLint;
  • EditorConfig;
  • Husky.

14. Изучение фреймворка/UI-библиотеки

официальной документацииModern React and Reduxпроверка типов с помощью PropTypesJSDocцикл статейReduxпереводомGetting Started with Reduxдокументация

16. Углубленное

  • Как браузеры рендерят сайт (Ryan Seddon: So how does the browser actually render a website | JSConf EU 2015);
  • Как работают браузеры — Html5Rocks;
  • Филипп Робертс: Что за чертовщина такая event loop? | JSConf EU 2014;
  • CSS-модули (статья Glen Maddern);
  • Оптимизация производительности фронтенда;
  • Вводный курс по VSCode для JS разработчиков (Владилен Минин);
  • Руководство для начинающих по HTTP и REST;
  • Что такое CORS;
  • Паттерны проектирования (книга Javascript Design Patterns);
  • Progressive Web Applications;
  • Redux-Saga для продвинутого управления состоянием React-приложения.

Эксперимент 3

В рамках эксперимента 3 выберите один из прошлых экспериментов и проведите рефакторинг своего кода с использованием советов, которые вы узнали выше. Рефакторинг означает редактирование вашего кода так, чтобы он стал проще, в том числе в плане читаемости.

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

Не важно сделать правильно с первого раза. Важно сделать правильно в конечном результате

Ниже несколько вопросов, на которые вы должны себе ответить в процессе рефакторинга.

  • Не двусмысленны ли названия классов? Через полгода я все еще смогу понять, что означает название класса?
  • Семантичен ли мой HTML и CSS? Можно ли с первого взгляда определить структуру и взаимоотношения элементов?
  • Использую ли я одни и те же цвета в коде? Не будет ли логичнее вынести их в переменные Sass (англ.)?
  • Работает ли мой код в Safari так же хорошо, как в Chrome?
  • Нельзя ли заменить часть кода на систему сеток, например Skeleton?
  • Не слишком ли часто я использую !important? Как я могу это исправить?
Добавить комментарий

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

Adblock
detector