Category: Backend

19
Ноя
2020

Сессия в Node.js быстро сбрасывается

Сессия устанавливается после авторизации. Если попереключаться по ссылкам внутри сайта, все работает нормально. Стоит оставить вкладку неактивной, через 5-10 минут сессия сбрасывается.
Код конфигурации сессии:
const session = require(‘expr…

11
Ноя
2020

👶 🌍 10 советов начинающему веб-разработчику

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

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

Итак, мои 10 советов новичку: сначала теоретических

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

1. Ставьте конкретные цели

Один из самых распространенных запросов в поисковике: «Какой язык программирования выучить?» Вопрос понятный, но неправильный. Первый вопрос, который действительно должен быть задан: «Для чего мне учиться кодить?» Хотите ли вы разрабатывать мобильные приложения или создавать сайты для малого бизнеса, нужно четко понимать конечную цель. Так вам будет легче изучать материал и не потратить время впустую.

2. Не торопитесь: это марафон, а не спринт

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

3. Двигайтесь медленно, но уверенно

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

4. Умейте быстро находить решения

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

5. Подкрепляйте теорию практикой

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

6. Будьте готовы к неудачам

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

7. Никогда не прекращайте учиться

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

Перейдем к практическим советам

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

8. Изучите верстку и программирование

Если вы решили работать на клиентской стороне (frontend), без знания верстки не обойтись. Чтобы расположить на странице текст, изображения, кнопки и другие элементы интерфейса, а потом грамотно стилизовать их, нужны HTML и CSS. Постигать и совершенствовать основы верстки удобнее всего на практике. Пробуйте верстать макеты страниц или отдельных элементов. Смотрите обучающие ролики в интернете и пытайтесь повторить за автором. Всегда используйте инструмент разработчика в браузере, чтобы отладить свой код.

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

Процесс становления веб-разработчика не заканчивается изучением только нативного JS, поскольку фреймворки и библиотеки ускоряют процесс программирования. Новичку не стоит сразу же стремиться к такому ускорению. Лучше всего начинать в вакууме, избегая всех дополнительных ресурсов до тех пор, пока вам не станет удобно со стандартным языком. Хотя некоторые специалисты считают использование фреймворков жульничеством, не обращайте внимания на эти нелепые обвинения. Стоит изучить хотя бы самые популярные из них: react.js, vue.js и angular.js.

Если же вы решили заняться бэкэндом, придется выучить PHP, Python, Ruby, C# или NodeJS (JavaScript). Здесь тоже сложно обойтись без облегчающих взаимодействие с сервером фреймворков и библиотек.

9. Используйте внешние ресурсы

Используйте веб-песочницы Codepen или Jsfiddle. Там можно протестировать куски проекта, а также посмотреть готовые решения с открытым кодом. Также есть хорошая статья о бесплатных ресурсах для создания веб-интерфейсов. Там все технологии собраны в один список для вашего удобства. Посмотрите – не пожалеете.

10. Придерживайтесь методологии и комментируйте

Используйте одну методологию и обязательно комментируйте код. Постарайтесь выработать собственный стиль его написания – так и вам будет легче и после вас люди смогут разобраться с программой. Можете быть уверены – за грамотные комментарии вас впоследствии никто не проклянет.

***

Прокачайте уровень

Если вы только начинаете осваивать профессию, стоит обратить внимание на курс по веб-разработке от Geek Brains и Mail.ru. Начав с основ, здесь можно получить необходимые для старта карьеры знания. Актуальная программа, 2 – 3 вебинара в неделю и 2 месяца стажировки. Под руководством опытным преподавателей студенты наработают необходимую для дальнейшего развития в сфере IT базу и получат помощь в трудоустройстве.

30
Окт
2020

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

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

Более 14 000 вакансий на HH.RU и почти 17 000 заказов для фрилансеров на Upwork – таков спрос на веб-разработчиков в ноябре 2020 г. Выбрав эту профессию, вы можете не сомневаться в своей востребованности, но денежный вопрос – один из главных в начале карьеры. Чтобы ответить на него, мы написали эту статью.

Здесь собраны размеры заработных плат (от минимальной до максимальной) для специалистов разного уровня подготовки. Найдите свой основной язык программирования – и узнайте, сколько сможете получать на новом рабочем месте.

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

Откуда цифры

Данные о зарплате веб-разработчиков взяты с карьерных сайтов:

  1. HeadHunter – крупнейший ресурс, который может служить ориентиром для всех профессий;
  2. Superjob – вторая площадка по количеству айтишников;
  3. Хабр Карьера – доска с предложениями только в IT.

Ставки для фрилансеров смотрели на Upwork – известной международной базе заказов. Там часто указывают оплату за час работы, а не за весь проект: проще сравнивать с окладом в офисе. Если вы сидите на другой площадке и получаете меньше – знайте, где еще стоит зарегистрироваться =)

