// codeart.ru / Вопрос/Ответ / SnappySnoop. Причины моего молчания.

SnappySnoop. Причины моего молчания.

Автор: Evgeny Sergeev

В последнее время мне стали очень часто задавать вопрос: “Что со SnappySnoop, не закинул ли ты этот проект?”. В этом посте я попытаюсь дать ответ на данный вопрос.

В настоящее время работы над Снапом временно приостановлены. Причин тому несколько:

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

Во-вторых, много времени стал занимать блог. Честно говоря, до сих пор пытаюсь определиться о чем конкретно я пишу. У меня нет одной конкретной темы, о которой бы хотелось писать и писать. Вместо этого имеет место быть интерес ко многим различным по своей сути вещам, которые, как мне кажется, имеют слабое отношения к программированию. А так как блог все же называется “codeart”, то складывается ощущение, что данным темам не место на страницах этого ресурса.

Чтобы хоть как-то примириться со свой совестью я решил создать рубрику - “Офтопик”, в которой и буду публиковать весь “не формат” данного блога. Кроме этого, меня постоянно глодало чувство неудовлетворенности по поводу внешнего вида и организации материалов на блоге. В конечном итоге они тоже были изменены, но на это потребовалось время, которое пришлось оторвать от Снапа.

В-третьих, код Снапа требует значительного редизайна. Это связано с тем, что долгое время я писал как бог на душу положит. Просто, чтобы проверить работоспособность своих идей. Сейчас же хочется иметь более строгую и логически верную структуру. Чтобы можно было привлекать других людей в разработку Снапа. И чтобы им не пришлось ломать свой мозг в тщетных попытка понять, что делает тот или иной модуль. Уже несколько человек предложили помочь, а мне стыдно показать свой неряшливый код.

Редизайн мне всегда давался нелегко, очень трудно заставить себя переделывать работающий код, в котором сам худо бедно можешь разобраться. При этом я понимаю, что если буду продолжать в том же духе, то через некоторое время сам буду смотреть на исходники и думать: “Какой идиот мог это написать!?”. Поэтому решение переписать исходники принято окончательно и бесповоротно. Осталось дело за малым - заставить себя работать.

Сейчас я подумываю использовать библиотку jQuery для построения пользовательского интерфейса. Но меня смущает тот факт, что на многих сайтах используются довольно старые версии этой библиотеки и некоторые функции в них реализованы несколько иначе, чем в последних версиях. Я не знаю как в таких случаях наилучшим образом загрузить новую библиотеку, чтобы не порушить логику работы сайта (ведь если jQuery загружена, то она для чего-то нужна?). В частности меня волнуют функции width и height, которые я использую наиболее часто, для определения ширины окна. В более ранних версиях ими можно было задавать только ширину и высоту объектов, а получить текущие значения было невозможно.

Правда есть другой вариант - использовать вместо jQuery свою библиотеку, которая уж точно будет уникальной и не будет конфликтовать с уже загруженными на сайт скриптами. Я даже накидал небольшой код этой библиотеки, в основу положив ту же идею построения цепочек вызовов, что и в jQuery. Но опять же смущает, тот факт, уже сейчас имеет множество хаков, котрые позволяют ей работать с большим количеством браузеров. Сдирать их один в один не хотелось бы, а делать повторно ту же работу, что и Джон Рейзиг (создатель jQuery) не очень то интересно.

Вот так и мучаюсь вопросом, что лучше :-)

Кроме этого ведется работа над модулями для Снапа, такие например, как регистрация и авторизация пользователей. Возможно, лучше было бы взять, модули от старых проектов, но мне хочется учесть прошлые ошибки и сделать Снапа на порядок более качественным, чем все остальные мои работы.

В заключение хочу еще раз сказать, что работа на SnappySnoop обязательно будет возобновлена. Просто нужно проявить немного терпения.

  1. Опечаточка в 4м абзаце: “до сих поп пытаюсь”

  2. Начнёшь писать свлю жс-библиотеку и в итоге выйдет как с серверным кодом - получится каша и пожелеешь что сразу не начал писать нормально, но основе фреймворка того же скажем 8-)

  3. width и height можно написать отдельным модулем (чтобы не зависеть от версии), но целую библиотеку переписывать - адский велосипед, имхо.

    А разве не получается через noConflict подружить разные версии? Я не пробовал никогда, но вроде как должно получится.

  4. ACID Jesus, не думаю, что так получится.

    Николаич, Эм… чего это такого?

    jeka911, ты где пропадал? Целую библиотеку переписывать не придется, многое, что есть в jQuery мне просто не нужно. Ну а подружить две версии не так то просто. Если я не ошибаюсь, то noConflict служит, для того чтобы подружить библиотеки использующие ‘$’ (например Prototype).

  5. Где меня только не было :)

    Как-то мне интересна эта идея стала, провел небольшой тест. Чтоб работало как надо (обе версии), в подключаемой заменил все упоминания “jquery” на “jquery2″. Потом после подключения script src, вызвал - var j = jQuery2.noConflict(); . Т.о. через j - доступна последняя версия (подключаемая), а через $ и jquery - старая (оригинальная которая была на странице). Тестил на 1.1.2 и на 1.2.3.

    Я в лицензиях сильно не разбираюсь, но одна из jquery - MIT, по ней вроде как можно менять код.

    P.S. Николаич - спамер.

  6. jeka911, тогда николаеча в топку :-)

    Я тоже думал насчет смены имени… Но как-то не очень мне эта идея нравится :-)

  7. Да, как-то неспортивно :) согласен.

Leave a Reply

« Результаты борьбы со спамом после первого дня Несколько слов благодарности »