Dojo 2 уточняет и расширяет оригинальные интерфейсы Dojo, удаляя устаревшие функции и согласовывая терминологию в соответствии с дополнениями, внесенными в ECMAScript с момента первоначального выпуска Dojo в 2004 году. Цель Dojo 2 это поддержка только ECMAScript 5+. Так, особенности, которые были в Dojo 1 и которые стали частью спецификация ECMAScript, были удалены из фреймворка.

Dojo 2 написан на TypeScript. Это позволяет пользователям Dojo воспользоваться преимуществами дополнительной статической типизации и позволяет Dojo быть опубликованным в AMD, CommonJS и ES6 формате модулей для использования с нативными модульными системами в любом современном окружении.
image

Общий подход Dojo 2


Dojo Toolkit начал создаваться в 2004 году группой единомышленников разрабатывающих на JavaScript, которые устали изобретать колесо и создавать костыли вокруг несоответствия браузеров.

Миссия Dojo Toolkit в том, чтобы обеспечить целостность и простоту в использовании функций API, которые позволяют разработчикам создавать проще поддерживаемые веб-приложения и не беспокоится о несоответствиях и причудах каждого браузера.

Мы выпустили Dojo 1.0 в 2007 году и продолжали его непрерывно развивать, вводя понятия, которые в настоящее время стали основными в развитии JavaScript. В то время, использование модулей JavaScript, promises/deferreds, MVC, CSS препроцессора и системы сборки было воспринято многими как сложное и ненужное. Как мы знаем, эти вещи стали частью развития JavaScript сегодня, и мы очень рады, что большинство разработчиков JavaScript в настоящее время стремится к развитию в этом направлении.

Основные принципы

Мы потратили много времени, думая о том, что должен уметь JavaScript фреймворк следующего поколения. Недостаточно просто добавить новые функции, увеличить номер версии и назвать его «Dojo 2». В нем должен быть набор основных принципов, определяющих будущее развитие. Мир JavaScript значительно изменился со времен рождения Dojo. Миссия фреймворка остается такой же, но то, как это сделано, будет сильно отличаться.

Модульность

В настоящее время (по крайней мере на этой неделе) в мире JavaScript считают, что всё, что может быть разделено на отдельные пакеты, должно быть разделено. Например, если все что вам нужно это основные манипуляции DOM и обработка событий, то вы можете взять пакет, который делает только это.

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

Наш подход с Dojo 2 заключается в золотой середине между отдельными пакетами и единым Dojo Toolkit. Мы будем разрабатывать, собирать и выпускать функциональность ядра Dojo вместе с такими пакетами, как dgrid, dstore и Intern. Разработчики будут свободно использовать и самостоятельно модернизировать части, которые им потребуются, или использовать собранный выпуск Dojo Toolkit. Разделение Dojo позволит другим внести свой вклад более легко и выпуски будут происходить быстрее и гораздо менее болезненно.

Использование существующей экосистемы

Dojo, возможно, во многих направлениях был первым, но, учитывая распространение JavaScript микро-библиотек и инструментов, у нас часто нет оснований, чтобы поддерживать собственное решение только потому, что оно наше. Там, где есть сравнимая или лучшая реализация, мы будем думать над тем, чтобы использовать её. Например, мы будем документировать наш код с помощью JSDoc, а не DojoDoc как мы делали во времена разработки Dojo 1.x.

Улучшенная документация

Кстати о документации: мы старательно работали над улучшением документации для Dojo 1.х, но наши требования к документации Dojo2 еще выше. Во многом проблемы с документацией были вызваны отсутствием инструментов. Используя современные решения, такие как JSDoc, Markdown и GitHub, мы можем увеличить качество документации и скорость добавления и обновления документов.

Продолжение продвижения JavaScript

Во-первых, Dojo 2 будет написан на TypeScript. В то время, как ES6 / ES2015 принес много необходимых улучшений, есть много незавершенных вещей. Такие языки, как TypeScript, позволяют добавлять улучшения прежде, чем они будут добавлены к языку. Тогда мы можем легко составить транспайлер в AMD, CJS или ES6 модули. Это позволяет улучшить сам язык, но что еще более важно, облегчить жизнь разработчикам.

Современные окружения

В дополнение к десктопным браузерам, целью Dojo 2 является поддержка максимально возможного количества современных JavaScript окружений. Это означает поддержку мобильных телефонов, планшетов, Node.js / io.js, VR гарнитуры и многого другого.

Виджеты

Виджеты являлись одной из основных особенностей Dojo 1.x, но многое изменилось после того как мы представили Dijit. Мы пока все еще думаем какой подход избрать в Dojo 2 — Dijit, нативные виджеты, веб-компоненты или что-то совсем новое. Наш первоначальный акцент делается на определении основной функциональности ??для Dojo 2, после этого мы начнем определять общий подход для виджетов.

План


Мы работаем над каждой частью Dojo 2 в несколько шагов.
Дизайн. Определить основную функциональность и API, чтобы создать высокий уровень «спецификации» для каждого Dojo 2 пакета.
Разработка. Используя спецификацию созданную на первом шаге, разработать и задокументировать функциональность. После чего использовать Intern чтобы проверить, что это работает.
Выпуск. Dojo 2 будет упакован как набор различных модулей. С завершением каждого модуля мы ближе к Dojo версии 2.0.

Больше информации:


Дорожная карта
GitHub

Комментарии (5)


  1. stalkerg
    19.08.2015 18:58

    Dojo то ладно… там нету ничего такого, чего нету в jQuery или аналоге (хотя может местами и сделано удобнее), но вот Dijit это то из-за чего ИМХО и используют Dojo и его пока нету даже в проекте. :(


    1. BuranLcme
      19.08.2015 21:35
      +1

      В dojo/dojo кроме работы с DOM-ом еще много всего интересного: Promises, AMD загрузчик, работа с источниками данных, утилиты для работы с массивами, числами, временем и пр.


      1. stalkerg
        20.08.2015 12:24

        Это я прекрасно знаю и использую, другой разговор, что это вполне можно найти и за рамками Dojo. :)
        А вот почти все аналоги Dijit блеклые и во многом уступают.


    1. dunmaksim
      11.09.2015 15:37
      +1

      А не могли бы Вы посоветовать хорошую книгу по Dojo? Где бы я ни искал, везде 2008-2009 годы издания, а хочется чего-то хотя бы 2013-2014 годов, чтобы быть ближе к современным реалиям. Или, может быть, блог?


      1. BuranLcme
        11.09.2015 16:47

        Новых книг не знаю, по-моему, их вообще нет. Но у парней неплохая дока. Есть туториалы вполне в стиле книги. Есть персонально для многих модулей отдельные статьи. И есть автогенеренный словарь API. Относительно блогов, David Walsh раньше писал про Dojo, но уже давно ничего нового не видно.