Недостатъци на преминаването от jQuery към Dojo

Обмислям да използвам Dojo в някои нови проекти (или поне да го включа), отчасти поради това е съвместимост с разширения режим на Google Closure Compiler, който (надяваме се) напълно ще изтрие целия неизползван код.

Какво бих загубил? (освен познаване на синтаксиса)

(също така, обикновено всякакви съвети за това какво е различно вероятно биха били полезни)


person 700 Software    schedule 14.03.2011    source източник
comment
Общността на jQuery е по-голяма от тази на Dojo. Предполагам. (напр. в StackOverflow има 69k+ jQuery въпроса, където Dojo има само 1200+)   -  person Thomas Menga    schedule 14.03.2011
comment
Не съм сигурен, че разбирам целта тук. Ако конвертирате, за да можете да използвате функции в Dojo, тогава страхотно. Ако обаче преобразувате само защото искате добавени опции за компилатор, не виждам смисъл... освен ако вече не изстисквате до последния байт от текущите си приложения... и запазването на няколко допълнителни байта ще ви спести $1000 на твоите милиони заявки...   -  person scunliffe    schedule 14.03.2011
comment
Отчасти не искаме никой да знае каква библиотека използваме. Освен това искаме те да знаят възможно най-малко за това как структурираме нашия код. Ако всичко се увие в един JavaScript файл, би било по-добре. Особено ако беше още по-трудно да се разбере какво се случва. @scunliffe   -  person 700 Software    schedule 14.03.2011
comment
Ако някой наистина иска да знае тези неща, той ЩЕ може да го разбере, стига да използвате код от страна на клиента. Компресирането на вашия javascript код просто го прави малко по-трудно, но в никакъв случай невъзможно.   -  person Charles Boyung    schedule 14.03.2011
comment
@Charles: Знам, че няма абсолютно решение. Просто не искам да го улеснявам. Изминахме дълъг път и чувстваме, че имаме наистина добра идея как да проектираме нашата работа. Основната ни грижа е местната конкуренция.   -  person 700 Software    schedule 14.03.2011
comment
@George, но защо? Ще бъде доста лесно някой да копира начина, по който работи вашия сайт, дори без да извлича директно кода. Ако вашият източник на JavaScript е от решаващо значение за реализирането на печалба, имате по-големи проблеми от защитата му!   -  person Hamish    schedule 14.03.2011
comment
Като човек, който трябва да се справя и с двете, горещо препоръчвам jQuery. Всъщност нямам никакви основни причини, които да не са изброени, но ако вече се чувствате добре с jQuery, бих се придържал към него.   -  person Seth    schedule 14.03.2011
comment
За моята стойност от 2 цента: аз лично смятам, че комплектът джаджи на Dojo е много по-хубав от джаджите на jQuery UI. Също така имам огромно уважение към възможностите за локализация на Dojo.   -  person Pointy    schedule 14.03.2011
comment
@Hamish източникът е критичен за реализирането на печалба Не е така. направо някой да го копира Не е (поне няма да работи).   -  person 700 Software    schedule 14.03.2011
comment
@GeorgeBailey Сигурността чрез неизвестност НЕ е сигурност. Какъв е вашият уебсайт? Ще настроя негов клонинг до края на уикенда.   -  person Raynos    schedule 14.03.2011
comment
Освен това, @George Bailey (страхотно потребителско име между другото), мислете за това по следния начин: ако смятате, че вашият код струва $X, тогава трябва да очаквате, че всеки, който се опита да го разгледа, е готов да похарчи $ X да го направи. Наистина не можете да скриете дизайна на вашето приложение, когато е написано на JavaScript и доставено на браузърите на потребителите.   -  person Pointy    schedule 14.03.2011
comment
@Pointy можете да стартирате компилатор на език Foo в javascript, след което да напишете целия език на Foo. Ако направите Foo наистина неясен, тогава поне можете да скриете напълно дизайна на кода.   -  person Raynos    schedule 14.03.2011
comment
@Pointy: Оценявам, че всички ми казаха да не губя време за това, но смятам, че това ще работи много добре за нашата настройка.   -  person 700 Software    schedule 15.03.2011
comment
@Raynos: Това не е уебсайт. Той използва код от страна на сървъра. Така или иначе не се притеснявам за точните клонинги, защото всеки, който ги използва, ще трябва да ги модифицира, за да отговарят на предназначението им.   -  person 700 Software    schedule 15.03.2011
comment
@George Bailey - Трябва да се отбележи, че всеки JavaScript, генериран или по друг начин от която и да е библиотека, която е изпратена до браузъра, е 100% прозрачен, копируем и напълно четлив/декриптиран от всеки, който има интерес. Въпреки това, използвайте която и да е JS библиотека, която ви е най-удобна и запозната. Спестяванията на време за вашата разработка ще ви се отплатят повече от особеностите на определена библиотека.   -  person scunliffe    schedule 15.03.2011
comment
Зависи много от това какво искате да правите и кои разширения/плъгини бихте използвали от всяка общност. Dojo се доставя с помощни програми, които не само извикват обфускатори, но и оптимизират чрез конкатенация и вграждане.   -  person peller    schedule 15.03.2011