Статистика актуальна по состоянию на начало ноября 2020 г.

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

Уровни специалистов

Как во многих других специальностях, вакансии в веб-разработке делятся на три уровня: Junior, Middle, Senior. Чтобы было понятнее, к какому уровню себя отнести, опишем их особенности.

Junior

Знает языки программирования и пишет несложный рабочий код, который проверяют старшие коллеги. Опыта мало – 0-1,5 года. Пока не представляет процесс разработки целиком, выполняет полученные задания.

Middle

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

Senior

Стаж от 4 лет, но важнее богатый реальный опыт. Видит разработку с точки зрения всех участников: от менеджеров до младших коллег. Способен предлагать глобальные решения – например, смену набора (стека) технологий. Часто занимает руководящую должность.

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

Доход веб-разработчиков, окончивших обучение

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

PHP

Язык, на котором работает 79% всего интернета. Разрабатывался специально для создания сайтов, поэтому легко изучается и хорошо подходит именно для этой цели. Совместим со всеми основными платформами и языками, включая HTML, SQL и JavaScript. На PHP часто пишут готовые «движки» сайтов – ему всегда есть применение.

Подробнее…

В офисе:

Junior – 15 000 руб. – 100 000 руб.

Middle – 30 000 руб. – 230 000 руб.

Senior – 65 000 руб. – 315 000 руб.

На фрилансе:

Junior – $3/час – $25/час

Middle – $12/час –$75/час

Senior – $16/час –$100/час

***

JavaScript

Язык для создания динамического контента. Все, что меняется на сайте без перезагрузки страницы – обычно пишется на JavaScript. Всплывающие подсказки, «живой» поиск, выпадающие меню, слайдеры, анимация и т.п.

Позволяет разработать клиентскую (внешнюю) и серверную (внутреннюю) часть сайта. А с помощью платформы Node.js – даже писать десктопные приложения. Входит в «большую тройку» языков, которые должны знать все веб-разработчики – HTML, CSS, JavaScript.

Подробнее…

В офисе:

Junior – 15 000 руб. – 120 000 руб.

Middle – 40 000 руб. – 340 000 руб.

Senior – 100 000 руб. – 460 000 руб.

На фрилансе:

Junior – $3/час – $25/час

Middle – $13/час –$40/час

Senior – $20/час –$100/час

***

Python

Пожалуй, простейший для изучения незнакомыми с программированием людьми язык. Создан для написания короткого кода. На нем реализовано множество программ: он использовался в редакторе изображений GIMP и игре World of Tanks.

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

Подробнее…

В офисе:

Junior – 25 000 руб. – 170 000 руб.

Middle – 40 000 руб. – 280 000 руб.

Senior – 120 000 руб. – 306 000 руб.

На фрилансе:

Junior – $5/час – $35/час

Middle – $15/час –$50/час

Senior – $15/час –$100/час

***

Go

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

Многопоточный, на нем можно быстро запустить сайт, и для многих стандартных функций существуют готовые пакеты. Go несложно освоить, но он отличается от других объектно-ориентированных языков вроде C++ или Python. Чаще используется в крупных дорогих проектах.

Подробнее…

В офисе:

Junior – 30 000 руб. – 80 000 руб.

Middle – 55 000 руб. – 260 000 руб.

Senior – 90 000 руб. – 697 000 руб.

На фрилансе:

Junior – $7/час – $35/час

Middle – $20/час –$100/час

Senior – $20/час –$125/час

***

Java

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

Подробнее…

В офисе:

Junior – 28 000 руб. – 140 000 руб.

Middle – 50 000 руб. – 290 000 руб.

Senior – 50 000 руб. – 351 000 руб.

На фрилансе:

Junior – $3/час – $25/час

Middle – $5/час –$30/час

Senior – $27/час –$70/час

***

Ruby

Благодаря фреймворку Rails язык общего назначения Ruby стал применяться в веб-девелопменте. Создавался, чтобы «сделать программистов счастливыми»: лаконичен и прост для понимания, если разобраться.

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

Подробнее…

В офисе:

Junior – 20 000 руб. – 140 000 руб.

Middle – 50 000 руб. – 275 000 руб.

Senior – 100 000 руб. – 510 000 руб.

На фрилансе:

Junior – $5/час – $20/час

Middle – $12/час –$60/час

Senior – $20/час –$100/час

Иллюстрация с pixabay.com
Иллюстрация с pixabay.com

Вывод

Веб-разработчик – высокооплачиваемая специальность. При этом стартовый доход и скорость карьерного роста сильно зависят от выбранного языка программирования.

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

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

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

30
Окт
2020

Как сохранять данные, введённые пользователем в input-форму на сайте?

Есть сайт. На сайте есть кнопка, при нажатии на которую я хочу, чтобы пользователь вводил своё имя и номер и эти данные отправлялись мне и я человеку перезванивал.
Как это сделать? С фронтендом я знаком, но бэкенд не изучал.
Что нужно сдел…

