Подборка основных проблем, с которыми сталкиваются разработчики, составленная на основе личных бесед.
Несколько месяцев назад Пол Кинлан (Paul Kinlan) опубликовал статью о главных проблемах разработчиков в 2021 году. Поэтому мы решили начать эту статью с обзора последних двух кварталов. Числа немного изменились, но рейтинг остался прежним.
| Задача | I квартал 2021 г. | II квартал 2021 г. | III кв. 2021 г. | IV квартал 2021 г. |
|---|---|---|---|---|
| Следите за изменениями веб-платформы и веб-стандартов. | 27 % | 26 % | 27 % | 22% |
| Отслеживание большого количества новых и существующих инструментов или фреймворков. | 26 % | 26 % | 25 % | 21 % |
| Обеспечение одинаковой работы дизайна или опыта в разных браузерах. | 26 % | 28% | 24 % | 21 % |
| Тестирование в разных браузерах. | 23 % | 24 % | 20 % | 20 % |
| Понимание и реализация мер безопасности. | 23 % | 25 % | 20 % | 19 % |
Как упоминалось в записи Пола, нам нужно решить эти проблемы. В рамках этой работы мы с моим коллегой Кадиром Топалом (Kadir Topal) опросили более 18 разработчиков. Наша цель – изучить основные проблемы разработчиков и начать искать пути их решения.
Обсуждения для разработчиков
Примечание. Эти данные основаны на небольшом количестве бесед с разработчиками. Слова "все" и "некоторые" относятся к опрошенным разработчикам, а не ко всему сообществу. Чтобы сделать более широкие выводы, требуются дополнительные исследования.
Эти беседы напомнили нам о том, насколько удивительно и разнообразно сообщество веб-разработчиков. Мы благодарим всех, кто уделил нам время. У некоторых разработчиков за плечами более 25 лет опыта, а другие начали работать только в 2020 году. Некоторые разработчики начали свою карьеру, получив официальную степень в области компьютерных наук, в то время как другие начали свою карьеру самостоятельно. Некоторые разработчики активно ищут новые возможности и следят за ними, читая примечания к выпускам браузеров, в то время как другие узнают о новых возможностях от коллег и друзей. Некоторые считают, что сложность – это часть работы, и им нравится решать сложные задачи, в то время как другие просто хотят выполнить свою работу. Когда мы думаем о решении этих проблем, важно помнить об этом разнообразии!
Все разработчики используют в своей работе CMS или фреймворки. Упоминались Wordpress, React, Bootstrap, Angular и Tailwind, но никто из разработчиков не использовал чистую веб-платформу в рабочей среде. Выбор фреймворка в начале проекта – непростая задача, и разработчики часто учитывают нетехнические требования. Например, легко ли будет нанять разработчика для работы с этим фреймворком. Мы не сможем решить проблемы разработчиков, если не включим фреймворки и CMS в решение.
Говоря о веб-платформе, большинство разработчиков понимают платформу как то, на чем они разрабатывают. Это касается не только классического определения веб-платформы, но и CMS, фреймворков, инструментов и полифилов. Во многих случаях именно с этим связаны самые большие трудности. Это изменило нашу интерпретацию этого вопроса, и теперь мы знаем, что нам нужно обновить наш опрос, чтобы разбить его на разные части, которые менее двусмысленны.
Ещё одна область неопределённости – определение веб-стандартов. Когда мы попросили привести примеры того, как разработчики следят за соблюдением стандартов, многие из них отметили, что им трудно следовать рекомендациям. Это ещё одна область, которую нам нужно прояснить в опросе.
Разработчики ищут рекомендации по реализации конкретных сценариев использования и шаблонов. В качестве источников рекомендаций упоминаются записи в блогах и StackOverflow, но разработчики часто сомневаются, действительно ли найденная информация является лучшей практикой и соответствует ли она последним функциям и API. Они хотели бы прочитать их в более официальном источнике.
Поддержка функций и API, которые позволяют использовать новые варианты использования, является меньшей проблемой. Разработчикам сложнее всего даются функции, API и изменения платформы, которые приводят к изменению рекомендаций.
Большинство разработчиков согласны с тем, что совместимость – одна из самых больших проблем. Ситуация улучшается благодаря таким проектам, как Compat 2021 и Interop 2022, но очевидно, что разработчики пока не считают проблему решенной.
Большинство разработчиков так или иначе используют полифилы. Однако во многих случаях использование полифилов прозрачно для разработчиков, поскольку они могут автоматически добавляться такими инструментами, как Babel, или фреймворками. Если вы управляете полифилами самостоятельно, то можете столкнуться с проблемой определения их качества. Разработчики упомянули, что в качестве сигналов используют количество установок на NPM и создателя полифила. Некоторые разработчики упомянули, что удалили полифилы, которые стали не нужны после прекращения поддержки IE 11.
Фреймворки вызывают проблемы с фрагментацией. Мы получали сообщения о том, что разработчики "застревали" на старой версии фреймворка и не могли использовать новые функции, но переход на новую версию того же фреймворка был слишком дорогим и неоправданным.
Заключение
Современная веб-разработка включает в себя множество элементов, в том числе стандарты, браузеры, библиотеки, полифилы, CMS, фреймворки, рекомендации и инструменты. Это разнообразие – одно из главных преимуществ интернета, но сейчас каждый разработчик должен самостоятельно разбираться в том, как работают отдельные элементы и как они совместимы друг с другом.
Интересно, можно ли сделать так, чтобы разработчикам было понятнее, как все это связано, и чтобы все части были лучше согласованы, но при этом не пострадало разнообразие. Это большая и сложная проблема, которую трудно решить за один раз. Но с чего начать?
Если вы хотите поделиться своим мнением. Я тоже хочу с вами поговорить. Я настрою способ бронирования разговоров напрямую, а пока мои личные сообщения открыты в Твиттере. Свяжитесь с нами, и мы договоримся о времени для разговора.