2008-11-15 3 views
5

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

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

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

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

ответ

3

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

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

Для иллюстрации последнего техника представьте себе, что есть один файл, я хочу, чтобы патч находится в dojox/картографирования/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 
... 

Просто будьте осторожны, чтобы избежать круговых «требований».

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

4

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

С уважением, Peter Higgins

Смежные вопросы