24
Окт
2020

🌐 Собираем портфолио начинающему веб-разработчику

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

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

***

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

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

Что нужно учесть приступая к работе

  1. Проект должен отражать востребованные навыки и быть действительно нужным для клиента или компании. Решайте реальные проблемы через свои проекты. Объясняйте и показывайте – какие.
  2. Показывайте, чем вы хотели бы заниматься в дальнейшем.
  3. Постарайтесь, чтобы ваши работы выглядели оригинально, добавьте что-то необычное.
  4. 5-7 проектов для начала – это неплохо, но если вы делали что-то объемное, может хватить и 3.

Где брать работы для портфолио

1. Вы наверняка делали какие-то проекты в процессе или после обучения. Бесплатные курсы иногда включают их в программу. Такое практикуется, например, в сертификации Free Code Camp или в недорогом курсе Bootcamp от Udemy. Он пропитан практикой, предоставляет возможность общаться с другими студентами и получать фидбек.

2. Сделайте сайт-визитку и реализуйте там интересные фичи:

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

3. Участвуйте в конкурсах и хакатонах. Даже если вы делали проект в команде, его можно положить в портфолио, указав свой вклад с доказательствами в виде скриншотов.

4. Загляните в генераторы челленджей. Например, на Sharpen или Briefz. Просто замените design на develop и пробуйте создавать то, что там предлагается.

5. Стажировки. Если вас не возьмут на работу, вы все равно успеете «прикоснуться к великому» и пополнить портфолио проектом, над которым работали в компании. Даже если не попадете на саму стажировку, скорее всего останется сделанное вами тестовое задание. Его можно доработать и тоже приложить к портфолио (о некоторых других вариантах мы уже писали). Также можно посмотреть вакансии для начинающих на форуме DOU и стажировки в их дайджестах.

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

7. Создайте сайт по бартеру. Можно, например, помочь начинающему дизайнеру с разработкой, чтобы он помог вам с дизайном. Если таких знакомых на примете нет, предлагайте свои услуги на разных платформах: ищите людей, которые предлагают что-то в обмен на разработку. Вот несколько вариантов:

  • группа ВК «По бартеру»;
  • Simbi;
  • Trade Made (приложение, правда только под Android);
  • Swap Right (сразу из объявления понятно, что нужно человеку и что он может дать взамен).

8. Попробуйте себя в волонтерском проекте. Представьте, что новичку можно получить международный опыт, не выходя из дома! Искать интересные варианты стоит на разных платформах:

  • IT-волонтер – здесь некоммерческие организации публикуют «вакансии» по IT-профессиям.
  • Social Coder пишут, что опыт не важен (но начинающие участники проекта будут помогать более опытным) и ищут именно ИТ-специалистов. Списка задач на выбор здесь нет: для участия нужно зарегистрироваться, рассказать о своем опыте и чем хотите заниматься. После этого вас соединяют с некоммерческой организацией, которая ищет как раз такого человека. В среднем проекты длятся 2 месяца, но бывает по-разному.
  • Volunteermatch – программа, которая специализируется на волонтерских вакансиях.
  • Волонтерские программы ООН для разработчиков.
  • В Free UK Genealogy можно присоединиться к команде разработчиков открытых проектов. Найти совпадающий с вашими интересами несложно.

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

9. Можно помогать и проектам на краудфандинговых платформах. Для этого выбираем любую из них и ищем в Google: создание сайта site:(адрес выбранной вами платформы). Находим какой-нибудь интересный проект, которому требуется разработка сайта, и предлагаем помощь ее создателю. Несколько примеров: на Kickstarter, а также на Mola Mola – раз и два.

10. Копируйте несложные сайты, что-нибудь добавляя, изменяя и улучшая. Попробуйте решить некую проблему или сделать какой-то элемент более удобным. Для вдохновения: Jake Dow-Smith Studio, MCA, TRA, Jonty Davies, Глущенкоиздат, The Storytellers.

11. Есть ряд несложных проектов, которые новичку стоит иметь у себя в портфолио: простые игры, листы To-Do, страницы поисковиков. Представьте, что это ваше практическое задание, но помните – нужно внести в него свое оригинальное видение и решение. Остальные идеи можно посмотреть здесь и здесь.

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

На Code Triage собраны проекты c GitHub, которые нуждаются в помощи. Лучше отсортировать их по языку программирования.

Кроме этого подписывайтесь на интересующие вас проекты и получайте уведомления о новых issues на почту: на сайте есть подробная инструкция по взаимодействию с основанными на открытом коде разработками.

На First Timers Only можно посмотреть и другие ресурсы по open source.

Показываем, как выглядят портфолио начинающих веб-разработчиков

  1. Fatma Sümer
  2. Pritika Roy
  3. Ronald, например, добавляет свои работы с курсов.
  4. Ritika Soni
  5. Портфолио Chigbogu на GitHub

Проекты есть. Что дальше?

1. Регулярно пополняйте портфолио свежими работами.

2. Включайте в описание проекта ссылку на репозиторий GitHub, где клиент или работодатель смогут посмотреть ваше решение задачи через код, а не только красивую картинку. Давайте ссылки на Link to your CodePen projects.

3. Опишите, когда и для кого вы делали этот проект (даже если для мамы или в качестве эксперимента), и какие требования предъявлялись к продукту. Читателю нужно понимать, в каком контексте реализовывалось решение.

4. Самые удачные проекты ставьте в начало портфолио.

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

***

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

23
Окт
2020

В response возвращается не корректные данные

Есть функция передающая логин и пароль на бэк, в ответ должна получать стату код, однако возвращается почему то логин, вместо статус-кода и соответственно функция не отрабатывает как надо. Никак не пойму в чем дело.
Фронт:
function fetchRe…

23
Окт
2020

В response возвращается не корректные данные

Есть функция передающая логин и пароль на бэк, в ответ должна получать стату код, однако возвращается почему то логин, вместо статус-кода и соответственно функция не отрабатывает как надо. Никак не пойму в чем дело.
Фронт:
function fetchRe…

21
Сен
2020

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

Перед чтением инструкции убедитесь, что у вас уже установлен Node.js. Для работы с файлами используются промисы с синтаксисом async/await . Если вы незнакомы с концепцией асинхронного программирования в JavaScript, ознакомьтесь с нашим руководством.

Шаг 1. Читаем файлы с помощью readFile()

В каждом из следующих примеров мы сначала импортируем модуль fs – стандартный
Node.js модуль для работы с файлами. В первом примере мы воспользуемся функцией
readFile() – прочитаем файл, сохраним содержимое в
переменной и выведем результат в консоль.

Начнем с
настройки среды. Создадим папку
node-files для хранения проекта:

        mkdir node-files
cd node-files
    

В этой папке создадим текстовый файл greetings.txt для тестирования работы нашей программы:

        echo "hello, hola, bonjour, hallo" > greetings.txt
    

Команда echo выводит строковый аргумент в терминал, а символ > перенаправляет вывод в файл greetings.txt.

Cоздадим и
откроем в текстовом редакторе файл readFile.js. Например, с помощью
nano:

        nano readFile.js
    

Начнем с импорта внутри файла программы модуля fs:

        const fs = require('fs').promises;
    

Когда модуль fs только
создавался, основным способом написания асинхронного кода в Node.js были коллбэки. Но по мере роста популярности промисов, команда Node.js поработала и над их поддержкой в модуле fs.

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

        const fs = require('fs').promises;

async function readFile(filePath) {
  try {
    const data = await fs.readFile(filePath);
    console.log(data.toString());
  } catch (error) {
    console.error(`Got an error trying to read the file: ${error.message}`);
  }
}
    

Чтобы ловить ошибки
асинхронного чтения файлов, заключаем вызов fs.readFile() в блок
try...catch.

По умолчанию fs.readFile()
возвращает объект, который может хранить файлы любого типа. Когда журналируется
содержимое файла, все байты преобразуются в текст с помощью метода toString().

Если обнаружена ошибка
(если файл не найден или нет прав на чтение), в консоль выведется
соответствующее сообщение.

Осталось лишь вызвать функцию.

        const fs = require('fs').promises;

async function readFile(filePath) {
  try {
    const data = await fs.readFile(filePath);
    console.log(data.toString());
  } catch (error) {
    console.error(`Got an error trying to read the file: ${error.message}`);
  }
}

readFile('greetings.txt');
    

Сохраняем файл программы и выходим из редактора. Запускаем скрипт:

        node readFile.js
    

Получаем следующий результат:

        hello, hola, bonjour, hallo
    

Шаг 2. Запись файлов с помощью writeFile()

Создадим другой программный файл writeFile.js:

        nano writeFile.js
    

В этом примере мы напишем две функции: первая будет создавать CSV-файл, а вторая –
добавлять в него данные.

Вставим в файл следующий код:

        const fs = require('fs').promises;

async function openFile() {
  try {
    const csvHeaders = 'name,quantity,price'
    await fs.writeFile('groceries.csv', csvHeaders);
  } catch (error) {
    console.error(`Got an error trying to write to a file: ${error.message}`);
  }
}
    

Сначала функция openFile() создает
переменную csvHeaders, содержащую заголовки столбцов CSV-файла, а затем использует
функцию fs.writeFile() для создания файла и записи в него данных. Первый аргумент –
путь к файлу. Поскольку мы указали только имя, Node.js создаст файл в том же
каталоге, в котором мы выполняем код. Второй аргумент – записываемые данные. Создадим еще одну функцию для добавления данных в конец файла:

        const fs = require('fs').promises;

