Про демосайт плагина, его тестирование и версии 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 комментариев

avatar
Я за подъем минимальной планки до php 5.3. Он уже вышел черти знает когда. Даже нигерийские хостеры обновили до 5.3.
Релизная версия пхп на данный момент — 5.4.9 (+ 5.3.19 с ним одновременно), и 5.5 в альфе уже тестируется.
avatar
Да не везде. У меня на некоторых серверах 5.2 и обновляться хостеры принципиально не хотят.
avatar
У грамотных хостеров прямо в панели клиенты могут выбрать версию пхп.
Обосновывать свой принцип они как то обосновывают?
avatar
Старый хостинг, старый клиенты, у которых сайты на php 5.2. Вообщем не хотят, ценят стабильность, консерваторы :)
avatar
Угу, мало того, что мне реально пришлось плагин подгонять под 5.2, 5.3 и 5.4 (под каждой версией PHP возникли какие-то тонкие места), так еще и учитывать нюансы минорных версий? Нет, парни, «такой хоккей нам не нужен» ©…
avatar
Да чего учитывать-то? Я — частный случай. Просто, у меня много сайтов еще на 5.2 сделано и переводить их просто лень. Поэтому держу и этот хостинг. А так, конечно, планку надо поднимать. И это без вопросов.
avatar
Ужас!
Я попросил на днях хостера, он обновил до 5.3.3. Конечно со многими сайтами пришлось «помучаться», кеш почистить и тд, но за день управился.
avatar
Ну почему ужас? Просто ценят своих старых клиентов, и не хотят им делать лишние проблемы. Кому не подходит, идет на другой хостинг. Выбор есть.
avatar
я поддерживаю. ещё мы внедряем автоматические тесты в плагины и в сам LiveStreet travis-ci.org/stfalcon-studio/livestreet — думаю это облегчит тестирование плагинов на разных версиях php и их апдейт к новым версиям LS
avatar
правильно:

на демо лс-а (тут на сайте делается колонка с минимальными требованиям, пхп и тп и тд)

на демо сайте дается демо юзер админ, и все плагины каталога залиты внутрь
юзер входит в админку
активирует те плагины которые у него на хосте (другие в демо выключает)
и смотрит как ведет себя лс

в чем проблема то?

если все плагины залить на демо
и дать возможность включать выключать их выборочно и смотреть пашет или нет
все вопросы отпадут. я зашел в демо врубил 5 плагинов и 6 который хочу купить
и гляжу что не пашет
и все дела
avatar
1) Ну вот в топике я же ясно расписал, в чем была проблема. Т.е. такой демо-сайт не дает никаких гарантий, что точно такая же комбинация плагинов у юзера будет работать правильно. А если все равно гарантий нет, но нафига ресурсы на это тратить?

2) Вот ты зашел на такой демо-сайт в админку и начал выборочно плагины включать/выключать, и мне в это же самое время приспичило делать то же самое. И еще парочке юзеров… И каков будет результат? Каждый будет охреневать — чо это с сайтом делатся?

3) Да и вообще — админ сайта не только плагины включать/выключать может, но и еще много разных других вещей делать. Будем верить во вселенскую благодать и тотальное благородство всех юзеров на свете?
avatar
1) в плагине пишите минимальные требования железа и серва.
2) ну ей богу неужели тут тысячный онлайн? ограничивайте вход админа 1 активным соединением на 10 минут например. по очереди.
3) ограничте только вкл\выкл.
avatar
1) всего не учесть
2) при таком подходе один негодяй сможет заблокировать на продолжительное время
3) это не решает проблемы, например, с плагинами, которые загружают на сайт файлы и т.п.

Всегда будет большая вероятность критической дыры в одном из плагинов и слива всех плагинов в паблик.
Реализация подобного демо на практике достаточно сложно и содержит огромное количество подводных камней.
avatar
1) Так практика как раз и показывает, что если хост клиента соответствует минимальным требованиям — это не дает никаких гарантий. Более-менее это будет работать, если конфигурация у клиента — точно такая же. Что, как ты понимаешь, не реально.

