Pull to refresh

Comments 58

Только вот по-моему в большинстве случаев не программист решает как должен работать тот или иной функционал.
А так конечно все правильно.
Хороший программист видя что в дизайне есть недостатки не умолчит об этом, и постарается исправить, проведя предложение по улучшению через соответствующие процессы.
К сожалению не всегда к тебе прислушиваются.
Да и честно говоря не всегда то что удобно тебе удобней пользователю.
Юзабилисты вечно воюют с программистами, потому что вторые вечно хотят вместо надписи «Выполнить» на кнопочке написать «Возврат значения». После чего у нормального пользователя появляются вопросы чего куда и откуда вернуть и что за значение такое.
Я видел сотни дизайнов от программистов и я, даже как продвинутый пользователь, далеко не в восторге от этих дизайнов.
Программист интерфейсов обязан быть хорошим юзабилистом. IMHO.
Представьте себя сотрудником МС. Вы работаете над очередной задачей и понимаете, что дизайн и юзабилити — откопаны где-то из недр Win 3.1. Все это завизировано и одобрено лично Балмером. Каковы шансы у вас попасть к нему на прием, доказать его неправоту, объяснить как надо? Мелковатые, да? А шансы в тот же день вылететь с работы в данной ситуации гораздо выше.
Представил. И как вы наверняка заметили со времен 3.1 дизайн, эффективность, удобство использования таки поменялись. Как по мне — в лучшую сторону. И это происходило не просто потому что Балмеру так приснилось, а над этим аккуратно работали. И ожидать от них намного большего сложно ибо действительно, проводить изменения(пытаться улучшить) не так просто(ибо вокруг почти все ищут причину только бы этого не делать), тут с браузером в таких масштабах не всегда получается разобраться, а вы попрекаете операционной системой.

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

Я не говорю что это просто, это действительно сложно. Но это того стоит, сделать мир(или его часть) лучше. Или это не есть вашей целью?
(я действительно с вами согласен что существует множество преград для этого, на что вы отвечаете: да много-много, и они такие непреодолимые-непреодолимые)… может не в ту дверь стучитесь? может не так стучитесь? может рано, или наоборот поздно?
Какой еще весь мир против? Что вообще за пафос? Я вам про конкретную и весьма банальную ситуацию говорю, а вы тут из себя команданте Че корчите… Процент руководителей, готовых прислушиваться к чужому мнению в СНГ, я думаю не более 5%. Если вы считаете в любой ситуации можно победить человеческий фактор — то либо вы оптимист, либо опыта вообще подобного не имеете
В больших компаниях возможно все продумано заранее и программисту остается только перевести все это в код, но в маленьких как раз от программиста много зависит, будет ли удобна в работе данная программа.
UFO just landed and posted this here
В экспериментальных функциях включите «Значок непрочитанных сообщений» и ваша проблема будет решена ;)
UFO just landed and posted this here
Кстати говоря, эта иконка показывает только количество непрочитанных писем в папке «Входящие» и видна только на вкладке. Если бы число стояло в начале надписи, то его было бы видно и на панели задач и можно было бы видеть непрочитанные в любой папке, а не только во Входящих.
Там же в GMail Labs включите фичу Title Tweaks (by Fedor K).
Она меняет порядок слов в тайтле окна/вкладки:
было: «Gmail — Inbox (20) — username@gmail.com»
стало: «Inbox (20) — username@gmail.com — Gmail».
Для вкладок, немного уменьшенных по ширине, это удобнее, т.к. сразу видно количество писем.
Это у меня давно включено. Для Inbox еще наверное помогает, для Входящих же — как мертвому припарки.
А надо было так: «20 — Inbox — username@gmail.com», потому что название папки может быть длинным.
А сейчас обидятся создатели стартапов, которые своими силами ведут исследования и пишут проекты для себя. Их-то дворецкими никак не назовешь, они скорее покорители вершин.

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

И да, это ни в коем случае не извиняет описанные косяки и наплевательское отношение к юзерам — но это работа, как ни странно, не программистов, а архитекторов, дизайнеров и специалистов по юзабилити. Вот они и думают о том, насколько программа и ее интерфейс удобны для использования. А программист лишь навешивает этот интерфейс на главную функциональную часть.
А еще не все программисты пишут софт.
Есть еще те, кто пишет низкоуровневую часть. Есть те, кто реализует скрытые от пользователя процессы. Есть те, кто пишет программы для программистов. И т.д. и т.п.
Не надо всех программистов под одну гребенку собирать, нужно как минимум разделять по опыту, навыкам и сфере деятельности.
Причем тут эго? Я сильно сомневаюсь, что кто-то создает неудобный или непродуманный интерфейс из гордости. Всегда можно упустить какую-то мелочь, которая позволит программе быть лучше. И любой адекватный программист с радостью эту мелочь поправит.