async function openFile() {
  try {
    const csvHeaders = 'name,quantity,price'
    await fs.writeFile('groceries.csv', csvHeaders);
  } catch (error) {
    console.error(`Got an error trying to write to a file: ${error.message}`);
  }
}

async function addGroceryItem(name, quantity, price) {
  try {
    const csvLine = `\n${name},${quantity},${price}`
    await fs.writeFile('groceries.csv', csvLine, { flag: 'a' });
  } catch (error) {
    console.error(`Got an error trying to write to a file: ${error.message}`);
  }
}
    

Асинхронная функция
addGroceryItem() принимает три аргумента: название товара, сумму и цену за
единицу. Эти аргументы используются с шаблонным литеральным синтаксисом для
формирования переменной csvLine, записываемой в файл.

Затем, как и в функции openFile(), используется
метод writeFile(), но на этот раз есть третий
аргумент: объект JavaScript c ключом flag и значением 'a' . Так мы сообщаем Node.js, что данные нужно добавить в конец файла. По умолчанию флаг имеет значение 'w', при котором создается новый файл,
если он не существует, иначе файл перезаписывается. Вы можете узнать больше о
флагах файловой системы в
документации Node.js.

Для завершения скрипта
добавим в конец файла программы следующие строки:

        (async function () {
  await openFile();
  await addGroceryItem('eggs', 12, 1.50);
  await addGroceryItem('nutella', 1, 4);
})();
    

Запускаем код:

        node writeFile.js
    

В текущем каталоге будет создан новый файл groceries.csv.

        cat groceries.csv
    

Содержимое файла groceries.csv следующее:

        name,quantity,price
eggs,12,1.5
nutella,1,4
    

Вызов openFile() создал
новый файл и добавил заголовки столбцов. Последующие вызовы
addGroceryItem() добавляют две строки с данными.

Шаг 3. Удаление файлов с помощью unlink()

На этом шаге мы научимся удалять файлы с помощью функции unlink() модуля fs и напишем Node.js скрипт для
удаления groceries.csv, созданного на предыдущем шаге.
Создадим новый программный файл deleteFile.js:

        nano deleteFile.js
    

Напишем в программном файле код, создающий
асинхронную функцию deleteFile(), которая принимает путь к файлу в
качестве аргумента и передает его функции fs.unlink(), чтобы та удалила файл из файловой системы:

        const fs = require('fs').promises;

async function deleteFile(filePath) {
  try {
    await fs.unlink(filePath);
    console.log(`Deleted ${filePath}`);
  } catch (error) {
    console.error(`Got an error trying to delete the file: ${error.message}`);
  }
}

deleteFile('groceries.csv');
    
Обратите внимание
Когда вы удаляете файл с помощью функции unlink(), он не отправляется в recycle.bin или корзину, а навсегда удаляется из файловой системы. Это действие необратимо.

Сохраняем файл и запускаем код:

        node deleteFile.js
    

На выходе получаем следующее:

        Deleted groceries.csv
    

Чтобы убедиться, что
файла больше нет, используем команду ls:

        ls
deleteFile.js   greetings.txt   readFile.js     writeFile.js
    

Шаг 4. Перемещение файлов с помощью rename()

Напоследок рассмотрим функцию перемещения. Перед тем как начать, создадим папку test-data, в которую будем перемещать файл:

        mkdir test-data
    

Скопируем файл:

        cp greetings.txt greetings-2.txt
    

Откроем для
редактирования программный файл:

        nano moveFile.js
    

Создадим функцию
moveFile(), вызывающую rename(). В ней необходимо указать путь к местоположению
исходного и целевого файлов.

        const fs = require('fs').promises;

async function moveFile(source, destination) {
  try {
    await fs.rename(source, destination);
    console.log(`Moved file from ${source} to ${destination}`);
  } catch (error) {
    console.error(`Got an error trying to move the file: ${error.message}`);
  }
}

moveFile('greetings-2.txt', 'test-data/salutations.txt');
    

Функция rename() может переместить файл в другую папку, переименовать файл в текущем каталоге или сделать и то, и другое одновременно, как в нашем коде.

Сохраним и запустим код:

        node moveFile.js
    

В ответ получаем следующее:

        Moved file from greetings-2.txt to test-data/salutations.txt
    

Подтвердим успех
операции:

        ls
deleteFile.js   greetings.txt   moveFile.js     readFile.js     test-data       writeFile.js
    

Заключение

Мы изучили функции управления файлами с помощью Node.js. Сначала загрузили содержимое файла функцией readFile(). Затем создали новый файл и добавили в него данные с помощью writeFile(), удалили файл с unlink(), а затем переместили и переименовали файл посредством rename().

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

15
Сен
2020

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

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

Базовые технологии

Веб-разработку разделяют на frontend и backend. Frontend отвечает за работу на стороне клиента, корректное отображение веб-страниц на разных типах устройств. Backend всё, что происходит на стороне сервера: вычисления, работа с базами данных, взаимодействие с другими сервисами.

