Dojo 2

Dojo 2

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

Dojo 2 написано на TypeScript. Це дозволяє користувачам Dojo скористатися перевагами додаткової статичної типізації і дозволяє Dojo бути опублікованим в AMD, CommonJS і ES6 форматі додатків для використання з нативними модульними системами в будь-якому сучасному оточенні.

Загальний підхід 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