И уж точно никто не будет сидеть и думать: сделаю так, чтоб лопасти опускались каждый раз, я ж им не прислуга.
— Бэримор, что это?
— BSOD, Сэр.
Извините, не удержался.
Это называется «проектирование взаимодействия».
Об этом пишут Алан Купер (книжка «Об интерфейсе»), Джеф Раскин (книжка «Интерфейс») и другие авторы.
Поведение хрома — одна из самых приятных мелочей, что я встречал. Ещё одна: при выделении курсором IE выделяет слово, однако если немного поводить курсором, намекнув, что нужен кусок слова, — он так и сделает. Некоторые это считали даже багом, однако в других браузерах этого дико не хватает, особенно когда слово на границе экрана.
Почему то одной фиче Хрома противопоставляется весь остальной софт.
Мне вот, например, не нравится, что в Хроме не видно title страницы и приходится подводить курсор мыши к табу, чтобы его увидеть. Мне не нравится, что всплывающая подсказка с title не показывается, если Хром не является активным приложением (страница реагирует, интерфейс — нет). Блин, у меня два монитора, с моей точки зрения у меня «активны» две программы! При этом ФФ работает нормально, а Хром — хромает.
Я думаю, что одно красивое решение какой-либо проблемы/задачи пользовательского интерфейса можно найти в каждой «топовой» программе. И в каждой из них будут какие-то косяки.
Вот Вам и противоречие: у программистов есть гордость, а у дворецких её быть не должно.

Дело тут не в гордости. Эта особенность не имеет целенаправленности, просто об этих мелочах думать надо, а до этого надо их ещё и придумать, и многие из них не так тривиально реализуются, поэтому и не делают, потому что сил тратится много, лучше потратить его на некий офигенный функционал, чем задрачивать до блеска текущий. Так что, имхо, не делают, потому что «и так работает, ты лучше экспорт прикрути», а вывести окошко куда проще, чем продумывать архитектуру.
Я как-то сделал загрузку фоновым режимом, т.е. интерфейс не подвисает ни при изначальной загрузке, ни при открытии файла, всегда можно закрыть программу или отменить открытие, но разве это кто заметил? Но тем не менее, я за это горд.
Я как-то сделал загрузку фоновым режимом, т.е. интерфейс не подвисает ни при изначальной загрузке, ни при открытии файла, всегда можно закрыть программу или отменить открытие, но разве это кто заметил? Но тем не менее, я за это горд.

Уверен, эта ситуация знакома многиv программистам-интузиастам.

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

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

Думаю, вы меня поняли :)

* Под гармонией я понимаю соответсвие некому внутреннему идеалу того, как это должно быть сделано.
Жму вашу руку. Было бы вас больше — мир софта можно было бы назвать другим словом, кроме г…
Вот вас таких всего один, увы.
Не принято ещё писать асинхронно работающий софт.
Вот и получаем, что при клике на значок дисковода или сетевой папки подвисает вся система.
Мне, как веб-разработчику, дико наблюдать такое в десктопном софте.
Мне тоже.
Но в общем случае без ошибок написать асинхронный софт — довольно сложная задача.
Причем часто проблема упирается в неявные косяки в различных библиотеках. Недавно только копался в Swing, пытаясь понять, почему при отложенном (invokeLater) изменении текста в редакторе все падает…
Нужно просто создать разработчикам и тестировщикам максимально некомфортные условия :)
Если программа может обращаться к сетевой папке — урезать скорость до пары байт в секунду.
В прошлых версиях iOS меня жутко раздражали тормоза при старте App Store — программа пыталась сперва подгрузить результаты последнего поиска, а только потом показать свой интерфейс. В итоге при плохой связи она стартовала минуты две.
Однажды некто Дэвид Платт даже написал об этом целую книгу. Жаль, книжка среди разработчиков не слишком популярна.
UFO just landed and posted this here
Кстати, вот ещё из образцов наглости и тупости:


