Решение по-эпловски

Об одном из сильнейших приёмов в решении любой дизайнерской проблемы пишет у себя Женя Арутюнов. Вот встроенный в Мак простейший текстовый редактор Текстэдит:

Встроенный в Мак текстовый редактор Текстэдит

Типа проблема в том, что тулбар может не влезть в окно по ширине. А решение состоит в том, чтобы не считать это проблемой. «Не поместился — значит не поместился», — пишет Женя.

Этот приём мы называем «решением по-эпловски». Исходная формулировка у нас была такая: «Решить по-эпловски — значит сделать вид, что проблемы нет». Но со временем я понял, что «сделать вид» тут лишние. Проблемы ведь реально нет. От этого продажи Маков не упадут, недовольные пользователи не станут звонить чаще в суппорт, ни один пользователь не задумается о переходе на Виндоус. Во вселенной никого не волнует, что будет с этим тулбаром, если он не влезет!

Там в комментариях обсуждение небольшое, стоит глянуть. Ясное дело, куча людей против.

Безусловно у Эпла полно недодумок и недоделок, и не исключено, что в данном случае они просто не предусмотрели этой ситуации, и поэтому оно работает как-то так, как получается само собой. Однако нам тут важно не Эплам оценку дать, а самим правильный вывод сделать. Тем более, что если бы они её предусмотрели, что почти наверняка оставили бы ровно так.

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

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

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

Дальше
25 комментариев
Андрей Гурылёв 2011

Отмазка отличная, круче не видел.
И ведь действительно пофиг на базу, пускай захламляется.

Марк Федурин 2011

Правильный подход! Пускай база завалится мусором! Зато все всегда под рукой! У меня так на столе примерно...

Андрей Гурылёв 2011

Марк, вам не любоваться же базой. А от того, что она захламлена в какой-то области, система тормозить не станет.

Юрий Хан 2011

Когда/если вдруг нужно (или владелец блога считает, что нужно) почистить базу, это можно сделать и прямым SQL-запросом.

Глеб Радченко 2011

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

Илья Бирман 2011

Тут есть потенциальная проблема/опасность, связанная с «прайвеси», поэтому аналогия не вполне корректная.

Владимир Твердохлебов 2011

Перед тем как поставить флаг «удалён», надо отправить ещё один запрос «Удалить удалённые» — проще всего, можно ещё заморочиться с кроном (он в данном случае подходит лучше всего), можно её сделать отдельную страницу «Корзина» и прикрутить поиск, сортировку, экспорт, архивирование и ещё много нужных вещей =D

Kalan 2011

Можно было пойти ещё дальше и не убирать восстанавливалку после перезагрузки страницы.

Илья Бирман 2011

Это сложнее и хуже. Сложнее, потому что сейчас восстанавливалку при удалении рисует Джаваскрипт, а чтобы выводить её после перезагрузки нужно в шаблонах предусмотреть её вид и логику вывода для удалённых комментариев. Хуже, потому что пользователей будут бесить торчащие повсюду восстанавливалки и будет возникать вопрос «А как совсем удалить?»

Коля Митин 2011

пофиг на базу

Всё верно. Проблемы базы пользователя не должны волновать.

Субботин Александр 2011

Глеб Радченко: а что, от этого контактом стали пользоваться меньше людей? Или он от этого медленнее работать стал?
Владимир Твердохлебов: в таком случае может возникнуть ситуация, в которой будут удалены комментарии, которые потом пользователь захочет восстановить.

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

Роман Парпалак 2011

А еще можно назвать вещи своими именами и сделать две кнопки: «скрыть комментарий» и «удалить комментарий».

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

Arsen 2011

Пример с удалением верный.
Для меня логика простая: удаление дорогая операция, а дисковое пространство очень дешевое.

Александр Павлов 2011

Самое очевидное и простое решение, как мсне кажется, удалять комментарии через некоторое время. Если за несколько часов комментарий не восстановили, значит он не нужен

justnomi 2011

У этой проблемы с тулбаром есть решение, оно обыденное и часто используется.
Просто ты путаешь баг с фичей

Илья Бирман 2011

Что?

justnomi 2011

А?

Юрий Петров 2011

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

Игорь Старков 2011

Если какое то дело долго не делать —
обычно оказывается что делать то было и необязательно!

Зоркий Глаз 2011

http://www.exler.ru/expromt/images/19-09-2011/11.jpg — тут тоже кое-что не поместилось, но кто-то явно идиот. Или дизайнер, или фоннат.

2Глеб Радченко: насколько знаю, на сервисах с таким объёмом данных что-то удалять из базы технически нецелесообразно, это пагубно влияет на производительность. Следовательно, даже удалённая-удалённая анкета с фотографиями и комментариями никогда не будет удалена.

А вообще, ничто не может быть оправданием банальной лени, подаваемой в виде благодетели от «гения».

Андрей Гурылёв 2011

Ничто. Кроме эппла.

Илай 2011

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

А ТекстЭдит так себя ведет по той же причине, почему в Висте были стремные ВордПад и Пэинт времен 98-го, а в 7-ке они просто суперские с риббоном!

У Эпл сейчас нет времени и ресурсов переделать все с учетом новых собственных же стандартов и требований к UI. Маленькая компания, что сказать. Не удивлюсь, если через год-два переделают. Сколько им понадобилось лет, чтобы переписать Файндер? Медленно-медленно.

Александр Колов 2011

Собственно, если в качестве бд используется MySQL и таблицы в InnoDB, подчищать базу смысла никакого не имеет. Файлы InnoDB в обьёме не уменьшаются, да и зачем дефрагментировать их для CMS?

Маздайщик 2011

По поводу неудаления удаляемых фотографий во ВКонтакте (с предлогом выглядит неуместно и без него тоже). Если фотографии не удалять, то новые фотографии будут добавляться на диск последовательно из занимать непрерывные последовательности блоков. Если фотографии удалять, то между удалённых фотографий на диске будут возникать «дырки» из свободных блоков и новые фотографии будут по этим дыркам разбиваться, фрагментироваться, что снизит производительность. К тому же можно предположить (я сам не пользуюсь, так что хз), что фотографии удаляются реже, чем не удаляются. А читаются фотографии гораздо чаще, чем пишутся: записывается на диск фотография один раз, а просматривается сотни, тысячи раз.

З.Ы. Да, вы правильно поняли, я фанат дефрагментации. Сегодня перед уходом на работу не мог оторваться от экрана с перемигивающимися квадратиками. :-)

Илай 2011

@Маздайщик
В новых файловых системах (да уже и не новых), например, файлы пишутся туда, где есть место для него — или всегда в конец, или в большущую дыру. Фрагментация наступает только на забитом под завязку диске.

Некто Неизвестный 2011

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

Эгея не ставится. Что за хуйня. Куда писать?

Илья Бирман 2011

Да на почту писать, на почту.

Терещенков Константин 2011

Как это «ни один пользователь не задумается о переходе на Виндоус»?

Не могу сказать, что именно TextEdit меня достал, но куча вот таких проблем и тупняков в МакОС в итоге заставила меня перейти именно на Виндоус.

cornet 2011

Некто Неизвестный просто отжог своим комментарием :) Виртуально плюсую за чувство юмора +)

Мои книги