Масштабирование своего скрипта: плагины, пользовательские функции и т.д.
Всем доброго времени. Сразу оговорюсь, что вопрос достаточно философский=). Недавно столкнулся в работе с интересным (для меня) вопросом. Начать стоит с того, что в процессе работы с сайтом столкнулся с проблемой, что иногда выбрать готовый скрип (например Jquery плагин) бывает крайне сложно. Так скажем выбрать слайдер - означает перебрать тонны бесполезного хлама, перегруженного избыточным функционалом. Рано или поздно возникает желание написать свой. Да, тут неуместны аргументы, вроде "зачем, их и так много". Это было желание ради собственного опыта. Итак, я перешел к разработке. Первая версия слайдера удалась, получилось работающее решение. Но, вдумчивый анализ привёл к выводу, что решение, как и многие остальные громоздкое, неудобочитаемое, немасштабируемое и так далее. Я начал работать над второй версией. Получилось собрать компактное ядро, которое реализует базовую логику слайдера: переключение слайдов, переход к слайду по его номеру, работа с таймерами и еще немного полезных фич. Код получился чистый (минимум работы с объектами страницы, максимум логики) и понятный и, пожалуй, он сейчас очень похож на верное направление. Но тут я застрял в тупике. Я бы хотел оставить ядро в таком же чистом виде и весь дополнительный функционал реализовывать во внешних скриптах, которые модифицируют ядро, чтобы добиться нужного поведения. Например, вывод навигации по слайдам, подключение мобильных событий (swipe), ну и всё, что дальше душе угодно. Тупик в том, что я пока не понимаю, с какой стороны подойти к решению этой задачи. Возможно, правильно будет переписывать методы ядра из вне, делая extend, но это пока не выглядит изящным решением. Собственно вопрос : если кто сталкивался с подобными задачами, поделитесь опытом, или просто укажите направление для изучения. Я понимаю, что развёрнутый ответ на этот вопрос - это целая статья, так что вполне подойдёт "посмотри-ка вот этот паттерн" или "глянь-ка мой код".
Если кому интересно, то сам код ядра можно найти тут: http://test.krasnodar-bose.ru/assets...ui.slideset.js (работает на jQuery) Пример работы скрипта (пока голого ядра) тут: http://test.krasnodar-bose.ru/projec...tommi-lee.html Всем, кто дочитал до конца, большой респект. Не умею короче излагать мысли=). PS. Вообще, последние много лет я работаю веб-дизайнером и не могу сказать, что в программировании я мега-крут. Так что, если кто ещё и код оценит - буду ну просто прыгать от счастья). |
у тебя странный подход. хочешь избавиться от хлама, при этом реализуешь "чистое" ядро посредством кучи хлама, в виде jq
|
Формально, это так. В этом есть свои странности и, по большей части, я использовал jq для привычного мне доступа к элементам и штук типа extend. В дальнейшем, планирую уйти от jq. Но, согласитесь, это вот ну ни капли не отвечает на мой вопрос). Хотя я с вами согласен.
|
Здесь глянь на $X.clone
Ну и посмотри на код https://github.com/Svoloch/xpath-tools вообще. Для общего развития можно так же посмотреть на $F.inherit вот тут. |
SV0L0CH, Спасибо, буду смотреть
|
Часовой пояс GMT +3, время: 17:13. |