+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 91.31 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

19.03.2010 10:47

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

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

В данной статье я хотел бы рассказать о важном событии в эволюции одного ве-стандарта и том, как мы среагировали на него в 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 - еще один шаг в этом направлении.

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

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

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



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года