По п. 2 и 3 — теоретически можно пойти таким путем, но хочу посмотреть на того, кто этот гемор взвалит на себя добровольно. К тому же функционал многих плагинов — это и расширение функционала админа сайта тоже.
avatar
Ну я где-то видел это так. Все плагины, которые выходят, устанавливаются на этот демо-сайт самим админом этого сайта. Никто больше ничего не устанавливает, а только пользуются этими плагинами и смотрят, как они в работе себя ведут. Как-то так.
avatar
все плагины 100% не смогут работать между собой + различные шаблоны.
Если бы плагины выпускались исключительно нами, а не большим кругом разработчиков, то проблемы бы в демо не было.
avatar
орт, но можно чтоб те кто выпускают плагины, состоят в блоге разрабов, могли иметь доступ к другим плагинам, и делать под них? не говорю всем давать доступ, но 10 активных кто шлепает, дать и пусть делают такой закрытый демо сайт. 100% нет нигде.
avatar
Если 10 активных хотя бы по 5 плагинов наклепают — это уже 50 плагинов. Если меня попытаться в принудительном порядке тестить совместимость моего плагина со всеми возможными комбинациями — я «ломаю подкидную доску и ухожу из большого спорта». Нах-нах-нах, как говаривали три поросенка
avatar
в таком случае не вижу смысла покупать много плагинов?
ведь либо покупать от одного разраба его плагины
либо не покупать вообще?

выходит что если я купил 10 плагинов то они не будут работать друг с другом? смысл клепать 1 плагин на 1 сайт? я вас не понимаю.

у меня на проекте было 15 купленных плагинов, и единственная проблема была в верстке, ну и екшен на екшен накладывались. но это не глобально…

но да, вы правы. я вас понял… тогда тупик, если я владелец 5 плагинов и беру 6 — я беру кота в мешке, вдруг оно не работает я покупаю зря. вот отсюда и конфлихт.
avatar
в таком случае не вижу смысла покупать много плагинов?
Смысл-то всегда один — расширить стандартную функциональность.

выходит что если я купил 10 плагинов то они не будут работать друг с другом?
Нет, не всегда все так печально. Просто заранее нельзя быть уверенным, что любые комбинации плагинов всегда будут работать друг с другом без проблем. И нет какого-то верного способа легко и просто это узнать, кроме как собрать всю эту комбинацию на рабочем хосте и проверить.

если я владелец 5 плагинов и беру 6 — я беру кота в мешке, вдруг оно не работает я покупаю зря
Как ни печально, но это так
avatar
Ок. Какой выход?
Как видит стандартный потенциальный покупатель текущую ситуацию:
Что есть сейчас:

1. Есть каталог сферический плагинов в вакууме.
2. Есть цена.
3. Есть описание сколь более-менее детальное.
4. Есть рейтинг разработчиков на этом сайте (причем, нет никакой гарантии, что ник разработчика в каталоге и ник тут — совпадают, учетки то разные). Причем, этот рейтин формируется тут только авторитетным костяком сообщества. Обычный рядовой пользователь/покупатель не может оценить разработчика, так как силенок не хватит.

Чего нет:
1. Нет никакой гарантии, что плагин будет работать. Сами разработчики об этом говорят. И этот пост — не первый. Но суть не в том. Нет никакой гарантии, что разработчик найдет время/приложит усилие для удовлетворения
2. Нет никакой гарантии на поддержку планина разработчиком.
3. Нет никакой гаранти, что разработчик сможет помочь в работе плагина, например, если по какой-либо причине он заболел/уехал/отсутствует.
4. Нет никакой ответственности каталога перед покупателем на гарантию качества товара. Последние события это показали.
5. Нет никакой возможности посмотреть что же это за плагин, и как он работает (за редким исключением, когда разработчик позаботился о демке).
6. Нет никаких гарантий совместимости планин-плагин. Это нормально, но это должно быть задокументированно в сводной таблице совместимости. Понятно, что разработчик не может протестировать все плагины со своим, но можно предусмотреть, хотя бы, возможность отображения информации о 100% несовместимых плагинах — по признаку совместного делигирования/переопределения одних и тех же методов классов. И это можно сделать автоматически в каталоге.
7. Нет гарантии возврата средств.