Под Web Developer обычно понимают программиста, который умеет работать и на стороне клиента, и на стороне сервера. Универсального программиста, который может сделать проект с нуля, разбирается в базах данных, конфигурировании сервера, безопасности, называют Full Stack Web Developer. Более узких специалистов – Backend Web Developer и Frontend Web Developer.

Базовые технологии Frontend

HTML – язык разметки страниц, костяк веб-страницы. С помощью HTML мы подключаем JS-скрипты и CSS-стили и определяем элементы страницы: текст, заголовки, поля ввода информации, переключатели и кнопки.

CSS – язык описания стилей элементов, с помощью которого добиваются качественного отображения страницы.

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

Базовые технологии Backend

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

PHP. 4500 вакансий по России. Самый популярный язык программирования на стороне сервера: 80% сайтов и сервисов в Интернете написаны на PHP. Язык обладает большим сообществом, огромным количеством готовых библиотек, фреймворков, учебных материалов и руководств. Если вы делаете первые шаги в профессии веб-разработчика, рекомендуем начать с PHP. Язык легок в освоении, используется не только в любительских, но и больших профессиональных проектах: Facebook, VK, Wikipedia, BlaBlaCar. Средняя зарплата 200 000 руб. (здесь и далее зарплаты указаны до вычета НДФЛ).

Java. 2200 вакансий по России. Популярный язык программирования, но с высоким порогом входа. Применяется в средних и крупных проектах. С помощью Java-фреймворка Spring создаются высокопроизводительные, масштабируемые и безопасные приложения. Средняя зарплата 250 000 руб.

Python. 1800 вакансий по России. Язык с низким порогом входа. Дружелюбное комьюнити и развитая документация, пошаговые руководства и видеоуроки позволят быстро прояснить любой вопрос. Наиболее зрелая и популярная технология – фреймворк Django. Python применяют в проектах любого размера, на нем частично написаны такие сервисы, как YouTube, Google Search, Instagram и Spotify. Средняя зарплата 160 000 руб.

Node.js. 1500 вакансий по России. Технология Node.js позволяет строить высоконагруженные, легко масштабируемые решения при помощи языка JavaScript. Если вы уже имеете опыт во фронтенд-разработке, то сможете быстро начать программировать на Node.js. Технологию применяют в проектах, где важна одновременная обработка большого количества запросов. Активно используется компаниями Paypal, Yahoo! и eBay. Средняя зарплата 205 000 руб.

ASP.NET. 1300 вакансий по России. Если вы уже знаете язык C#, то вам подойдет фреймворк ASP.NET. Свои преимущества фреймворк полностью раскрывает только при работе в инфраструктуре Microsoft. Технологию используют Starbucks и StackOverflow. Средняя зарплата 160 000 руб.

Язык/технология Зарплата, тыс. руб Количество вакансий (на 15.09.20) Популярность на GitHub (среди перечисленных технологий) Популярность на StackOverflow, %
PHP 200 4500 3 26.2
Java 250 2200 2 40.2
Python 160 1808 1 44.1
Node.JS 205 1456 4 24.5
ASP.NET 160 1314 5 18.7

Источник статистики по StackOverflow, источник статистики GitHub, статистика по вакансиям взята с hh.ru, статистика по зарплатам предоставлена компанией Hays

Общие технологии продвинутого уровня

Развертывание инфраструктуры

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

  • веб-сервер (например, Nginx или Apache);
  • серверная операционная система: веб-приложения редко работают на Windows или MacOS, отраслевым стандартом является Linux;
  • интерпретатор языка нужной версии – в зависимости от того, какие новые функции языка необходимо использовать или какую версию требует фреймворк;
  • база данных (например, MySQL или PostgreSQL).

Книги по теме:

Тестирование

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

Книги по теме:

Наши статьи по теме:

Системы контроля версий

Сложное веб-приложение невозможно за приемлемое время написать одному человеку: для этого необходима команда специалистов, которые разделяют между собой обязанности и ведут распределенную кодовую базу. Для этого используются системы контроля версий, самой распространенной из которых является Git. Знание GIt гарантированно потребуется при трудоустройстве веб-девелопером.

Наши статьи по теме:

Пакетные менеджеры

Вокруг каждого языка программирования и фреймворка сформировалась инфраструктура: библиотеки, расширения, пакеты. Зачем писать собственный http-клиент, если существует хорошо отлаженный пакет с нужным функционалом? Так, в PHP используется composer, в Java – Gradle, в JavaScript и Node.Js – npm, в Python – pip.

Продвинутый Frontend

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

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

Фреймворк Количество вакансий Репозиториев на GitHub Популярность StackOverflow, % Уровень сложности Зависимостей в npm
React 4 280 73 458 35.9 ⭐⭐ 48 718
Angular 2 364 20 142 25.1 ⭐⭐⭐ 13 579
Vue 2 021 21 776 17.3 21 575

