Попытка превратить этот плагин jQuery slideShow в аккуратный и модульный "модуль"

Я сделал слайд-шоу JQuery плагин как $.fn.slideShow который работает так:

.slideShow (int transitionDelay, string transtionType, string slideTag)

Как вы можете себе представить, ключевые слова int или string не существуют в javaScript, я просто поместил их там, чтобы указать тип данных для каждого аргумента. Первым необходимым аргументом является (в миллисекундах) задержка перехода на слайд AKA. Второй аргумент является необязательным. Указывает тип перехода (по умолчанию: обычный AKA без перехода). Возможные входные данные для этого: push, normal / no-transition и fade; которые являются различными анимациями перехода на слайде. Третий и последний аргумент указывает, в каком HTML-теге содержатся слайды (по умолчанию: li). Это слайд-шоу отображается в селекторе, заданном плагину. Теперь, когда у вас есть общее представление о том, что делает мой плагин, давайте поговорим о проблеме.

Видите ли, есть два основных способа подойти к написанию кода. Один из них - сделать его настолько грязным, чтобы никто не мог его прочитать, а другой - сделать его аккуратным и модульным. Но сделать код аккуратным и упакованным модулем непросто; потому что вам нужно продумать наиболее пригодный для повторного использования способ хранения переменных и гораздо больше способов "модуляции" кода.

Видимо, я не знаю, как я могу модульно кодировать в этой ситуации. У меня есть множество глобальных переменных повсеместно, много повторно объявленных переменных и т. Д. Что было бы лучшим подходом в моем случае (не на основе мнений или предпочтений, а скорее на основе реальных фактов и производительности), чтобы превратить плагин jQuery как это, в полнофункциональный модуль? Поможет ли использование модульных шаблонов, таких как IIFE? Я также видел модульные интерфейсы, такие как browsify, но я не совсем уверен, нужно ли начинать или, по крайней мере, как это сделать.

1 ответ

Решение

На более высоких уровнях дебаты о производительности могут стать в значительной степени академическим упражнением с множеством расчесок. Я бы порекомендовал принять шаблон модульного плагина, который вы понимаете и можете структурировать так, как вы можете объяснить, таким образом читатели могут адаптироваться. Рекомендовал бы https://toddmotto.com/mastering-the-module-pattern/ как лучшее объяснение модульного шаблона, чем я мог бы предоставить здесь, вместе с более подробным обзором здесь: https://addyosmani.com/resources/essentialjsdesignpatterns/book/

Дополнительные методы шаблонов здесь: https://www.viget.com/articles/jquery-plugin-patterns. Может быть проще прокомментировать более конкретный пример кода / запроса

Другие вопросы по тегам