Дао-хаос

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

Надо сказать, Daos сразу подкупает. Стилем оформления, простотой и тем, что можно отложить получение аттестата мерчанта.

Конечно, не без огрехов — но в глаза бросаются разноплановые мелочи. Ну вы знаете, те самые, что не влияют на продажи, но оставляют ощущение сумбура.

Вроде управляющих ссылок в админке, у которых область реагирования блочная, а не обтекающая текст, так что скликивание белого фона на тачпаде может привести к уходу со странички. К тому же, по устройству ссылок их, как и кнопку сохранения, можно сделать fixed.

Или кучи внешних ссылок, никак не отделенных от других (стоит хоть сопроводить такие ссылки ext-иконкой) — то же «предложить улучшение» можно было бы сделать и небольшой формой, отсылающей к какому-нибудь сервису предложений по сайту. Инструкции по добавлению сервисов вообще лучше держать внутри системы, не заставляя клиента гулять по ссылкам, периодически возвращаясь и читая груды текста в формах. Да и выход я бы тоже отделил от списка и выделил цветом/иконкой (необязательно графической, если соблюдать дао-простоту).

Несмотря на «улучшение», бан пользователей ужасен — метафору текстовой иконке подобрать не получилось, да и можно ведь js'ом переспрашивать меня (if(!confirm('')) return false;), а вдруг я ошибся и не хочу потом метаться по окнам настроек в поисках отключения бана автора сего замечательного движка (клянусь, так и было).

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

Еще информация для рекламодателей забавная — HTML разрешен, но на подсказке пишется, что «кроме блочных элементов» (нет, я, конечно понимаю, что ul — не совсем блочный элемент). Кроме того, можно было бы и привязать что-нибудь вроде $set['txt']['info'] = preg_replace("/(\n)?(.+?)(?:\n\s*\n*|\z)/s","<p>$2</p>", $set['txt']['info']); — чтобы не надо было мучиться с переносами строки (но придется еще чистить от неправильного HTML после — впрочем, это и так надо было бы; тут можно посмотреть в стороны wpautop из Вордпресса, к примеру).

Ну и в настройках биллинга механизм «выбор биллинга» непрозрачен — два селекта, находящиеся рядом, кажутся связанными элементами, а на самом деле, второй — это переключатель режима первого (предпочитаемый/единственный).

Полотно сервисов, следующее за этим, можно было бы и сворачивать, оставляя только активные (и, кстати, почему там нет — «включить/выключить» в каждом блоке? это же неудобно — я могу заранее ввести данные сервиса, но не принимать с него платежи, потому что не авторизован или временно изменил мировоззрение по поводу SMS). А текстовые описания сервисов под формой оплаты для рекламодателей заменить все же логотипами, чтобы сэкономить место на растягивании на второй экран.

При работе со строчкой же не вижу смысла в лишнем экране проверки — почему бы не показывать ее и код вставки сразу? Здесь же бы не мешало не учитывать админские показы, давать возможность кастомизировать идентификаторы контейнера (появится ли #daos в AdBlock — вопрос на миллион). Стилям контейнера я бы предпочел классы, да и при попытке использовать одинарные кавычки, Даос сначала правит их на двойные, потом валит скрипт строчки (все дело в неэкранированных кавычках).

В сами строчки даже спецсимволов (???????§???±) не загнать — нещадно режутся. А зря, ASCII-арт и псевдокоды должны спасти Интернет от вебдваноля (кекеке).

И в свете начала работы с a1a, можно добавить в даос2 лишние 5% вебмастеру, добавив «страницу техподдержки» по дефолту.

А так — мне нравится. Симпатичное решение с сохранением форм (можно пойти дальше с игрой в формы, и мониторить изменения инпутов[type=text] и текстарий на странице, и тем же читай — «ноконфирмом» предупреждать о том, что изменения не будут сохранены, «точно ли хотите уйти?»), мои любимые крупные формы, человечное удобство — все вкусно. Даже спорная необязательность полей для рекламодателя — фишка.


Весь дёготь, конечно, в коде — отсутствие нормальной модульности и разнесения представления и обработки (особенно умиляют километровые куски хтмл, завернутые в пхп-шные строки), стремненький CSS... Остается надеяться, что Daos в новой версии заимеет нормальную разделенную архитектуру (через постоянные обновления и потери информации он уже прошел, надеюсь, и идеи кешера переживет), сервисы превратятся в плагины под API, а сам Тормоз вырастет как программист.

Возобновим тогда что ли раздел «Аудиты».

{9 комментариев} Подписка на комментарии

Вау! Настолько подробного разбора недостатков ни разу ещё не было. Хотя по-отдельности почти о всех этих косяках знаю, но, естественно, решение откладываю до выхода Daos 2.0. Огромное спасибо! Очень полезная для меня заметка.

Есть вопрос насчёт a1, почему техподдержка повышает процент выплат, где про это можно прочитать? И как ты себе представляешь это, как сделать лучше?

Часть недостатков вызвана тем, что я всё ещё не умею работать с JavaScript. В частности лишний экран для кода строчки иенно поэтому. Постараюсь в следующей версии хорошенько поаяксить :)

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

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

По-поводу описаний (там где блочные элементы запрещены) подумываю сделать так, чтобы поле принимало любой HTML, и при этом обрабатывало, скажем, MarkDown. Что скажешь?

