Утверждения являются операторами, разрешающими Вам протестировать любые предположения, которые Вы могли бы иметь в своей программе. Это особенно полезно для документирования логики программы (предварительные условия и постусловия). Утверждения, которые обычно приводят к сбою ошибки периода выполнения броска и знаки, что что-то ОЧЕНЬ неправильно с Вашей программой - Ваше утверждение, отказавшее, потому что что-то Вы приняли, чтобы быть верными, не были. Обычные причины: в логике Вашей функции существует дефект, или вызывающая сторона Вашей функции передала Вас неправильные данные.
Лично, когда я создаю плагин, я стараюсь сделать его как можно меньше зависимым от других ресурсов, чтобы избежать этой проблемы. Иногда вы не можете избежать использования внешних таблиц стилей, и в этом случае я всегда помещаю их в другие мои файлы CSS, даже если они изначально включены в ту же папку, что и плагины. Это позволяет избежать двусмысленности при попытке решить, какие таблицы стилей куда следует поместить и т. Д. Вам все равно придется вручную включать их. Если у плагина есть какие-либо зависимости, они помещаются в папку JS, организованную таким же образом, как и другие плагины. Изображения, в этом случае, затем будут идти вместе со всеми другими изображениями.
При создании плагина вы можете сделать его более гибким, разрешив пользователю определять классы, которые применяются к определенным объектам, или позволить пользователю определять структуру того, чем будет управлять плагин. Все это можно сделать, предоставив ему набор хороших значений по умолчанию, и при этом как можно меньше полагаясь на внешние ресурсы.
Что касается того, были ли определены лучшие практики для этих ситуаций, я еще не нашел их. Я нашел руководство по созданию плагинов только на сайте jQuery: http://docs.jquery.com/Plugins/Authoring .
РЕДАКТИРОВАТЬ:
Что касается разъяснения организации зависимостей плагинов:
Когда, скажем, у вас есть jquery.x.js и jquery.y.js. Оба они зависят от jquery.z.js. Я всегда помещал jquery.z.js в ту же папку, что и jquery.x.js и jquery.y.js. Это позволяет избежать дублирования и любой путаницы, связанной с нарушением организационных правил. Итак:
Обычно я организую свои папки следующим образом: