Хочу поделиться историей о том, как мы реализовали виджет комментариев «ВКонтакте» на нашем сайте и что из этого получилось.
Скажу сразу, мое уважение к разработчикам этого виджета упало очень и очень низко, практически пробив уровень плинтуса - в день программиста это будет очень символично.
Обновлять: Друзья, всем спасибо за участие - буквально вчера были исправлены основные ошибки в виджете; Думаю, это исключительно благодаря публикации здесь.Но обо всем по порядку.В моих глазах Хабр в очередной раз подтвердил свою репутацию IT-ресурса №1, надеюсь, что и в ваших тоже.
Еще раз спасибо всем сторонникам, а также разработчикам виджета!
Виджет анонсировал Павел Дуров в пятницу вечером, более чем в 2 часа.
В пятницу днем мы попытались развернуть этот виджет: одна страница только с кодом виджета, другая в «песочнице», то есть на тестовой версии сайта.
JSON-проблема
«Чистая» страница (только с кодом виджета) нормально открывалась во всех браузерах, на которых мы тестировали (IE, Firefox, Opera, Safari, Chrome), теперь настала очередь песочницы.IE первым выдал желтую карточку, пожаловавшись, что какой-то объект вдруг оказался нулевым.
Хорошо, давайте загрузим Eclipse и разберем минимизированный код. Наш сайт для некоторых вещей использует mootools, поэтому было очевидно, что с этим возникла проблема.
Так и случилось — mootools считает, что объект JSON должен быть представлен не так, как ожидает виджет. Вывод 1: Распространенность mootools гораздо выше, чем виджетов.
Неужели нельзя было проверить перед выпуском? Решение 1: мы собираем кастомные mootools, без включения JSON, к счастью мы не использовали mootools для JSON, и в результате ничего на сайте не повредилось.
Проблема с браузером
Не успели мы выкатить изменения в релиз, как к нам начали поступать жалобы от пользователей — у некоторых страница с виджетом уходила в бесконечное обновление, у других просто зависала.Поскольку мы стараемся обеспечить максимальную совместимость сайта, изменения были немедленно отменены.
Стало понятно, что необходимо тестирование покрытия, то есть виджет вел себя корректно не во всех браузерах.
Вывод 2: если виджет не поддерживает некоторые браузеры, то об этом можно было бы предупредить, а еще лучше - ВКонтакте мог бы сам проводить тесты покрытия.
Решение 2: возьми версии браузеров по статистике за год и посмотри, что будет несовместимо, другого пути нет. И самостоятельно писать браузерозависимый код на стороне сайта.
И вот тут начали появляться косяки.
IE6 и IE7, если виджет видел незалогиненный человек «ВКонтакте», вызывали постоянную перезагрузку страницы; Этот глюк до сих пор не исправлен.
Хотите проверить его? Легко.
Возьми IE7 и попробуй открыть его статья с сайта «Взгляд» (после выхода из ВКонтакте).
Более того.
В Опере 9 виджет просто не работал.
Opera 9.5 вылетает насмерть при попытке открыть сайт с виджетом.
9.64 уже работает. Safari 3.0 также вызывает бесконечные перезагрузки страниц.
Firefox 2.0 также вызывает бесконечные перезагрузки.
Да, я понимаю, вы скажете, что мало кто использует старый Safari и Opera с Firefox, но извините, пользователей с IE6 и IE7 по-прежнему предостаточно.
Так почему ты не рассказал?
Теперь попробуйте связаться с кем-нибудь из программистов ВКонтакте и объяснить это.Те, кто это пробовал, знают, что это сложнее, чем лазить по вереску.
В свое время у ВКонтакте была достаточно серьезная проблема с модерацией iframe-приложений, как вы думаете, они смогли тогда с кем-нибудь связаться? Ни с кем.
Социальная сеть ВКонтакте позволяет легко связаться с кем угодно, кроме разработчиков.
Когда у нас были проблемы с виджетами Яндекса, мы любезно решали проблемы через обычный телефон, что было очень удобно.
Аналогичная ситуация наблюдается и сегодня.
Мне нравится виджет, который они сделали, но блин, сделали они его не очень и на контакт не идут. Надеюсь, данная публикация поможет обратить на это внимание, а также поможет тем, кто решит внедрить данный виджет у себя дома.
Спасибо за прочтение; Еще раз с Днем программиста, друзья! Теги: #Социальные сети и сообщества #вконтакте #vkonakte
-
Полезные Ресурсы По Изучению Sql
19 Oct, 24