Веб-стандарты: зачем и как их изучать
Зачем нужны веб-стандарты, что почитать новичку и как устроено одноимённое русскоязычное сообщество? Рассказывает веб-разработчик Никита Дубко.
Иллюстрация: Apple / Colowgee для Skillbox Media
Никита Дубко
об эксперте
Senior Frontend Developer, Google Developer Expert по Web. Новостной редактор в сообществе «Веб-стандарты» и автор @dev_tip.
До 2010 года, в эпоху Internet Explorer и его конкурентов, которые не дожили до нашего времени, заставить браузеры одинаково отрисовывать веб-страницы было очень сложно. Разработчикам приходилось писать костыли под API каждого браузера, но страницы всё равно то и дело ломались. Поэтому инженеры обратили внимание на веб-стандарты.
Зачем веб-разработчику знать стандарты
Стандарты пишут и принимают в W3C — это некоммерческая организация, которую основал Тим Бернерс-Ли. Она состоит из множества рабочих групп: в них входят представители компаний — создателей браузеров, крупных университетов, исследовательских институтов и других организаций. Участники обсуждают с разработчиками браузеров дизайн и реализацию API, а затем разрабатывают единые стандарты.
Вот какая польза от веб-стандартов и почему их надо изучать:
- Не нужно писать костыли. Если вы придумали новую фичу для своего сайта, её не нужно писать отдельно под каждый браузер и учитывать все особенности программного интерфейса. Гораздо проще использовать методы jQuery, которые будут вести себя одинаково и в Chrome, и в Firefox. Но правильнее — использовать одинаковые методы во всех браузерах, которые работают предсказуемо.
- Не обязательно изучать новые спецификации. Разработчики не боятся, что у браузера выйдет спека, которая поломает старые функции их веб-приложения. Если вы не знаете о существовании фичи, то можете просто не использовать её и жить спокойно.
- Можно узнать, как будут развиваться технологии. Например, в некоторых стандартах написано, что через какое-то время появятся новые цветовые пространства. А значит, мы сможем заранее обсудить с дизайнером, как их реализовывать.
Как изучать стандарты и что читать
Я начинал изучать веб-разработку по книгам и CHM-файлам. Скачивал их в школе на уроках информатики, сохранял на флешку, читал дома справку и повторял примеры — так и научился верстать. А со стандартами я познакомился, когда набрался опыта и захотел поглубже разобраться, как браузер работает с веб-страницами.
Все стандарты написаны на английском, поэтому новичку, не владеющему языком, будет сложновато изучать их в оригинале. Я советую обратить внимание на более доступные источники.
Блоги деврелов и IT-евангелистов. Читайте тех, кто непосредственно разрабатывает и принимает веб-стандарты. Например, деврелы Google часто рассказывают в своих статьях о возможностях и особенностях движка Chrome. Там всегда много подробных примеров и иллюстраций, поэтому их приятно и легко читать.
Среди евангелистов о CSS пишут ребята из Google: Адам Аргайл (@argyleink), Юна Кравец (@Una) и Джейк Арчибальд (@jaffathecake). Много полезных и актуальных материалов можно найти в блоге Александра Сурмы (Surma).
Также у Firefox есть классный блог для разработчиков. Советую на него подписаться, если хотите одними из первых узнавать новости о браузере и веб-стандартах в целом.
Материалы в русскоязычном комьюнити. В первоисточник я смотрю, только когда хочу узнать какие-то неочевидные вещи. Но во многих нюансах можно разобраться, почитав прекрасные статьи Ильи Стрельцына.
Рома Дворнов (@rdvornov) иногда пишет о стандартах в своём Telegram-канале «Горшочек варит». С его разрешения мы адаптировали материалы про CSS-нестинг для нашего сайта.
София Валитова (@ariarzer) выступает на конференциях с докладами с глубоким погружением в спецификации от CSS Working Group и переводит материалы. Вот её выступление на FrontendConf 2019:
«Дока». Есть потрясающий русскоязычный ресурс «Дока», в котором описаны особенности работы браузеров. Возможно, не так глубоко, как в официальной документации, но человеческим языком и с большим количеством практических примеров.
Сайт «Веб-стандартов». У нашего сообщества есть сайт, который так и называется — «Веб-стандарты». Мы периодически публикуем на нём статьи и туториалы на русском языке, даём советы и каждую неделю выкладываем новые выпуски подкаста.
Как устроено сообщество «Веб-стандарты»
В работе сообщества «Веб-стандарты» можно выделить четыре направления:
Соцсети. В Twitter, Facebook*, Telegram и VK каждый будний день публикуем по две-три ссылки на статьи о фронтенд-разработке. Это новости, туториалы, записи конференций и описания стандартов. Вокруг соцсетей собирается комьюнити. У нас есть паблик в VK с 33 тысячами подписчиков, чат в Telegram и канал на 16 тысяч подписчиков, а ещё аккаунт в Twitter — там приблизительно столько же читателей.
Контрибьюторы. Участники комьюнити вносят большой вклад в его развитие. Они публикуют у нас свои статьи, присылают переводы зарубежных материалов, делятся фидбэком в соцсетях и приносят пул-реквесты в наши репозитории на GitHub.
Подкаст. Каждую неделю выходит новый выпуск нашего подкаста. Мы уже записали более 300 выпусков, в которых обсуждаем новости и самые яркие события в мире фронтенда. Кроме того, мы делимся своим взглядом на эти новости, технологии и стандарты, приглашаем интересных людей из мира фронтенда обсуждать новости с нами.
Мероприятия. Это направление сейчас не очень актуально, но раньше оно было одним из основных. Речь о конференции Web Standards Days. С 2009 по 2019 год прошли 42 конференции, последняя из них — в Минске. Лидер и создатель комьюнити Вадим Макеев (@pepelsbey) участвовал в их организации все годы.
Мы хотели, чтобы веб-разработчики могли бесплатно общаться и обмениваться знаниями с коллегами. Поэтому за вход на Web Standards Days никогда не брали денег, а в форме регистрации даже не спрашивали email. Регистрация была нужна только из-за ограничения по количеству мест на самой площадке. По возможности мы организовывали онлайн-трансляции или записывали и публиковали доклады. Самое классное — что крутые спикеры сами подавали заявки на конференцию и читали интересные доклады.
Чем занимаются в комьюнити
Среди активных участников сообщества можно выделить несколько групп. Вот чем они обычно занимаются:
Ведут подкасты. Среди них Вадим Макеев (@pepelsbey), Алексей Симоненко (@simonenko), Оля Алексашенко (Olga Aleksashenko), Маша Просвирнина (@prosvirnina12), Андрей Мелихов (@amel_true), Юля Миоцен (@julia_miocene) и я — Никита Дубко (@dark_mefody).
Пишут статьи и переводы. На сайте «Веб-стандарты» мы публикуем статьи, переводы для новичков, новости и так далее. Любой желающий может поделиться материалом. Мы с радостью поможем подобрать информативные картинки, улучшить структуру и поправить стиль, а затем опубликуем статью на сайте.
Общаются в чате. Новички часто задают вопросы в наших чатах. Когда другие, более опытные, разработчики им отвечают, это тоже здорово помогает сообществу.
Участвуют в прочих активностях. На нашей странице в GitHub есть много проектов: календарь событий по фронтенду, словарь терминов, список инди-сайтов, пет-проекты участников комьюнити и так далее. Сообщество всегда радо помощи и открыто к сотрудничеству. Если у вас есть идея, как сделать русскоязычное комьюнити лучше, можно даже завести под неё новый репозиторий.
Какая атмосфера царит в сообществе
Иногда в сообществе разгораются дискуссии на технические (и не только) темы. Мы можем спорить о чём угодно: какая технология лучше, нужна или нет определённая фича в языке программирования или как правильно перевести какой-нибудь термин в «Словаре веб-стандартов».
Но в целом большая часть обсуждений у нас проходит спокойно и без конфликтов. Конечно, иногда мы расходимся во мнениях — но разве это не замечательно? Например, я люблю гит-хуки (git-hooks), а Вадим Макеев не любит. И вот мы как-то поспорили прямо во время записи подкаста: нужны они или нет. Я тогда ещё недостаточно хорошо разбирался в теме, но после записи вник и теперь ещё больше уверен, что они нужны.
В подкасте у нас нет задачи транслировать «правильное» мнение. Мы хотим, чтобы слушатели думали и сами выбирали, что правильно, а что нет — это важный навык. Не верьте на слово Вадиму Макееву, Никите Дубко, любому другому ведущему или гостю. Анализируйте всё, что вам говорят ведущие и так называемые лидеры мнений — тогда вы сформируете собственную независимую позицию.