Это при попытке удалить программу стандартными средствами. Может быть и есть какие-то объективные причины, почему удаление не возможно (теряюсь в догадках, если честно), но меня как пользователя всё равно волнует вопрос: какого, собственно, чёрта меня не предупредили при установке и вообще почему установить на 32-битную версию можно, а удалить — нельзя?
А на 64-битной будет наоборот? =)
Не знаю, не проверял даже)
Не важно насколько туп твой хозяин надо как-то делать то что ему надо.
Как это не противно, но надо следовать этому принципу.
Еще одна метаформа.
получается Садовник-дворецкий-программист.
— программам плевать на пользователей
Обратное тоже верно, кстати :-) Если уж на то пошло.
Ни одна программа ещё не написала ни одной статьи о человеке, но очень много людей написали статьи о программах.
Следовательно обратное в корне не верно :-)
В свое время на меня произвела глубокое впечатление статья Витуса Вагнера — «О вреде дружеских интерфейсов». После её прочтения я, что называется, просветлел, перестав стесняться своей любви к command-line интерфейсу.
Не поделитесь ссылкой, а то в гугле только эту статью на Хабре и выдает?
Весьма спорная статья, есть большой сегмент ПО где программа должна быть помощником, а не рабом.
Согласен, она несколько передергивает в ряде моментов. Понятное дело, что задачи браузинга, картографии, дизайна и кучи других «генерирующих креатив» приложений лучше решать с помощью соответствующих визуальных инструментов, но рутинные или «линейные» задачи — для этого CLI удобнее.

Я поясню своё «просветлел»: в какой-то момент при работе в полностью свободной среде возникло ощущение всемогущества, то есть реально, не возможно было себе представить задачи, которую нельзя было бы решить на bash с последующим включением в cron. Увидев, что под красивым интерфейсом прячется mkisofs/cdrecord, под wammu прячется gammu, да и просто возможности сотен конверторов из всего во всё.

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

Пример из последнего — в каталоге куча (500 например) файлов .JPG и .CR2 (raw-файлы от камеры Canon). Удалив все нерезкие и неудачные JPG-файлы в любимом просмотрщике, необходимо удалить соответствующие им .CR2. Я решаю задачку одной строчкой bash.

На всякий случай: просмотрщик вполне себе визуальный!
Вы правы, но мы живем в 2011 году а не в 1995. И Большинство пользователей (а их уже за миллиард) — обычные миряне, а не воЕны консоли. Поэтому интерфейсы будут все проще и юзабельней. А маленький сегмент, кому хочется покопаться и побашить, будет пользоваться консолью. Но эти множества не пересекутся, ИМХО.
Большинство ездит в автосервис поменять лапочку, а ктото помпу самостоятельно меняет за полчаса. :)
И хром, и другие хорошие программы — это результат тщательного тестирования.
Честно говоря только отсюда узнал что поведение с вкладками у хрома это фича. Я всегда это воспринимал как неудобство, когда я закрываю несколько вкладок мне хочется что остальные сразу растянулись и я увидел что на них написано и надо ли мне их закрывать, а хром ждет что повожу мышью где то ещё.
Собственно есть тонкость. Если сравнить распространенность (и прибыльность) программ на Java и кондиционеров с Хромом, то мысль, что надо делать как в Хроме покажется неочевидной. Программист должен приносить деньги себе или своей компании (скорее всего опосредованно). Если для этого нужно угадывать мысли пользователей, то надо угадывать, но такое бывает нужно далеко не всегда.
Вообще, насколько я понимаю автор расширяет понятие «сфера услуг» почти до ста процентов профессиональной деятельности людей. Рабочий на станке точит детали для того, чтобы потом из деталей что-то сделали. Блоггер оказывает читателям услуги по написанию постов, чтобы его читали и комментировали. И даже депутат, вы не поверите, тоже слуга народа. Кто же хозяин все этой массы слуг, дворецких и швейцаров? Нет, я не буду думать эту мысль…
По поводу программистов-дворецких все верно. Успехов добиваются те, кто четко осознает, что они решают потребности и проблемы заказчика. И не более.

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

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


Хорошо, что есть те, кто использует их, потому что «это клево».
Потому что именно они привносят творческие идеи в программирование.
Пусть не все из них удачны, но они есть, и лучших из них мы сейчас и используем.
— Виндовс не снимает зависшую программу, даже если я раз десять попросил его в менеджере задач.
— Касперський столь высокого о себе мнения, что уведомлением о просроченной лицензии он прерывает мой бой в стрелялке.
— Квип при разрыве выбрасывает сколько окошок об ошибке работы с сетью, сколько протоколов у меня подключено.
— Сервис, который отправил нас на авторизацию, не пытается сохранить наш текст, если произошла ошибка (привет, чудовище блогов от google).
— Если на странице в Firefox выскочил alert, я теряю возможность переключиться в другие, совсем с другим контентом, вкладки (феерия, мой выбор в топе «рак мозга»).
— Если неполадки в сети, и я нажал «отмена» в TotalCommander, он подождет другого пришествия, а потом соизволит показать еще несколько нафиг никому не нужных окон, а потом уже закроется.

