Подписаться на блог
В Твиттере

Реплики и ссылки на заметки

В Фейсбуке

Ссылки на заметки

Вконтакте

Ссылки на заметки

В Телеграме

Ссылки на заметки

В Тумблере

Заметки целиком

В Же-же

Заметки целиком

По РСС

Заметки целиком

Если что-то из этого не работает, напишите мне: ilyabirman@ilyabirman.ru.

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

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

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

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

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

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

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

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

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

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

Подписаться на блог
Поделиться
Поделиться
Отправить
Запинить
25 комментариев
Андрей Гурылёв

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

Марк Федурин

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

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

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

Юрий Хан

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

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

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

Илья Бирман

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

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

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

Kalan

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

Илья Бирман

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

Коля Митин

пофиг на базу

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

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

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

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

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

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

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

Arsen

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

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

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

justnomi

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

Илья Бирман

Что?

justnomi

А?

Юрий Петров

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

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

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

Зоркий Глаз

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

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

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

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

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

Илай

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

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

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

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

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

Маздайщик

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

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

Илай

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

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

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

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

Илья Бирман

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

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

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

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

cornet

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

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