Источник статистики по StackOverflow, источник статистики GitHub, статистика по вакансиям взята с hh.ru

Продвинутый Backend

Backend-фреймворки менее разнообразны – обычно есть 1-2 лидера, которые занимают существенную часть рынка, а остальные либо узко специализированы, либо технологически отстают от лидеров. Для PHP такими фреймворками являются Symfony и Laravel, для Java – Spring и JSF, для Python – Django, Pyramid и Flask, для Node.JS – Express.JS, Meteor.JS и Koa.JS.

Ниже представлена сравнительная таблица оценки популярности PHP-фреймворков.

Фреймворк Установок через composer Зависимых проектов Популярность на GitHub Количество вакансий
Laravel 104 726 623 9 548 22 048 1 085
Symfony 52 561 771 3 971 23 880 819
Phalcon 29 504 2 10 232 47
CodeIgniter 773 857 65 18 071 52
Yii 10 393 997 11 540 217 890
CakePHP 6 027 870 1 649 8 234 10
Slim Framework 13 410 045 1 329 10 723 19
Lumen 535 795 53 6 900 45

Данные по количеству вакансий указаны по данным сервиса hh.ru, остальные данные взяты с сервиса packagist.org.

Продвинутый Web Developer: паттерны проектирования

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

Книги по паттернам:

Наши публикации о паттернах:

Практическое освоение технологий

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

Домашние проекты

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

Ресурсы с задачами для программистов

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

Присоединяйтесь к проектам на GitHub

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

Заключение

Веб-программирование – сложная, но интересная область. Безусловно, можно стать веб-разработчиком и своими силами, но есть и более легкие решения. Например, вы можете пройти курс факультета веб-разработки онлайн-университета GeekBrains. Информация в курсе хорошо структурирована, с вами будет работать личный наставник, а портфолио пополнится 4 актуальными проектами.

Вы узнаете, как профессионально верстать, используя HTML и CSS, научитесь программировать на JavaScript (в том числе используя React). На стороне сервера вы освоите PHP (Laravel) и Node.js (фреймворк Express). Не будут обойдены вниманием базы данных (MySQL) и операционная система Linux. Всё сразу в одном месте. Отличный вариант, чтобы стать настоящим веб-разработчиком за приемлемое время.

27
Авг
2020

Посоветуйте сферу разработки [закрыт]

Нужен совет от опытных людей – в какой сфере развиваться дальше:
имею год коммерческого опыта на С++. Учусь на заочном(it специальность провинциального вуза, бакалавриат). И вот думаю, что дальше. Хочется в дальнейшем проектировать крупные…

24
Авг
2020

Что нужно изучать backend разработчику?

Я начал изучать язык программирования Python и двинулся глубже. Изучал фреймворки и наткнулся на Django, изучаю его и он мне понравился. Суть вопроса в том что, можно ли с помощью Django произвести или работать с Backend ?
У меня просто пу…

09
Авг
2020

портфолио для backend

куда можно выкладывать свой опыт для backend программиста? я о портфолио, есть ли сайты специально заточенные под портфолио для программистов? русскоязычные или англо?
К примеру для дизайнеров есть кучу площадок behance, dribbble, clipping…

08
Авг
2020

Почему письмо с сервера (через php код) то приходит ко мне на почту, то нет?

Я хочу отправлять письма с каким-то текстом с сервера (хостинг и домен на reg.ru) себе на почту. Код ниже. Самое странное – это тот факт, что письмо то приходит на почту, то нет. Никак не пойму, от чего это может зависеть. Если у Вас есть …

08
Авг
2020

Не могу получит доступ к django сайту на gogole cloud сервере

всем привет. У меня сервер на google cloud типа N1 в зоне uscentral1a. Намигрировал джанго проект, Установил все нужное на сервере, сконфигурировал settings.py(AllowedHosts, StaticRoot) и запустил runserver на 0.0.0.0:8000, попитлася получ…

29
Июл
2020

Как в PHP просканировать папку и все подпапки и взять файлы с расширением html?

Мне нужно просканировать изначальную папку и все её подпапки и подпапки подпапок и брать файлы только с расширением html.
Этот мой скрипт сканирует только самую верхнюю папку, а подпапки – нет.
<?php