И что видит стандартный потенциальный покупатель, не зарегистрированный в сообществе, а только увидивший каталог? Набор котов в мешке без каких-либо гарантий, о чем говорят и сами авторы.

К чему я это…
Это не мое мнение, это мнение независимого человека, которого попросили оценить микроклимат маркета LS в плане стабильности для клиента и адекватности.
Это то, что отпугивает потенциальных покупателей и будущих пользователей LS.
avatar
молодец, верно
avatar
Это то, что отпугивает потенциальных покупателей и будущих пользователей LS.
Логично было бы продолжить — и потенциальные покупатели и несостоявшиеся пользователи LS уходят… куда? Надо полагать, есть какое-то волшебное место, куда уходят юзеры, и где они имеют все СЕМЬ перечисленных гарантий? Я очень хочу знать, что это за место!
avatar
Это место Юкоз) простота залог успеха)
avatar
Странно, что вас заботят слова «куда», а не «почему». Не ищите поддекста в этих словах.
«Уходят» — значит находят альтернативные решения, какие — это уже другой вопрос, и есть ли достойная альтернатива, я не знаю (меня полностью устраивает LS пока, и я не являюсь покупателем, все необходимые фичи — делаю сам). Но то, что рядовой пользователь оценивает товар по первичному восприятию — этот факт, думаю, вы не будете отрицать. И станет он покупателем, или останется зрителем — это задача маркета, правил публикации, политики сообщества. Но она как-то странно проявляется.
avatar
Странно, что вас заботят слова «куда», а не «почему»
Ничего странного — раз отсюда юзеры уходят из-за того, что нет гарантий, то, значит, они приходят туда, где эти самые гарантии есть. Вот я и хочу увидеть, кто и каким образом обеспечивает эти гарантии
avatar
Если вы об аналогах LS — то там ситуация, бесспорно, аналогичная, либо — хуже. Но не стоит равняться на аналоги, хочется, что бы LS был лучшим.

Если не привязываться к аналогам LS, то, на мой скромный взгляд, лучшая организация структуры и логики — у калатога WP. Пример плагина из каталога WP.
avatar
на мой скромный взгляд, лучшая организация структуры и логики
Ок. А что насчет семи гарантий в каталоге WP?
avatar
WP берет другим. Большинство плагинов там бесплатны. Что снимает необходимость многих гарантий. И как бы объемы плагинов там «немного» другие.
Ну и авторы большинства платных плагинов имеют свою страницу/сайт саппорта и продажи/апгрейда до платной версии, что снимает обязательства с каталога отвечачать за продажи. В каталоге публикуется стандартная версия, продажи – про версии. Т.е., пользователь может первично оценить, с некой долей вероятности, работоспособность и совместимость плагина с другими, перед апгрейдом до про.

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

