Всем доброго времени. Сразу оговорюсь, что вопрос достаточно философский=). Недавно столкнулся в работе с интересным (для меня) вопросом. Начать стоит с того, что в процессе работы с сайтом столкнулся с проблемой, что иногда выбрать готовый скрип (например Jquery плагин) бывает крайне сложно. Так скажем выбрать слайдер - означает перебрать тонны бесполезного хлама, перегруженного избыточным функционалом. Рано или поздно возникает желание написать свой. Да, тут неуместны аргументы, вроде "зачем, их и так много". Это было желание ради собственного опыта. Итак, я перешел к разработке. Первая версия слайдера удалась, получилось работающее решение. Но, вдумчивый анализ привёл к выводу, что решение, как и многие остальные громоздкое, неудобочитаемое, немасштабируемое и так далее. Я начал работать над второй версией. Получилось собрать компактное ядро, которое реализует базовую логику слайдера: переключение слайдов, переход к слайду по его номеру, работа с таймерами и еще немного полезных фич. Код получился чистый (минимум работы с объектами страницы, максимум логики) и понятный и, пожалуй, он сейчас очень похож на верное направление. Но тут я застрял в тупике. Я бы хотел оставить ядро в таком же чистом виде и весь дополнительный функционал реализовывать во внешних скриптах, которые модифицируют ядро, чтобы добиться нужного поведения. Например, вывод навигации по слайдам, подключение мобильных событий (swipe), ну и всё, что дальше душе угодно. Тупик в том, что я пока не понимаю, с какой стороны подойти к решению этой задачи. Возможно, правильно будет переписывать методы ядра из вне, делая extend, но это пока не выглядит изящным решением. Собственно вопрос : если кто сталкивался с подобными задачами, поделитесь опытом, или просто укажите направление для изучения. Я понимаю, что развёрнутый ответ на этот вопрос - это целая статья, так что вполне подойдёт "посмотри-ка вот этот паттерн" или "глянь-ка мой код".
Если кому интересно, то сам код ядра можно найти тут:
http://test.krasnodar-bose.ru/assets...ui.slideset.js (работает на jQuery)
Пример работы скрипта (пока голого ядра) тут:
http://test.krasnodar-bose.ru/projec...tommi-lee.html
Всем, кто дочитал до конца, большой респект. Не умею короче излагать мысли=).
PS. Вообще, последние много лет я работаю веб-дизайнером и не могу сказать, что в программировании я мега-крут. Так что, если кто ещё и код оценит - буду ну просто прыгать от счастья).