Ну и напоследок: если у тебя есть совсем технические рекомендации, в частности по организации API и модульности — очень буду рад узнать их.

В Даосе не хватает возможности публикации объявлений с иконками, т.е. полезно иметь возможность публиковать тизерную рекламу.

А ещё не хватает баннеров, блэкджека и шлюх!

Это да!

Надо дать возможность оттянуться рекламодателю по полной :-)

Про иконки, кстати, очень верно — я, когда писал об АСКИИ, думал, что прикручу что-нибудь такое, пока ты 2.0 пишешь :)

> Есть вопрос насчёт a1, почему техподдержка повышает процент выплат, где про это можно прочитать? И как ты себе представляешь это, как сделать лучше?

Честно говоря, сам не видел этого в доках, но вот что в переписке с техсаппортом было:

Условия по размещению тех. поддержки:

а) Схема выплат 95% (стандартная):

Для этого необходимо иметь отдельный сайт тех. поддержки на домене второго уровня или третьего (как вариант – поддомен/субдомен). Название не должно превышать 25 символов. На этом сайте должна быть форма обратной связи и указаны тарифы (либо ссылка: www.a1agregator.ru/main/abonent).

Пример: www.a1help.ru

б) Схема выплат 90%:

На Вашем сайте достаточно любых доступных контактных данных – номер ICQ, номер телефона, skype, адрес электронной почты и т.д. Так же должны быть указаны тарифы (либо ссылка: www.a1agregator.ru/main/abonent).

Форма обратной связи НЕ является обязательным условием (кроме сервисов предоставляемых посредством платежного окна A1 Easy, A1 Lite и/или сервисов A1 Sharp ).

Оставляете схему 90% или будете размещать форму обратной связи? Бесплатный готовый скрипт есть в нашей библиотеке wiki.a1agregator.ru/doku...1%82%D0%BE%D0%B2

> скажем, MarkDown. Что скажешь?

Markdown может быть хорош для клиентских вводов, хотя у тебя, наверное, будут покупатели-"клиенты", так что да, хороший вариант. Но если markdown совмещать с html, то корректить придется все равно.

> А про класс вместо идентификатора контейнера вообще только сейчас задумался — ты совершенно прав.

Кеке, если ты начинаешь думать о мультивыводе строчки, тебе придется еще позволять каждой все по отдельности кастомить :)

> Постараюсь в следующей версии хорошенько поаяксить :)

Да ну, у тебя будет только в одном месте аякс :)

> Я проникся книгами Раскина

Раскин/Нильсон и прочие — не истина в последней инстанции. Подтверждения перед действительно важными событиями, пока не навязан шаблон, действительно работают, хотя да — потом появляется автоматизм нажатия «да». С другой стороны, в браузерах это поведение непривычно и срабатывает — скажем, как предупреждения у Я.Почты или гмыла о том, что начал набирать письмо, но собираешься уйти со страницы.

Скажем, в варианте с баном получается отлично — так получается прозрачно и понятно.

> если у тебя есть совсем технические рекомендации

Я не могу так вот сразу придумать архитектуру полностью, да и дать конкретные технические рекомендации без продумывания архитектуры сложно, но ты и сам, наверное, видишь проблемы, которые надо решать:

1) Шаблоны и исполняющий код смешаны. Максимально разделить, обновления представлять в двух вариантах — полная, и только измененные файлы (только придется писать «для перехода с 1.2 на 1.2.4») — чистый MVC, возможно, и не нужен, но элементы желательны. Например, я слабо представляю, как буду переносить свои изменения на новую версию :)

2) Добавление сервиса — полноценное обновление, т.к. требует изменение и кода, и шаблона. Должно быть сформировано единое API, которое должно иметь методы добавление в список, добавление настроек, обработчик ответа, т.е. унифицированный каркас для сервисов — тут есть много вариантов, как это реализовать.

3) Остальная модульность пойдет от иерархии классов, которую ты напишешь, и здесь надо перестать гнаться за «красотой» и больше думать о масштабируемости и удобстве в поддержке.

И заведи себе класс для отслеживания ошибок PHP и базы, чтобы пользователь мог прислать тебе лог (туда можно и характеристики хостинга совать). И внутренний бэкапер в админке, позволяющий базу сохранить/переслать на почту (или поставить это на автомат) не помешает.

И, кстати, для ротации строчек очевиднее, когда новая приходит в верх (стека), а последняя снизу «исчезает».

Отсылка баз автоматически мало кому понравится, мне бы не понравилось. Потому что там же хранится и доступ к мерчанту и прочие вещи. Впрочем, это надо сильнее разделять, сейчас всё в кучу.

Насчёт А1 — я думаю, там речь чисто про SMS, про разницу в отчислениях. В A1Pay тарифы тут — a1pay.ru/rates

И вряд ли на них что-то влияет.

Насчёт сохранения значительных изменений пользователя после обновления — я планирую сделать в дистрибутиве default_template.html и default_style.CSS, и тогда если ты сделаешь свои template.html и style.css, они останутся без проблем. Ну, это про оформление. С остальным надо думать ещё, там много вариантов может быть.

«А у вас ус отклеился!» После лирушного счетчика на страничке Даоса стоит кавчка и точка с запятой.

Ок.

А здесь можно оставить свое мнение ↓ Подписка на комментарии
какие-то из следующих трех полей можно оставить пустыми


нет тегам!!! **эмоция**, __ирония__, >цитата, {[код]}