Я представил себе этот процесс — расширения строки поиска под ширину набираемого текста… Мне плохо стало. Очень плохо. Вы хоть понимаете какой это удар по юзабилити? А если это еще и поставить на 4-ку бету, в которой отображение ссылки под курсором было в адресной строке… Это вообще феерический ппц получится.
И вот еще что! Она микроскопическая по сравнению со строкой адреса — это же просто мучение когда пишешь длинный запрос. Еще один довод в пользу совмещения этих двух строк.
Мое сугубо личное мнение:
1) Она занимает лишнее пространство
2) Строка адреса и строка поиска прекрасно совмещаются — это подтверждено уже как минимум двумя успешными браузерами: IE 9 и Chrome
Дело не в удобстве а в разрушении сложившейся парадигмы ПИ. Все привыкли что строка адреса — явление константное и неизменяемое. В ней содержится адрес сайта загруженного в рабочую область в данный момент. И в каком-то смысле строка адреса — средство идентификации контента в рабочей области. Вы часто непроизвольно смотрите в строку адреса чтобы понять где вы находитесь. Если там будет постоянно что-то мелькать — это будет отвлекать внимание пользователя и в конечно итоге будет раздражать. Сами знаете как раздражают всякие анимационные аватары и прочие мерцающие штуки на сайтах, которые не удается порезать банерорезкой. А тут еще к ним добавляется постоянно прыгающая строка адреса, которая к тому же имеет слегка увеличенный шрифт, насколько я видел. Строка статуса в этом плане гораздо более незаметна и юзабельна — и помимо прочего она для этого специально предназначена и является привычным элементом ПИ.
Нормальное функциональное изменение. Строка адреса не предназначена для того, чтобы выводить в ней всякую дополнительную «хот-информацию». Я не ставил себе ни одной беты, поэтому не знаю как это выглядело, но на мой взгляд это ужасно — сотворить такое со строкой адреса.
ЗЫ А поле поиска убрали? Вот это было бы полезно — это уже явный атавизм. Даже из IE ее уже выпилили.
Когда вы уже перестанете меня спамить своими предложениями о бесплатных семинарах? Я уже устал отписываться! Каждый раз по прошествии какого-то времени я попадаю в вашу чертову рассылку снова. Сколько можно?! Я на взводе.
Неплохие условия для работы — немногие работодатели сегодня так заботятся о своих сотрудниках. Я приятно удивлен :) Уверен — вы быстро найдете себе подходящих людей. Искренне желаю вам удачи!
Огромное спасибо за статью — читал с интересом и почерпнул немало интересных вещей. Мне она очень пригодилась — я сейчас активно занимаюсь изучением криптографии в целом и пространства имен System.Security.Cryptography в .NET. И вот что меня больше всего поражает, так это количество пишущих комментарии наподобие «оказывается все довольно фигово сделано», «я думал что все навмного проще реализовано». Не в обиду комментирующим конечно, но криптография — это сложная прикладная дисциплина. Я вовсе не пытаюсь поучать или «академничать» тут. Просто я сейчас решаю вполне конкретные задачи по защите своего ПО от несанкционированной модификации и распространения — и уже то, что я успел узнать, впечатляет. Поэтому не стоит критиковать людей, которые реализовывали подсистему безопасности Windows и называть ее устаревшей, неактуальной, слишком простой/сложной — она работает. Уверен — много копий было поломано об эту систему, много тысяч человека-чсасов затрачено на ее разработку и поддержку. И она работает. Работает уже много лет, такая, какая есть — с недостатками, дырками, заплатками, новыми дырками и новыми заплатками… Не стоит недооценивать труд других людей.
И разместите пожалуйста в этой статье ссылку на книгу, или оригинального описания этого паттерна. А то непосвященные будут читать и думать, что это вы придумали этот паттерн :) Нехорошо это — на святое замахиваетесь :)
Хорошее и достаточно детальное описанное применения паттерна (комментариев правда маловато, как выше верно заметили). «Бандитский» пример менеджера справки из книги гораздо более абстрактный — пришлось два раза перечитывать, чтобы понять структуру распределения обязанностей между объектами.
Я тоже не так давно применил этот паттерн в разработке одного приложения с использованием SCSF. У меня ситуация была следующая: есть список Workspace вложенных друг в друга. ShellWorkspace с кнопкой Back и Next и Print, в него встраивается RootWorkspace c кнопками категорий. А при нажатии на одну их кнопок категорий в RootWorkspace встраивался ContentWorkspace. Обработку навигации я делегировал специальному менеджеру-сервису а вот обработку кнопки Print реализовал с помощью паттерна Chain of Responsibility. Т.е. команду мог обрабатывать только конкретный ContentWorkspace. Поэтому все вышележашие просто реализовывали так:
public bool Print()
{
IContentView view = this.Workspace as IContentView;
return view != null ? view.Print() : false;
}
И последний в списке экземпляр конкретного ContentView:
public bool Print()
{
bool result = false;
// Printing code...
return result;
}
Покупал в 2008. С этого времени одна небольшая поломка — полетело какое-то реле. Поломки электроники в ТАЗах, похоже, являются традицией. А так ничего — доволен вроде. Интенсивность использования — средняя. Ну еще вот на рыбалку ездим иногда с ним. Шумит в салоне конечно сволочь — с тем же Форд Фокус ни в какое сравнение.
1) Она занимает лишнее пространство
2) Строка адреса и строка поиска прекрасно совмещаются — это подтверждено уже как минимум двумя успешными браузерами: IE 9 и Chrome
ЗЫ А поле поиска убрали? Вот это было бы полезно — это уже явный атавизм. Даже из IE ее уже выпилили.
Я тоже не так давно применил этот паттерн в разработке одного приложения с использованием SCSF. У меня ситуация была следующая: есть список Workspace вложенных друг в друга. ShellWorkspace с кнопкой Back и Next и Print, в него встраивается RootWorkspace c кнопками категорий. А при нажатии на одну их кнопок категорий в RootWorkspace встраивался ContentWorkspace. Обработку навигации я делегировал специальному менеджеру-сервису а вот обработку кнопки Print реализовал с помощью паттерна Chain of Responsibility. Т.е. команду мог обрабатывать только конкретный ContentWorkspace. Поэтому все вышележашие просто реализовывали так:
И последний в списке экземпляр конкретного ContentView: