Я часто слышал, что jQuery принял некоторые плохие API-решения. Хотя jQuery не является моей любимой библиотекой, это библиотека, которую я использовал чаще всего, и мне трудно указать конкретные ошибки в дизайне API или то, как оно могло быть улучшено.
Какие части jQuery API могли бы быть выполнены лучше, , как могли бы быть реализованы разные и почему могла бы быть лучше реализована другая реализация?
Вопрос распространяется как на индивидуальные детали низкого уровня API, так и на данные высокого уровня API. Мы говорим только об ошибках в API, а не о недостатках в дизайне/назначении библиотеки высокого уровня, jQuery по-прежнему является библиотекой DOM-манипуляций, ориентированной вокруг механизма селектора.
Из-за необходимости замораживания API в популярных библиотеках jQuery застрял в нем в текущем состоянии, и разработчики отлично справляются. Как видно из недавнего изменения .attr
vs .prop
, разработчики не имеют гибкости в изменении любого из своих дизайнерских решений (что является позором!).
Один конкретный пример, о котором я могу думать, будет
$.each(function(key, val) { })
vs
$.grep(function(val, key) { })
что достаточно запутывает, что я должен дважды проверить частоту параметров.
Пожалуйста, не сравнивайте библиотеку jQuery с полноценными фреймворками, такими как dojo и YUI, и жалуйтесь на отсутствие функций.