Как заложить основу для будущего расширения.

Интернету удалось достигнуть таких возможностей и масштаба, с которыми и близко не сможет сравниться никакая другая технология. Тем не менее, интернет еще далек от “оптимального технического уровня” и как следствие появляются новые ограничения возможностей. Веб-платформа часто ограничивает конкурентов в развитии новой системы и появлении устройств с новыми возможностями для разработчиков. Хуже того, очень часто умышленно создаются помехи в развитии новых возможностей API-интерфейсов высокого или низкого уровня. На плечи разработчиков ложится невероятно тяжелый груз по решению существующих проблем.

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

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

Основываясь на успехах тесного сотрудничества между веб-разработчиками и производителями браузеров, некоторые специалисты решили тщательно проанализировать выдвинутые предложения (в том числе авторы этой статьи, Йехуда Кац, Димитрий Глазков, Эрик Арвидсон, Дэйв Херман и другие) и разобраться в том, а что же именно позволяет веб-функциями сохранять долговечность и оставаться при этом полезными.

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

За более чем десятилетний срок работы JavaScript библиотеки, революции прогрессивного улучшения (строгая и последовательная идеология разработки веб-интерфейсов), появления полифилов (polyfills), усилий приложенных на создание “Веб-компонентов” и “Shadow DOM” (теневая модель документа) спецификации научили нас крайне важным вещам: независимо от этапа развития всегда будет приветствоваться возможность использования функций, как в высокоуровневой, так и в низкоуровневой формах.

Язык HTML действительно велик, но пока не можем пользоваться только им одним. А использование только JavaScript имеет свои предсказуемые (и, к счастью, в настоящее время установленные) недостатки.

Мысли о том, что существует какой-то “правильный путь” в создании новых возможностей, всегда соблазняли веб-разработчиков. Просто нужно найти способ сделать это™ и заставить людей следовать вашим идеям, не так ли? Но на практике все оказывается не так уж и просто. Новые предложения всегда отличаются органичностью и вытекают из потребностей, а не из спекуляции. Низкий уровень потребности предполагает использование решений низкого уровня . HTML элементы и CSS правила не являются естественным подходом для всех типов работ. А наличие JavaScript создает потребность в новых API совместимых с уровнем языка.

В краткосрочной перспективе, процесс внедрения новых функций, как правило, является процессом неизбежного выбора (т.е. либо использование декларативных функций, либо низкоуровневых API). Но для долгосрочного развития, почти все особенности должны быть представлены в обеих областях. Более того, мы должны понимать, что предложение новых стандартов — это тяжелая работа. Люди, которые делают всю эту тяжелую работу, пытаются делать правильные вещи и не могут вечно ждать появления подходящих функций. Для увеличения возможностей и качества веб API необходим прагматичный и реалистичный подход, который не будет требовать бесконечного количества времени, усилий и понимания со стороны участников — только добрая воля и желание создавать “новые мосты”.

Чтобы добиться этой цели, необходимо пересмотреть существующие стандарты.

Расширяемый веб манифест — это документ, который позволяет объединить все существующие стандарты вокруг нескольких основных идей:

  • Высокоуровневые API и разметка должны обеспечивать возможность прямого расширения через JavaScript.
  • Там, где платформа уже обеспечивает высокий уровень систем, должны быть использованы связанные низкоуровневые дополнения. Это необходимо для того, чтобы пояснить, как высокоуровневые элементы могли быть созданы с использованием API более низкого уровня.
  • При добавлении к платформе “сырых” функций предпочтительнее использовать низкоуровневые API, так как они позволяют экспериментировать и проводить множество повторных операций перед принятием правильного решения.

Вы должны понимать, что интернет получил такое развитие и популярность в значительной степени благодаря декларативным, в основном высокого уровня функциям: HTML элементы для форм, CSS для верстки и дизайна, а тег <a> для установления связей между документами. Хотя каждый из этих элементов является частью интерфейса прикладного прог …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.