header(‘Content-Type: application/…

17
Июл
2020

Как работают бэкенд и фронтенд части принцип

Есть заготовка проекта на vue js там весь фронт.
Нужно создать бекенд на node js (который, по-сути не будет в самом себе хранить данные, а будет их получать по реализованному апи от отдельной машины с БД).
Как правильно должно происходить…

17
Июл
2020

Как фронтэнду заранее узнать о доступных действиях в бэкенде?

Приложение работает через rest. Интересует: как фронтэнду заранее можно знать (не делая запрос) доступно ли текущему пользователю действие по некоему эндпоинту? Т.е. у фронта должна быть возможность сделать проверку на доступ не делая прям…

17
Июл
2020

Знание фронтэнда о доступных действиях в бэкенде (rest api)

Приложение работает через rest. Интересует: как фронтэнду заранее можно знать (не делая запрос) доступно ли текущему пользователю действие по некоему эндпоинту? Т.е. у фронта должна быть возможность сделать проверку на доступ не делая прям…

17
Июл
2020

подскажите как правильнее и лучше протестировать eventEmitter на количество слушателей

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

09
Июл
2020

PHP фрейморк для новичка в 2020

Я начинаю изучать PHP.
Подскажите, пожалуйста, какой фреймворк лучше выбрать новичку, чтобы он в нем можно было реально разобраться и он востребован или не было бы проблем с переходом на другой фреймворк?
Желательно с основными плюсами и м…

08
Июл
2020

REST API в качестве backend

Хочу сделать мини соц сеть
Правильно ли если так делать:
Написать фронтенд на Vue js, NUXT А в качестве backend использовать api в качестве обработки данных, вывод постов, лайков, и т.д
Или как можно комбинировать Vue с backend, напишите с…

11
Июн
2020

⏳ 10 способов ускорить загрузку вашего сайта

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

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

1. Используйте CDN

CDN (Content Delivery Network) – географически распределённая сетевая инфраструктура, которая оптимизирует доставку контента конечным пользователям, давая доступ к сотням серверов по всему миру, размещающих копию
вашего сайта.

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

2. Включите gzip-сжатие

В некоторых CDN gzip-сжатие можно включить флажком Enable
compression
. Сжатие файлов обеспечит более быструю загрузку контента пользователями сайта.

3. Используйте оптимизацию изображений

Уменьшайте все изображения, которые не потеряют в качестве и не будут масштабироваться
Уменьшайте все изображения, которые не потеряют в качестве и не будут масштабироваться

Распространённая причина долгой загрузки страниц – избыточное качество изображений или выбор неподходящего формата. Можно уменьшить количество пикселей по каждой из сторон и применить сжатие изображений. Прогресс не стоит на месте – обратите внимание на формат сжатия изображений WebP.

Если у вас сайт на WordPress, можно использовать плагины, которые уменьшат размер автоматически в процессе загрузки.

4. Уменьшите количество
запросов, совершаемых страницей

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

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

5. Избегайте
перенаправлений


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

Некоторые редиректы
неизбежны, например, www -> root domain или root domain -> www, но
основная часть трафика не должна поступать через перенаправления.

6. Сократите время до первого байта

Время до первого байта (TTFB) –
это время, которое браузер тратит на ожидание данных с сервера после отправки запроса на ресурс.

На этот показатель влияют два параметра:

  1. Время, потраченное на сервере.
  2. Время, потраченное на отправку данных.

Первый параметр можно уменьшить, оптимизировав работу на стороне сервера: запросы к базам данных, вызовы API, балансировку нагрузки и т. д..

О втором параметре мы уже поговорили – на него мы можем повлиять, используя CDN.

7. Решите вопрос блокировки рендеринга JavaScript

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

        https://example.com/external.js
    

Можно отложить
загрузку сценариев до тех пор, пока пользователь не начнёт совершать
активные действия:

        window.addEventListener(
  'scroll',
  () =>
    setTimeout(() => {
      //insert marketing snippets here
    }, 1000),
  { once: true }
);
    

8. Минимизируйте CSS и JavaScript


Минимизация подразумевает
использование инструментов для удаления пробелов, символов перевода строки и
сокращения длины имён переменных. Как правило, это делается автоматически в рамках
процесса сборки. Есть специальные инструменты: например,
UglifyJS для JavaScript или cssnano для CSS.

9. Удалите
неиспользуемый код CSS и JavaScript

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

Начиная с Chrome 59, в Chrome DevTools
можно анализировать использование JavaScript и CSS.
Для этого откройте DevTools, перейдите во вкладку Console, нажмите на три точки и
откройте Coverage. При нажатии кнопки со значком перезагрузки будет проведен аудит использования CSS и JavaScript. Помеченные красным блоки кода загружаются, но не используются.

Аудит использования CSS и JS
Аудит использования CSS и JS
Примечание
Об использовании средств DevTools для ускорения загрузки сайта читайте в нашем подробном мануале «Ускоряем загрузку сайта с помощью Chrome DevTools».

10. Регулярно
отслеживайте скорость загрузки сайта

Если вы возьмете за
правило обращать внимание на проверку скорости загрузки, это станет гораздо меньшей проблемой.

Есть бесплатные
инструменты для мониторинга скорости, например,
WebPageTest и Google Lighthouse. Но нужно не забывать запускать их до и после внесения изменений. Для автоматизации запуска GoogleLighthouse можно использовать PerfBeacon.

Заключение

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

Другие материалы по теме