(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Обновленный синтаксис Getters/Setters в IE8

Источник: thevista

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

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

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

ECMAScript 3.1
ECMAScript - стандарт, определяющий JavaScript, который последний раз обновлялся почти 10 лет назад. Однако, в прошлом году ревизия, которая впоследствии получила название ECMAScript 3.1, быстрыми темпами начала двигаться к стандартизации. Когда мы начинали работать над Internet Explorer 8, мы ожидали, что новая ревизия ECMAScript скоро будет стандартизирована, что даст нам возможность интегрировать ее в наши планы. Учитывая столь стремительное принятие ECMAScript 3.1, нам пришлось пересмотреть эти планы. Нам не хотелось интегрировать в Internet Explorer 8 функции, которые в итоге могут быть несовместимы с тем, что мы увидим в будущем черновике ECMAScript 3.1.

ECMAScript 3.1 включает в себя массу расширений для JavaScript, которые упрощают и ускоряют веб-разработку. Одной из таких функций является поддержка JSON и мы тут же решили, что встроенная в IE8 поддержка JSON API должна быть такой же, как в черновике ECMAScript 3.1. Еще одной функцией из этого черновика, которая тут же привлекла мое внимание, была поддержка синтаксиса Getters и Setters.

Макеты DOM
Много месяцев мы работали над функцией, которая помогла бы сделать DOM более совместимыми с языком JavaScript с помощью концепции JavaScript-макетов в DOM. Используя DOM-макеты, находчивые разработчики могут легко расширить функциональность HTML-элементов и других объектов DOM, разрабатывать более мощные библиотеки и уровни абстракции и даже заменять любые встроенные свойства и методы собственными. Это была, пожалуй, одна из наиболее востребованной серьезными JavaScript-экспертами функций. Одним из самых важных элементов данной функции являются свойства getters/setters в DOM.

До появления ревизии 3.1 ECMAScript не включал концепцию свойств getters/setters, но некоторые реализации JavaScript ее поддерживали, используя API, которые поддерживаются несколькими основными браузерами и системами программирования. Когда мы начали работать над поддержкой макетов DOM, мы решили реализовать поддержку этого API.

В спецификации ECMAScript 3.1 свойства getter/setter включены, но используя более гибкий API, а не фактический. Это решение было принято в разрез со всеми основными производителями браузеров, учитывая тех, которые уже поддерживают оригинальный getter/setter API. Учитывая, что разработка ECMAScript 3.1 в самом разгаре, а в данный процесс вовлечены разработчики основных браузеров, нам необходимо принять очень важное решение: реагировать ли нам на это неожиданное изменение и заниматься реализацией getter/setter API для DOM от ECMAScript 3.1 или же выпускать IE8 с тем, что у нас есть сейчас, а ECMAScript 3.1 API реализовать в будущем релизе?

В действительно ответ зависит от того, что лучше для веб-разработчиков. Им нужно интероперабельность, а если мы обеспечим поддержку getters/setters по ECMAScript 3.1, то мы гарантировать наличие интероперабельности нашего браузера в течение обозримого будущего. Учитывая, что на тот момент мы находились всего лишь в нескольких неделях от выпуска Beta 2, мы не хотели подвергать опасности качество данного релиза, и что важнее выпустить существующую реализацию (фактический getters/setters), чтобы дать разработчикам возможность протестировать данную функцию и найти серьезные ошибки, вместо того, чтобы убрать ее из Beta 2 и оставить для RC1. Поэтому у нас было достаточно времени, чтобы среагировать на те проблемы с совместимостью, на которые в ином случае времени могло и не хватить .

Первым делом стандарты
Сейчас я рад сообщить, что в Internet Explorer 8 RC будет добавлена не только высококачественная реализация макетов DOM, но и будут внесени изменения в реализацию getter/setter - теперь она будет в полной мере соответствовать черновику стандарта ECMAScript 3.1. И хотя наш JavaScript-движок и DOM в IE8 не будут поддерживать все изменения, представленные в ECMAScript 3.1, это значит, что код, разработанный для поддержки getters и setters в DOM в Internet Explorer 8 будет работать и сейчас, и в будущем, так как это код написан в соответствии с принятыми веб-стандартами.

Я безумно рад, что IE8 обзавелся этой функцией! Чтобы помочь начинающим веб-разработчикам, я написал несколько вводных статей по макетам DOM и getter/setters, а также новому синтаксису, который станет доступен в RC-сборке.

  • Document Object Model Prototypes, Part 1: Introduction
  • Document Object Model Prototypes, Part 2: Accessor (getter/setter) Support[/list[

    Кроме того, некоторые из вас могли заметить, что статья на MSDN была обновлена и теперь включает в себя макеты, поддерживаемые в Internet Explorer 8!

    Макеты DOM и getters/setters позволяют реализовать несколько классных возможностей по программированию. В будущих статьях я попытаюсь более подробно рассказать о нескольких сценариях, которые можно реализовать в IE8. Буду принателен, если в комментариях вы поделитесь своим опытом, какие сценарии удалось вам реализовать с помощью данной функции.

    Возвращаясь к вопросу целесообразности реакции на изменения, то изменения в веб-стандартах могут происходить и в ходе цикла разработки продукта. Опыт, который я получил с методами getters/setters во время разработки Internet Explorer 8, это только подтверждает. Как только мы завершим разработку IE8 и начнем задумываться о будущем, мы продолжим собирать нужные данные, прислушиваться к отзывам пользователей и вносить изменения там, где это необходимо. Скажу лишь одно - наша команда действительно заботиться о соответствии принятым веб-стандартам и об их поддержке, как способе достижения интероперабельности. В конечном итоге это позволяет разработчикам работать более эффективнее. А поддержка ECMAScript 3.1 - еще один шаг в этом направлении.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 19.03.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft 365 Business Basic (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Apps for business (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100