И так можно продолжать долго и заунывно. Такое впечатление, что мозгами много кто не пользуется в принципе. А если что и любит, так это уведомления от своей ненаглядной программы. Мне они не нужны. Упала сеть? Отменил попытку, файлы аккуратно сохранил, текущее положение дел запомнил, и скромно так, в уголке, сказал «ошибочка вышла, но как-только сеть появиться, я все доделаю».

И еще. Много кто в комментах говорит что мол программисты не делают это нарочно. Конечно нет! Они просто мыслят по другому. Они знают свои программы. Они не замечают большинство проблем у своих детищах.
И вот еще, как пример мышления:
возникли проблемы с ICQ. Анонс клиента на некоем сайте из поддержкой Jabber "Теперь наш клиент поддерживает XMPP, и шлюз из протокола ICQ в Jabber". Нормально? Нет! Никого даже чуточку не волнует, какой у вас протокол, всё, что от него требуется — это работать. Ра-бо-та-ть! Не нужно говорить про алгоритмы отсева спама на Jabber — скажите «спама нет». И все. Протоколы, технологии, алгоритмы оставьте себе. Они пользователям не нужны.

P.S. Порой бесит, когда дизайнер спрашивает у меня «сможешь сделать вот этот функционал?». Тебе какая разница? Нарисовал, я оценил время, если начальство согласно оплатить это время — я тебе ракету даже сделаю. Когда начинают спрашивать программиста, можно помалу тесать крест на могилу удобности пользования программой.
Firefox при старте задаст кучу вопросов про обновления!
Windows отменит команду выключения компьютера, если открыт какой-нибудь notepad!
Eclipse при выключении задаст кучу вопросов про сохранение открытых файлов вместо того, чтобы просто запомнить состояние при выключении и при следующем старте открыть файлы в том же виде!
Браузер в Андроиде отказывается открыть новую страницу по тыку из гуглоридера говоря, что страницы кончились!
Тот же браузер после случайного наклона телефона в портретную ориентацию и возврата в ландшафтную проскроллил страницу чуть ли не на самый верх, закрыл клавиатуру и убрал фокус ввода из поля ввода этого комментария.
К тексту и всем комментариям выше свой комментарий: «Попробуйте сами так написать!»
На все эти приятные «милые штучки» нужно затратить силы и время, и дай бог программисту основной-то функционал закончить, и так-то голова кипит…
Дело скорее не в эго, а в привычках программиста. Многие подсознательно делают программу так, чтоб им самим было удобно. Выше есть скриншот «Unknow error». Действительно, наитупейшее сообщение об ошибке с точки зрения пользователя. А для программиста — это сообщение говорит, например, о том, что выполнение зашло в определенное место, куда попадать не должно вовсе и там он оставил такую вот напоминалку.

Второй момент — над программой работают обычно множество людей, каждый решает свою задачу. Вы бы послали подальше дизайнера, который бы заглянув ваш код, сказал бы что лучше переписать фрагмент с использованием GOTO, как его учили в 7-ом классе? Ну вот и вас дизайнер пошлет, если вы ему начнете рассказывать как лучше оформить внешний вид. Так при чем тут программисты? Программист виноват тогда, когда программа рушится или выдает неверные результаты, а умные табы — просите у юзабилистов и дизайнеров, а мы сделаем, если скажут :) Конечно, это справедливо для компаний, а не разработчиков-одиночек.

Третий момент — готовый инструментарий. Вот делаю я скажем вьювер под конкретную БД. Там куча полей и я хочу сделать юзерам приятное, предложить им вот такие вот табы. Как это сделать? Готовый компонент если и найдется — то стоит денег. Делать самому с нуля — оставить себя без сна (начальство не будет оплачивать такие инициативы). Так что ж делать? Правильно, берем стандартный функционал и делаем очередную не самую удобную программу. Но быстро и без ущерба для своего кармана.

Имхо, автор оригинала — юзер, который плохо разбирается в индустрии. Я понимаю что ему, как и другим, хочется чтобы программы работали идеально и понимали его субъективные запросы (и умели их реализовывать так как надо ему). А когда этого не происходит — он не пытается проанализировать причины, а просто валит на то, что «разработчик мудак». Напоминает реакцию блондинок, которые глядя на сложные программы — убеждены что разработчики сделали их сложными специально, чтоб людям сложнее было с ними работать
Sign up to leave a comment.

Articles