Как вы управляете своим кодом DojoX? - PullRequest
5 голосов
/ 15 ноября 2008

Как вы управляете использованием DojoX кода или виджетов в производственном приложении?

Dojo Toolkit состоит из Core, Dijit и DojoX. Как инкубатор для новых идей по расширению инструментария, код и виджеты DojoX функционируют с различной степенью нестабильности.

Код DojoX, такой как QueryReadStore (для получения пакетов данных с сервера) или виджеты, такие как Сетка (для использования пользователем компонент сетки интерфейса) не включены в Core или Dijit. Но они достаточно функциональны, чтобы использовать их в некоторых случаях с предостережением «разработчик остерегается», потому что в будущих версиях Toolkit может измениться API или расположение компонента в исходном дереве. Другим уловом является то, что вам, возможно, придется настроить компонент DojoX, который вы используете, для его правильной работы в вашей среде, поскольку в коде еще нет высокой степени надежности.

Итак, как вы гарантируете, что по мере развития используемых вами компонентов DojoX ваше приложение будет работать гладко?

Ответы [ 2 ]

4 голосов
/ 27 декабря 2008

Это может быть очевидным, но гораздо более сложным решением ... но: Примите участие! На самом деле это один из лучших способов познакомиться с общей мощью Dojo за один присест, обучает многим хорошим JS-foo и гарантирует, что вы обладаете внутренней информацией о будущем конкретного модуля. Большая часть DojoX сделана сообществом и нацелена на стабильность и полезность. Чем больше людей рецензируют, тестируют, взламывают код - тем больше шансов на успех и стабильность.

С уважением, Питер Хиггинс

3 голосов
/ 19 ноября 2008

Есть несколько способов сделать это:

  • Придерживайтесь одной версии Dojo и используйте ее последовательно.
  • Переместите измененный код в собственное пространство имен и включите его оттуда.
    • По сути, это разветвление существующего модуля DojoX. Вы несете ответственность за синхронизацию кода и обратное портирование.
    • Обратите внимание на остальную часть додзё & ndash; если он изменяется таким образом, что он ломает вашу разветвленную версию, будьте готовы к исправлению вашего модуля.
  • Скопируйте измененные файлы куда-нибудь и включите / потребуйте их, прежде чем потребуется исходный файл.

Чтобы проиллюстрировать последний метод, представьте, что есть один файл, который я хочу исправить, расположенный в dojox / charting / abc.js:

dojo.provide("dojox.charting.abc");
// the rest of the file
...

Я могу скопировать его в свой каталог, скажем, как мой / patched_abc.js, и сделать его похожим на это:

dojo.provide("my.patched_abc");
// now I include the rest of the file with my modifications

dojo.provide("dojox.charting.abc");
// the rest of the file
...

В моем коде, использующем dojox.charting, я включаю его так:

dojo.require("my.patched_abc");
// now I can include dojox.charting,
// which will use my patched dojox.charting.abc module

dojo.require("dojox.charting.Chart2D");
// the rest of the file
...

Только будьте осторожны, чтобы избежать циклических операторов "require".

Эта техника очень хорошо работает для бэкпорта и незначительных настроек. Если ваши изменения более масштабны, вам следует написать собственный модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...