Поэтому давайте сначала сосредоточимся на плагинах платных — они есть в WP-каталоге? Там есть хоть какая-то часть тех гарантий, что Вы сформулировали? Какая? Или, может, в каталоге другого какого-то оупенсорсного движка? Мне важно понять (действительно важно, без стеба) — это просто Ваши хотелки, которые — увы! — до сих пор никем и нигде не реализованы или есть конкретные примеры их реализации?
avatar
Согласен. Мухи — отдельно, котлеты — отдельно.
На счет «хотелок» — скорее это действительно так, как вы описали. В полной мере, реализованных хотелок, которые написал, — не видел нигде. В формате open sourcre это не реально. Тут эти хотелки, в неком приближении, формируются только на личной ответственности разработчиков, ну и неких обязательствах (условных) перед каталогом.
avatar
Да это понятно все. Пути решения проблемы? Вот в чем вопрос. Демо-сайт вроде не очень получается. Может тестеры, которые предварительно протестируют плагин и дадут свое заключение?
avatar
я лично тестирую на Денвере
avatar
Я имею ввиду, чтобы перед каталогом, вместе с модерацией, плагины тестировали и авторитетные разрабы, и давали свое заключение, типа, да, плагин рабочий, я отвечаю. Тогда у покупателя гарантия хоть какая будет, что не покупает кота в мешке.
avatar
покажите мне этих сферических разрабов в вакууме, что кроме тестирования своих плагинов, что не всегда удается полностью, займутся еще полным тестированием чужих, да еще и на совместимость, а не просто пробегутся взглядом по коду? С последним сейчас справляется и модерация в каталоге
avatar
покажите мне этих сферических разрабов в вакууме

Знал бы прикуп, жил бы в Сочи :)
avatar
1) Плагинов очень много
2) У всех свой дизайн
3) У всех своя версия ПО

Всего НЕ учесть. Нужно тестировать плагин на дефолтном шаблоне, с заявленными требованиями движка.
Предоставлять демо заказчику. Все остальное подбивка плагина под конкретно Ваш сайт, это отдельная работа, и оплачивается отдельно.
avatar
Для каждого разработчика и плагина свой поддомен на тестовом сайте.
Типа:
lsdemo.com — список всех разработчиков и их плагины
avadim.lsdemo.com — список всех плагинов avadim
avadim.lsdemo.com/acepanel — плагин админки
avadim.lsdemo.com/acewidget — плагин управления виджетами

или типа того…

Суть демо не в том чтобы посмотреть как плагин работает с тем или иным плагином или сервером, а вообще посмотреть все возможности этого плагина. Если он не будет работать на каком-то другом сервере или будет глючить с каким-то чужим плагином, это проблема не разработчика. Но, по возможности он может помочь разобраться в этой проблеме. Это в его интересах выявить в чем может быть глюк.
  • ARM
  • 0
avatar
разумеется на всех поддоменах установлен один и тот же темплейт и одни и те же блоги и тд
avatar
А чего нет. Тоже вроде вариант.
avatar
Если он не будет работать на каком-то другом сервере или будет глючить с каким-то чужим плагином, это проблема не разработчика
Да? Даже так? Попробуйте это объяснить тем юзерам, которые за свои кровные покупают плагин, а он — не работает. А юзер ни разу ни программер и его не волнует, почему не работает, его волнует лишь то, что оно — за деньги — должно работать.
avatar
чтобы не было проблем нужны правила покупки. что в этом такого сложного сразу при покупке озвучить все условия?
avatar
В этих правилах надо стазу написать: если плагин у тебя не работает, то мы здесь ни при чем :)
avatar
Но это резко вразрез с тем, чего тут хочут многие рядовые юзеры, не находите?
avatar
Безусловно. А еще многие рядовые юзеры хочут, чтобы при закачке движка все плагины там уже стояли по-дефолту. И работали без проблем.
avatar
А если я захочу все и сразу бесплатно вы мне дадите чтобы оно не шло в разрез с моими желаниями? Думаю вряд ли. Поэтому условия продажи должны быть конкретными. Если я покупаю продукт мне должны объяснить при каких условиях он будет стабильно работать и с какими проблемами я могу обращаться к разработчику. В штатах в некоторых инструкциях к СВЧ даже пишут что в них нельзя кошек сажать.
avatar
Понимаешь, если там хоть слово будет, что он может не работать, и не важно по какой причине, то его вряд-ли кто и купит.
avatar
А там не должно быть таких слов. Там должны быть слова что, Работа плагана гарантирована на таких то шаблонах, такой то версии пхп и тд. Если вы используете плагин при других условиях, то его работа способность не гарантирована и может потребовать дополнительной настройки или доработки. По вопросам и условиям выполнения доработок и правок вы можете связаться с разработчиком плагина.
avatar
А вообще, чтобы не городить огород со всеми этими демо-сайтами, тестерами и прочим, довольно, сомнительно реализуемым функционалом, можно сделать проще и традиционней. Каждому платному плагину пришпиливать гарантию возврата денег в случае его неработоспособности и отказа разраба устранить баги в течении определенного времени. Это понятно каждому покупателю, давно опробировано на многих интернет-шопах и реализуется довольно просто.
avatar
А если я захочу все и сразу бесплатно вы мне дадите чтобы оно не шло в разрез с моими желаниями? Думаю вряд ли
Не то что «вряд ли» — однозначно нет

