Я часто слышал, что 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, и не жалуйтесь на отсутствие функций.