Ответ 1
В соответствии с моим пониманием Mootools не считается предпочтительным способом записи JavaScript, поскольку он имитирует обычный OO по умолчанию на основе OO-языка на основе прототипов.
Откуда вы это взяли? Самое замечательное в javascript, которое так слабо напечатано (см. То, что я там делал) - вы можете написать одно и то же в путанице. Существует так много способов абстрагироваться от него и переупаковывать его - и это применимо от простого new Array()
vs []
к тому, как вы структурируете свое приложение.
Если вы любите JavaScript (или просто знаете его и втайне ненавидите), с MooTools все будет в порядке. API - это, в основном, либо собственный js, либо ES5 spec, либо - редко - дополнительная утилита, которая также чувствует себя "естественной". Заметное исключение выделяется Class
. И тот факт, что вы можете абстрагироваться, имея дело с прототипическим наследованием, передавая объект специальной функции конструктора Type
, которая возвращает ваш экземпляр, это... oh wait. Это выглядит по-другому, но то, что он делает, похоже на обычный javascript. Только проще - почему бы вам не предпочесть?
В эти дни происходит бум MVC для клиентов и этот "новый способ разработки приложений". Внезапно людям JQuery дали роскошь водопроводной воды! Я говорил с большим количеством разработчиков MooTools над этим и (un) неожиданно обнаружил, что большинство думает, что MooTools редко нуждается в чем-то подобном. Я с ними согласен. Единственным зияющим отверстием является контроллер вида с шаблоном, но есть довольно много решений.
Дело в том, что вы не можете напрямую сравнивать структуру MVC с MooTools, это не то же самое. Вообще. Вы можете сравнить так называемые конструкторы моделей и классы.
Я потратил некоторое время на изучение различных решений и шаблонов MVC, чтобы узнать, может ли наше новое приложение быть сформировано в форме "лучшей практики".
В принципе, я попробовал backbone.js(с адаптером mootools и без него), и было неудобно использовать его после MooTools - это было похоже на шаг назад. Когда я говорю использование, я не имею в виду, что я не могу его использовать, но ему неловко расширяться и развиваться. Я уверен, что это просто для того, чтобы испытать, хотя еще предстоит прочитать все примеры шаблонов магистральных сетей.
Типичная проблема, с которой я столкнулся - хотел иметь специальное свойство Model, которое сообщает ему использовать localStorage для извлечения/сохранения. Непонятно, как - примеры, как правило, показывают, что вы можете либо маршрутизировать Backbone.sync
на тот, и на другой, но не на оба одновременно. Я должен был фактически украсить функцию и расширить ее, сохраняя исходную ссылку, если модель не требует localStorage. НЕ лучший/самый очевидный шаблон для поддержки и оставляет меня зависимым от их изменений, не нарушая моего кода.
В MooTools я бы просто расширил мой класс Model и мог определить собственное свойство класса Mutator (например, Binds
или Implements
). Готово. Напишите, что вы знаете, говорят, и не зря...
Другая проблема - она тесно связана с данными, и вы не можете повторно использовать модели, подобные классам - например, пользовательская модель загружает пользователя и визуализируется через представление User Edit. Затем вы хотите создать нового клиента, и вдруг вы не сможете повторно использовать старый объект, который легко и просто визуализирует тот же вид, но с пустыми значениями. Я думаю, что это также будет связано с неопытным с моей стороны или плохой архитектурой.
Ember.js Я нашел немного больше moo-ish в качестве интерфейса, хотя он не совсем щелкнул. Честно говоря, позвоночника было меньше проблем с настройкой.
Есть и другие попытки. Composer является одним - снова для mootools, но он слишком сильно пытается стать основой и написан людьми, которые относительно новы для структуры, поэтому я бы не назвал это зрелый. Нокаут и т.д. Там есть новый каждый день, буквально.
Гаррик Чьюнг выпустил фреймворк под названием Neuro, который имеет огромный потенциал.
Я написал Epitome - полную реализацию MVP, основанную на классах и событиях и завернутую в модули AMD, не стесняйтесь ее проверить. Он также поставляется с разработчиком, создателем документации и множеством полезных свойств, чтобы вы начали.
SeanMonstar выпустил Shipyard, который используется палубой Mozilla Flight Deck - http://seanmonstar.github.com/Shipyard/. Принимая во внимание, что это не родные mootools, он mootools-ish с классом mootools и т.д. - только без расширения аборигенов, поэтому отличная альтернатива.
BTW, попробуйте irc.freenode.net #mootools или список рассылки, и вы всегда получите хороший ответ.
В любом случае, достаточно на MVC. Вопросы о MooTools были сделаны бесчисленное количество раз. Ненавистники будут ненавистниками. Те, кто его любит, не оглядываются назад. Если вы программист с фона ООП или ищете что-то, что хорошо относится к узорам, сделайте себе одолжение и придерживайтесь его. Увлекательные времена впереди. Дорожная карта для 1.5: AMD, для 2.0 (ака, Prime) Опция прототипа объекта-хоста. Это были две самые большие точки разговора в глазах критиков. Больше не "грязных" прототипов, поэтому люди могут продолжать использовать для... в петлях неправильно на не-объектах и без проверок hasOwnProperty
. В любом случае...
Другие вещи, о которых можно беспокоиться, могут иметь значение. Например, размер "сообщества". Я думаю, что здоровое сообщество - это замечательная вещь, но даже если вы посмотрите на jquery, количество фактических вкладчиков и пользователей невелико. Соотношение качества CODE и хороших эффектов плохо. Плагины, которые вы можете использовать - многие из них плохо написаны или мертвы и неподдерживаются. Когда вы рисуете линию, она намного менее гламурная, чем вы думаете!
Я не говорю, что у mootools или других фреймворков нет этих проблем. Справедливости ради стоит сказать, что люди MooTools и особенно основные разработчики довольно частные и менее вокальные в том, что они делают. Он может отправить неправильные впечатления, я не знаю. Это, безусловно, не jQuery. В конечном счете - если у вас есть ресурсы и ноу-хау, используйте то, что лучше всего работает и что будет масштабироваться. Есть даже те, которые используют coffeescript и клянутся им. Кто я должен судить...
В интересах полного раскрытия - вам будет намного труднее найти достойного mootools dev при наборе. Нельзя игнорировать...