Про демосайт плагина, его тестирование и версии PHP
Вот неоднократно уже поднималась тема про то, что-де нужно делать демосайт плагина, что нужно, якобы, какую-то песочницу делать, где все плагины гоняться будут и все такое. И если на таком демосайте и в «песочнице для плагинов» все красиво работает, то и у юзера все будет чики-чики.
Ага, щаз! Ниже только один из примеров, почему это так работать не будет — из сегодняшнего ночного бдения.
На одном сайте никак не хотел запускать мой плагин — на чистом ЛС на дефолтном шаблоне ломается сразу же главная! Сначала я скептически был настроен — однозначно чего-то у пользователя не так. Нет, я понимаю, что могут быть баги, допускаю, что в каких-то местах плагина я чего-то «недочистил», что могут быть проблемы с совместимстью с другими плагинами и другими скинами, но вот чтоб так — не может быть!
Но факт оставался фактом — баг есть. Я поднял у себя чистый ЛС с нуля под Денвером — работает. Проверил под ОпенСервером на PHP 5.2, 5.3 и 5.4 — работает. Снес и заново все поставил на линуксовой машине — работает. А у пользователя — не работает!
Получаю доступ к его хосту и начинаю долго и мучительно дебажить. Опуская детали — в итоге докопался до причины: баг PHP #47801 (__call() accessed via parent:: operator is provided incorrect method name), который был исправлен в релизе PHP 5.2.11. А у пользователя стоял PHP 5.2.9!!! А в требованиях к LiveStreet сказано, что «Для корректной работы LiveStreet необходим PHP не ниже версии 5.2.1».
А вот теперь попробуйте меня хоть кто-нибудь убедить, что всяческие демо- и тестовые сайты решат проблему корректной работы плагинов.
Да, и кстати, заранее прошу прощения у всех пользователей моих плагинов, но я, пожалуй, в ближайшее время установлю свою планку требований к PHP, которая будет явно выше официальной.
Ага, щаз! Ниже только один из примеров, почему это так работать не будет — из сегодняшнего ночного бдения.
На одном сайте никак не хотел запускать мой плагин — на чистом ЛС на дефолтном шаблоне ломается сразу же главная! Сначала я скептически был настроен — однозначно чего-то у пользователя не так. Нет, я понимаю, что могут быть баги, допускаю, что в каких-то местах плагина я чего-то «недочистил», что могут быть проблемы с совместимстью с другими плагинами и другими скинами, но вот чтоб так — не может быть!
Но факт оставался фактом — баг есть. Я поднял у себя чистый ЛС с нуля под Денвером — работает. Проверил под ОпенСервером на PHP 5.2, 5.3 и 5.4 — работает. Снес и заново все поставил на линуксовой машине — работает. А у пользователя — не работает!
Получаю доступ к его хосту и начинаю долго и мучительно дебажить. Опуская детали — в итоге докопался до причины: баг PHP #47801 (__call() accessed via parent:: operator is provided incorrect method name), который был исправлен в релизе PHP 5.2.11. А у пользователя стоял PHP 5.2.9!!! А в требованиях к LiveStreet сказано, что «Для корректной работы LiveStreet необходим PHP не ниже версии 5.2.1».
А вот теперь попробуйте меня хоть кто-нибудь убедить, что всяческие демо- и тестовые сайты решат проблему корректной работы плагинов.
Да, и кстати, заранее прошу прощения у всех пользователей моих плагинов, но я, пожалуй, в ближайшее время установлю свою планку требований к PHP, которая будет явно выше официальной.
58 комментариев
Релизная версия пхп на данный момент — 5.4.9 (+ 5.3.19 с ним одновременно), и 5.5 в альфе уже тестируется.
Обосновывать свой принцип они как то обосновывают?
Я попросил на днях хостера, он обновил до 5.3.3. Конечно со многими сайтами пришлось «помучаться», кеш почистить и тд, но за день управился.
на демо лс-а (тут на сайте делается колонка с минимальными требованиям, пхп и тп и тд)
на демо сайте дается демо юзер админ, и все плагины каталога залиты внутрь
юзер входит в админку
активирует те плагины которые у него на хосте (другие в демо выключает)
и смотрит как ведет себя лс
в чем проблема то?
если все плагины залить на демо
и дать возможность включать выключать их выборочно и смотреть пашет или нет
все вопросы отпадут. я зашел в демо врубил 5 плагинов и 6 который хочу купить
и гляжу что не пашет
и все дела
2) Вот ты зашел на такой демо-сайт в админку и начал выборочно плагины включать/выключать, и мне в это же самое время приспичило делать то же самое. И еще парочке юзеров… И каков будет результат? Каждый будет охреневать — чо это с сайтом делатся?
3) Да и вообще — админ сайта не только плагины включать/выключать может, но и еще много разных других вещей делать. Будем верить во вселенскую благодать и тотальное благородство всех юзеров на свете?
2) ну ей богу неужели тут тысячный онлайн? ограничивайте вход админа 1 активным соединением на 10 минут например. по очереди.
3) ограничте только вкл\выкл.
2) при таком подходе один негодяй сможет заблокировать на продолжительное время
3) это не решает проблемы, например, с плагинами, которые загружают на сайт файлы и т.п.
Всегда будет большая вероятность критической дыры в одном из плагинов и слива всех плагинов в паблик.
Реализация подобного демо на практике достаточно сложно и содержит огромное количество подводных камней.
По п. 2 и 3 — теоретически можно пойти таким путем, но хочу посмотреть на того, кто этот гемор взвалит на себя добровольно. К тому же функционал многих плагинов — это и расширение функционала админа сайта тоже.
Если бы плагины выпускались исключительно нами, а не большим кругом разработчиков, то проблемы бы в демо не было.
ведь либо покупать от одного разраба его плагины
либо не покупать вообще?
выходит что если я купил 10 плагинов то они не будут работать друг с другом? смысл клепать 1 плагин на 1 сайт? я вас не понимаю.
у меня на проекте было 15 купленных плагинов, и единственная проблема была в верстке, ну и екшен на екшен накладывались. но это не глобально…
но да, вы правы. я вас понял… тогда тупик, если я владелец 5 плагинов и беру 6 — я беру кота в мешке, вдруг оно не работает я покупаю зря. вот отсюда и конфлихт.
Нет, не всегда все так печально. Просто заранее нельзя быть уверенным, что любые комбинации плагинов всегда будут работать друг с другом без проблем. И нет какого-то верного способа легко и просто это узнать, кроме как собрать всю эту комбинацию на рабочем хосте и проверить.
Как ни печально, но это так
Как видит стандартный потенциальный покупатель текущую ситуацию:
Что есть сейчас:
1. Есть каталог сферический плагинов в вакууме.
2. Есть цена.
3. Есть описание сколь более-менее детальное.
4. Есть рейтинг разработчиков на этом сайте (причем, нет никакой гарантии, что ник разработчика в каталоге и ник тут — совпадают, учетки то разные). Причем, этот рейтин формируется тут только авторитетным костяком сообщества. Обычный рядовой пользователь/покупатель не может оценить разработчика, так как силенок не хватит.
Чего нет:
1. Нет никакой гарантии, что плагин будет работать. Сами разработчики об этом говорят. И этот пост — не первый. Но суть не в том. Нет никакой гарантии, что разработчик найдет время/приложит усилие для удовлетворения
2. Нет никакой гарантии на поддержку планина разработчиком.
3. Нет никакой гаранти, что разработчик сможет помочь в работе плагина, например, если по какой-либо причине он заболел/уехал/отсутствует.
4. Нет никакой ответственности каталога перед покупателем на гарантию качества товара. Последние события это показали.
5. Нет никакой возможности посмотреть что же это за плагин, и как он работает (за редким исключением, когда разработчик позаботился о демке).
6. Нет никаких гарантий совместимости планин-плагин. Это нормально, но это должно быть задокументированно в сводной таблице совместимости. Понятно, что разработчик не может протестировать все плагины со своим, но можно предусмотреть, хотя бы, возможность отображения информации о 100% несовместимых плагинах — по признаку совместного делигирования/переопределения одних и тех же методов классов. И это можно сделать автоматически в каталоге.
7. Нет гарантии возврата средств.
И что видит стандартный потенциальный покупатель, не зарегистрированный в сообществе, а только увидивший каталог? Набор котов в мешке без каких-либо гарантий, о чем говорят и сами авторы.
К чему я это…
Это не мое мнение, это мнение независимого человека, которого попросили оценить микроклимат маркета LS в плане стабильности для клиента и адекватности.
Это то, что отпугивает потенциальных покупателей и будущих пользователей LS.
«Уходят» — значит находят альтернативные решения, какие — это уже другой вопрос, и есть ли достойная альтернатива, я не знаю (меня полностью устраивает LS пока, и я не являюсь покупателем, все необходимые фичи — делаю сам). Но то, что рядовой пользователь оценивает товар по первичному восприятию — этот факт, думаю, вы не будете отрицать. И станет он покупателем, или останется зрителем — это задача маркета, правил публикации, политики сообщества. Но она как-то странно проявляется.
Если не привязываться к аналогам LS, то, на мой скромный взгляд, лучшая организация структуры и логики — у калатога WP. Пример плагина из каталога WP.
Ну и авторы большинства платных плагинов имеют свою страницу/сайт саппорта и продажи/апгрейда до платной версии, что снимает обязательства с каталога отвечачать за продажи. В каталоге публикуется стандартная версия, продажи – про версии. Т.е., пользователь может первично оценить, с некой долей вероятности, работоспособность и совместимость плагина с другими, перед апгрейдом до про.
Кстати, имея некую критическую массу пользователей LS, можно было бы составить таблицу совместимости плагинов силами пользователей. Как, например, сделано в том же WP относительно совместимости версий движка и плагина.
Поэтому давайте сначала сосредоточимся на плагинах платных — они есть в WP-каталоге? Там есть хоть какая-то часть тех гарантий, что Вы сформулировали? Какая? Или, может, в каталоге другого какого-то оупенсорсного движка? Мне важно понять (действительно важно, без стеба) — это просто Ваши хотелки, которые — увы! — до сих пор никем и нигде не реализованы или есть конкретные примеры их реализации?
На счет «хотелок» — скорее это действительно так, как вы описали. В полной мере, реализованных хотелок, которые написал, — не видел нигде. В формате open sourcre это не реально. Тут эти хотелки, в неком приближении, формируются только на личной ответственности разработчиков, ну и неких обязательствах (условных) перед каталогом.
Знал бы прикуп, жил бы в Сочи :)
2) У всех свой дизайн
3) У всех своя версия ПО
Всего НЕ учесть. Нужно тестировать плагин на дефолтном шаблоне, с заявленными требованиями движка.
Предоставлять демо заказчику. Все остальное подбивка плагина под конкретно Ваш сайт, это отдельная работа, и оплачивается отдельно.
Типа:
lsdemo.com — список всех разработчиков и их плагины
avadim.lsdemo.com — список всех плагинов avadim
avadim.lsdemo.com/acepanel — плагин админки
avadim.lsdemo.com/acewidget — плагин управления виджетами
или типа того…
Суть демо не в том чтобы посмотреть как плагин работает с тем или иным плагином или сервером, а вообще посмотреть все возможности этого плагина. Если он не будет работать на каком-то другом сервере или будет глючить с каким-то чужим плагином, это проблема не разработчика. Но, по возможности он может помочь разобраться в этой проблеме. Это в его интересах выявить в чем может быть глюк.
Т.е. Вас лично устроит, если я жестко опишу конфигурацию среды, в которой разрабатываю и тестирую плагины, и буду отказывать в любых претензиях, если у Вас (как у покупателя) хоть малейшие отклонения будут?
Но с другой стороны, делегирование одних и тех же методов — один из главных признаков несовместимости плагинов. Может это можно использовать с пользой?
Когда-то озвучивал идею — каталог автоматически (через какой-либо инфо-файл плагина, где перечислены все делегирования и тп) определяет какие методы делегируются плагином, и потом проходит по базе всех плагинов на нахождение делегирования этих же методов. Если соответствия найдены, эти плагины будут 100% несовместимы, о чем выводится инфа пользователю при покупке (список всех 100% несовместимых с данным плагинов).
ИМХО. Уменьшится кол-во недовольных непредупрежденностью о совместимости.
Понятно, что этот способ не гарантирует, что со всеми иными плагинами будет полная несовместимость, но, все же, немного сузит круг недовольных.
И покупатель уже предварительно, перед покупкой, будет знать об этом.
а я вот недавно про**ся 2 дня с переписыванием qipsmiles и tinymce+, чтоб они могли работать в паре )
в итоге я не смог понять, почему именно на клиентском сайте нихрена не пашет, ведь на локале у меня всё прекрасно отрабатывает и причин вообще никаких не видно.
в итоге, клиент (молодец) разобрался сам!!! (всё дело в бажной вёрстке было)
ну а по части мин.требований: сколько я помню, вроде давно еще поднимали планку пхп до 5.2.6 (еще при переходе с 0.4.2 на 0.5*) или оно мне только почудилось (?)
з.ы. есть еще моного всяких слов у меня, но надобно не в комменет это писать, а скорее в топике.
з.з.ы. а еще неплохо бы мини-конфу провести оффлайновую с целью составления всеприемлемого роадмапа по LS. ort , к сожалению, далеко от мск, а я в мск ничегошеньки не понимаю. кто бы занялся организацией? идеальным было бы помещение типа тихой институтской аудитории с проектором и хорошей кафешкой в одношаговой доступности на кофе/мясо-брейк.
Ситуация с гарантией того, что плагин должен заработать после покупки кажется мне утопичной. Он может заработать, но может и не заработать. Оба варианта, особенно второй имеют право на жизнь.
Мое мнение такого, что плагин в каталоге должен быть протестирован на чистой сборке движке и выложен на демо сайт. Если на демо сайте он работает, то значит работа, за которую можно брать деньги выполнена. Есть товар и есть возможность его «пощупать» на демо сайте.
В случае если нужно адаптировать плагин для работы с другими плагинами, то это уже другая работа и она должна быть оплачена. Либо это делают оба разработчика и тратят свое время в угоду заказчику, либо работу оплачивает заказчик.
Никакие технологии, документы, механизмы и прочее не заменят человеческого общения. Договаривайтесь, общайтесь с покупателями и тогда все будут в выигрыше. Ведь довольный клиент может сказать другим, может оставить положительный отзыв, а это все увеличит ваши продажи.