Если я покупаю продукт мне должны объяснить при каких условиях он будет стабильно работать...
Т.е. Вас лично устроит, если я жестко опишу конфигурацию среды, в которой разрабатываю и тестирую плагины, и буду отказывать в любых претензиях, если у Вас (как у покупателя) хоть малейшие отклонения будут?
avatar
мой ответ все ваши вопросы чуть выше :)
avatar
мне кажется делегирование нужно выпилить вообще. тогда быстрее будут внедрены нужные хуки и исчезнет половина несовместимых плагинов.
avatar
Весомое замечание. Потратил 4 дня на то, что бы совместить свой плагин с 3-мя уже установленными.

Но с другой стороны, делегирование одних и тех же методов — один из главных признаков несовместимости плагинов. Может это можно использовать с пользой?
Когда-то озвучивал идею — каталог автоматически (через какой-либо инфо-файл плагина, где перечислены все делегирования и тп) определяет какие методы делегируются плагином, и потом проходит по базе всех плагинов на нахождение делегирования этих же методов. Если соответствия найдены, эти плагины будут 100% несовместимы, о чем выводится инфа пользователю при покупке (список всех 100% несовместимых с данным плагинов).
ИМХО. Уменьшится кол-во недовольных непредупрежденностью о совместимости.
Понятно, что этот способ не гарантирует, что со всеми иными плагинами будет полная несовместимость, но, все же, немного сузит круг недовольных.
avatar
так ядро проверяет делегирование, но только если два плагина делегируют одно и тоже.
avatar
Не, я не о том, про ядро-понятно, конечно. Я про каталог, что бы каталог проверял делегирование одного и тогоже, и выносил вердикт в виде инфы для покупателя:
планин1 не совместим с плагинами плагин5, плагин26, например.
И покупатель уже предварительно, перед покупкой, будет знать об этом.
avatar
Мне кажется разработчикам нужно изменить схему взаимодействия, а именно разделить процедуры продажи плагина и его установки и настройки на конкретном сервере. Можно также продавать плагин и услугу установки / адаптации отдельным пакетом, например, с небольшой скидкой.
avatar
(немного ненормативная лексика)
а я вот недавно про**ся 2 дня с переписыванием qipsmiles и tinymce+, чтоб они могли работать в паре )
в итоге я не смог понять, почему именно на клиентском сайте нихрена не пашет, ведь на локале у меня всё прекрасно отрабатывает и причин вообще никаких не видно.
в итоге, клиент (молодец) разобрался сам!!! (всё дело в бажной вёрстке было)

ну а по части мин.требований: сколько я помню, вроде давно еще поднимали планку пхп до 5.2.6 (еще при переходе с 0.4.2 на 0.5*) или оно мне только почудилось (?)

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

Мое мнение такого, что плагин в каталоге должен быть протестирован на чистой сборке движке и выложен на демо сайт. Если на демо сайте он работает, то значит работа, за которую можно брать деньги выполнена. Есть товар и есть возможность его «пощупать» на демо сайте.

В случае если нужно адаптировать плагин для работы с другими плагинами, то это уже другая работа и она должна быть оплачена. Либо это делают оба разработчика и тратят свое время в угоду заказчику, либо работу оплачивает заказчик.

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