anmalygin's blog

By anmalygin, 15 years ago, In Russian
Наконец-то добрался до того, чтоб написать обещанное. Прощу прощения за задержку - сплошные траблы с сессией наших студентов (которых у нас кстати обучается 936 человек).
Я хотел в этом посте рассказать о плавном переходе нашего приложения с компонент js-фреймворка dojo, на мега-клевую библиотеку пользовательских компонент jsf - richfaces. Но пораскинув умом, понял, что рассказ получится слишком длинный и малочитабельный). Потому сначала расскажу о dojo, который мы использовали целый год и приросли ему все душой.

Часть первая. Патетическая.

Каждому из вас, кому приходилось стругать веб-проекты, особенно используя скриптовые языки, рано или поздно приходило в голову вместо собственного java-script, который частенько бывал написан через "пень колоду" использовать готовый  js - фреймворк, который бы и кроссбраузерности позаботился бы и механизм для аджакса и всяких модных эффектов. Вариантов  таких решений достаточно много, от уже заслуженных до амбициозных новичков

1. jQuery.

Отличная библиотека, простая, активно развивающаяся и весьма популярная в рунете, все мои знакомые фрилансеры для небольших проектов используют ее. Есть куча плагинов и очень симпатичных виджетов. Смотреть здесь .
jQuery мы использовали часто и даже многострадальный сайт ВЦ (год назад бывший плацдармом для многочисленных экспериментов)

2. ExtJS

Очень мощная библиотека. Отличные отлаженны виджеты. Актуальная версия аж 3.1, что внушает. Ну и вообще сделана очень хорошо. В отличие от того же jQuery в стандартной комплектации идет не только ядро, но и всякие рюшки типа виджетов, что делает его весьма тяжеловесным. Используется много где, вроде даже есть webOS, сделанная с использованием его. и еще одна очень навороченная система документооборота, которую я одно время думал использовать.

3. dojo .

Наша любимая библиотека, прочесанная вдоль и поперек, а потому остановлюсь поподробнее.
dojo представляет собой нечто среднее меж двух описанных выше. Он не так громоздок как extJS (даже есть возможность собрать собственную библиотеку только из нужных компонент). В отличие от jQuery в нем по умолчанию уже много чего есть.
Вот здесь есть хорошая статья для тех, кто хочет познакомится с dojo поближе. Повторять ее не буду, расскажу о субъективных впечатлениях.

Достоинства
  1. Хорошее ядро, вменяемое и достаточно несложно в освоении. 27 Кб в сжатом виде). правда там мало что есть
  2. Модульная архитектура. Модули для разных нужд очень чётко разграничены (по крайне мере, что мы использовали). И опять таки повторюсь несложно собрать свою библиотеку, зная что собственно вам нужно.
  3. Очень много всего есть даже компонента для работы с Jabber сервером
  4. Архитектура всего dojo состоит из 3 основных компонент


  Об этом поподробнее


dojo - набор базовых классов, работы с DOM, CSS, клевые селекторы и базовые визуальные эффекты
dijit - компоненты для построения пользовательских интерфейсов. Панели, деревья, табы, списки, чекбоксы, прогрессбары.. Вообще о этой части надо отдельно говорить, много интересных нюансов и в использовании также.
dojox - мой любимый пакет для экспериментальных расширений. Вообще Dojo Foundation , которая занимается развитием проекта судя по всему в самом начале пытались объять вообще все, что можно сделать вебом. Времени на доработку разрозненных компонент не было и многие из них попали в этот пакет, да там и мирно почивают до сих пор. Некоторые (наиболее востребованные) дорабатываются и перекочевывают в другие пакеты. Вообще посмотрев доки этого пакета можно оценить как видит dojo Foundation  будущее веба, и видело его в недавнем прошлом.
Из этого пакета мы использовали мультизагрузку для файлов к сообщениями. Сколько было геморроя, трудно описать словами, но смотрелось в конечном итоге довольно эффектно).

Кстати вспомнился случай. Мы решили сделать небольшой чат на главной странице для моментальной техподдержки студентов. Делать его  c ajax  показалось неинтересно. Решили попробовать технологию comet (она позволяет клиенту держать постоянный коннект с сервером и сервак к примеру может добавлять сообщение на страничку как только оно пришло в его очередь). И чтобы вы думали! В dojox была библиотека для поддержки комета. Пришлось основательно перелопатить все, но в конечном итоге месяц назад мы запустили его в тестовом режиме и пока сбоев не было. О мытарствах с запуском comet обязательно расскажу потом еше (или заставлю одного из наших бойцов), ибо было  невероятно забавно преодолевать все препятствия почти при полном отсутствии документации.
И вот так мы плавно перешли к недостаткам dojo

Недостатки
  1. документация - это важно, черт возьми, к сожалению dojo Foundation не всегда согласен с этим. Когда мы начинали с документацией было все вообще грустно. Сейчас ситуация получше, но, увы, до идеала еще далеко. Вот здесь официальная документация 
  2. Компонеты из dojox очень часто нужны, но почти всегда невероятно глючат. 

Так пора закругляться. Я к сожалению не о всех джс- библиотеках рассказал, что мы пробовали, но как нибудь в другой раз.

Анонс - Часть Вторая. Сентиментальная. Jsf 2.0
  • Vote: I like it
  • 0
  • Vote: I do not like it