Отговори (3)


Аз самият използвам jQuery, но за да го обобщя, изглежда, че jQuery е по-добре документиран и по-лесен за правене на страхотни неща „извън кутията“. Доджото изглежда по-лесно за разширяване, ако знаете какво правите. Получих тази информация от уикито на общността тук:

jQuery

  • Бърз
  • Добре документиран
  • Лесен за използване
  • Верижно свързване
  • За разлика от Prototype той не разширява обект, ако не сте специално поискайте това (опитайте да завъртите масив в прототип)
  • лесен за използване Ajax (обичам функцията $.ajaxSetup())
  • Добри манипулатори на събития
  • CSS селектори
  • филтриране на вашия избор
  • споменах ли вериги?
  • Малък (само 30 KB)
  • Хубави малки вградени ефекти.
  • Плъгини

Доджо

„Като разработчик на Dojo бих препоръчал Dojo. Въпреки че изборът ми не е изненадващ, станах разработчик на Dojo, защото открих следните неща, които се правят по-добре, отколкото в други рамки на JavaScript:“

  • ООП (и други парадигми) са направени правилно.
  • Инфраструктурата на джаджи е направена правилно.
  • Modules done right with all necessary goodies:
    • Lazy loading of modules dynamically.
    • Възможност за извличане само на необходимите модули и изграждане на персонализиран еднофайлов профил.
    • Асинхронно зареждане на модули при желание.
    • Проста интеграция с CDN за тежки уеб приложения.
  • Огромен набор от налични модули в DojoX, включително графики, диаграми, мрежи и т.н.
  • Възможност за използване в среди без браузър.
  • Attention to details in widgets:
    • support for i18n (including LTR and RTL languages),
    • поддръжка за l10n (включително стандартна дата, валута, форматиране на числа),
    • разпоредби за хора със специални нужди (автоматичен режим с висок контраст, поддръжка само за клавиатура и т.н.), полезни и за редовни потребители и задължителни за повечето държавни договори.
  • Умните хора в общността (не на последно място), колкото и да обичам да се държат за ръце за начинаещи, в един момент всеки разработчик става „опитен“ и се нуждае от много повече от това.

„Умните хора в общността (не на последно място) – колкото и да обичам да се държат за начинаещи, в един момент всеки разработчик става „опитен“ и се нуждае от много повече от това. Ако всичко, което искате, е да пишете едноредови думи и добавете прости прогресивни подобрения към съществуващи уеб приложения, можете да го направите с почти всяка рамка или дори с чист JavaScript. Но веднага щом вашето уеб приложение стане по-голямо или по-сложно, добра опаковка, добра поддръжка за любимите ви методологии, добро изграждане блокове и способността да правите свои собствени градивни блокове стават все по-важни. Ето защо се спрях на Доджо и никога не погледнах назад."

person themerlinproject    schedule 14.03.2011

Колкото и да си струва, пълната версия на dojo идва със ShrinkSafe. Не съм запознат с каквито и да е сравнения на производителността между това и компилатора за затваряне, но намирам инструментите за управление на модули и опаковане на dojo (включително ShrinkSafe) за много полезни.

person Chris    schedule 14.03.2011
comment
Общността на Dojo като цяло премина към Closure от собствения си Shrinksafe, който беше един от оригиналните обфускатори, базирани на Rhino и може би вдъхновение за YUI и Closure. Затварянето има много по-разширени функции. Понастоящем не мисля, че изпълнението на затваряне в разширен режим (отрязване на мъртъв код с помощта на подсказки и т.н.) работи OOTB, но някой работи по него. Има тема за това в списъка с доджо-сътрудници (опа... Виждам, че вече споменахте работата на Стивън) - person peller; 15.03.2011

Е, ако трябва да кажа нещо сега, бих казал, че за мен няма разлика между jquery и dojo, защото не използвам и двете. Използвам чист javascript, в който съм се задълбочил, че нямам нужда от никоя от библиотеките, създавам своя собствена рамка, моите собствени неща, по-бързи, чисти, излекувани,

И бих казал, че мразех всички библиотеки, защото ме карат да не разбирам неща като чудото на javascript и неговата красота.

Не съветвам да използвате каквато и да е библиотека и ако имате нужда, направете го, след като знаете наистина javascript.

person Marwan    schedule 15.03.2011
comment
Разширих границите на анимацията, преди да използвам jQuery. Оценявам всеки, който се научи да го прави ръчно и след това използва рамка. Бих подчертал, че някой трябва да има обща представа как рамката върши работата, но не бих казал, че трябва да се научат да работят без рамката. - person 700 Software; 15.03.2011
comment
Vanilla Javascript щеше да е красив, ако браузърите го прилагаха еднакво. Аз съм много по-щастлив човек, когато библиотека се справя с идиосинкразиите на браузъра вместо мен. - person Chris; 15.03.2011