Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 64 [показано 10]
14 принципов создания вежливых программ
Степень соответствия запросу: 52,84%
Фрагменты текста поста : ... 14 принципов создания вежливых программ Профессора Стэндфордского Университета Клиффорд Насс (Clifford Nass) и Байрон Ривз (Byron Reeves) занимались изучением реакции человека на компьютер... ... Другими словами, человек обладает определенными инстинктами, которые говорят ему, как вести себя в обществе других чувствительных созданий, поэтому как только некий объект проявляет определенные познавательные способности, эти инстинкты начинают действовать и мы начинаем реагировать на этот объект так же, как на других людей... ... Насс и Ривз использовали для тестов множество студентов-компьютерщиков, достаточно опытных для того чтобы самим написать тестовую программу... ... Эти студенты были высокообразованными, зрелыми индивидуумами, но не смотря на это все без исключения отрицали, что благодаря своим познавательным способностям программы воздействуют на них эмоционально, хотя результаты наблюдений являлись неопровержимым доказательство обратного... ... Из этого исследования следует важный вывод: Если мы хотим, чтобы наша программа понравилась пользователям, мы должны сделать ее поведение похожим на поведение человека... ... Насс и Ривз утверждают что программы должны быть "вежливыми", потому что вежливость – это универсальный человеческий признак, - хотя действия, которые можно считать вежливыми различаются от одной культуры к другой, этот признак присутствует в любой культуре... ... Продукты производства с высокими познавательными способностями, такие как программы, тоже должны следовать этому правилу и быть вежливыми... ... Если программа скупа на информацию, скрывает результаты своей работу, заставляет пользователя искать где находятся простейшие функции, и винит его в своих собственных неудачах, то пользователю она точно не понравится... ... Если же программа уважает пользователя и помогает ему, то она обязательно ему понравится... ... Что значит для программы быть дружественной и вежливой... ... Что значит для программы вести себя подобно человеку... ... Человек склонен к ошибкам, медлителен и импульсивен, но это не значит, что программа с такими качествами будет считаться хорошей... ... Человек обладает множеством других качеств делающих его хорошо подходящим для роли служащего – роли, которую выполняют большинство программ... ... Я спросил моего друга Кейта Плиса (Keith Pleas), известного программиста-эксперта, занимающегося к тому же вопросами пользовательского интерфейса, что он думает о создании более человечных программ... ... Кейт воспринял добавление в программу человечности как добавление нечеткости во взаимодействие... ... Более вежливая, более человечная программа сразу бы сообщила, что у вас на счету "около 500$" а затем проинформировала бы вас, что даст более точный ответ через несколько минут... ... Человек обладает множеством качеств, которые делают его "вежливым", но их определения туманны и расплывчаты... ... Вежливая программа интересуется мной... ... Большинство программ не знает ничего о том, кто ею пользуется... ... Действительно, ни одна из программ на моем персональном компьютере не помнит ни меня, ни моих привычек, несмотря на то, что только я и никто другой постоянно, снова и снова пользуюсь ею... ... Каждая программа должна стараться запомнить мои привычки, и в частности, все, что я ей говорю... ... Программист считает реальный мир миром информации, так что как только программе требуется какая-либо информация, она просто требует ее от пользователя... ... Но бездумная программа забывает эту информацию, считая что всегда может затребовать ее снова, если потребуется... ... Например, в моей программе электронной почты есть 11 человек по имени Дейв... ... Когда я создаю новое письмо и печатаю "Дейв" в графе "Кому", я ожидаю, что на основе моего поведения в прошлом программа догадается, что я имею в виду Дейва Карлика... ... Вместо этого, программа ведет себе довольно глупо, всегда предлагая мне окно для выбора нужного Дейва из 11 вариантов... ... Программе попросту наплевать на меня, она относится ко мне, как к чужаку, хотя я – единственный человек, которого она знает... ... Вежливая программа относится ко мне иначе, чем к другим... ... Невежливая программа контролирует действия пользователя, которые кажутся ей некомпетентными... ... Нет ничего страшного в том, чтобы программа выразила свое мнение о том, что я сделал ошибку, но она ни в коем случае не должна судить мои действия... ... Например, программа может утверждать, что я не могу отправить заказ, пока не введу свой номер социального страхования, но если я все таки захочу отправить заказ без него, программа должна сделать так как я сказал... ... Вежливая программа предусмотрительна... ... Большинство программ не делает этого... ... Вежливая программа обладает здравым смыслом... ... Большинство программ не делают различия между кухней и обеденным залом, помещая рядом часто-используемые и никогда не используемые элементы управления... ... В программе можно встретить пункты меню предлагающие простые, безвредные функции рядом с чрезвычайными, отменить которые невозможно... ... Это как если бы вас усадили за стол рядом с духовкой... ... Мы то и дело слышим ужасные истории о компьютерных системах, которые шлют клиентам чеки на 0... ... Вежливая программа предвосхищает мои нужды... ... Почему бы не использовать это время, чтобы предварительно загрузить страницы, ссылки на которые видны в окне... ... Вежливая программа отзывчива... ... Многие из запущенных программ, включая Windows 95, реагируют на смену разрешения изменением размера, формы и положения на экране своих окон... ... Информация об этом легко доступна, однако программа не заботится о моих очевидных нуждах... ... Вежливая программа умалчивает о своих проблемах... ... Программы тоже должны молчать о своих проблемах и интересоваться вашими... ... Программы всегда досаждают мне подтверждающими сообщениями и ненужными строками состояний... ... Меня не интересую затруднения программы в вопросе когда чистить "корзину"... ... Программа не только должна молчать о своих проблемах, но и должна уметь решать их сама... ... Вежливая программа хорошо информирована... ... Программы постоянно предлагают мне варианты выбора, которые, по разным причинам, в данный момент недоступны... ... Программа должна знать это, и не выводить их на экран... ... Вежливая программа восприимчива... ... Я раскрываю на весь экран окно любой запущенной программы... ... Но программы, которые я запускаю, не замечают этот факт... ... Другие пользователи работают с программами в маленьком окне, чтобы видеть Рабочий Стол... ... Так просто для программы понять это и предугадать действия пользователя... ... Вежливая программа уверена в себе... ... В любом случае, программа должна быть уверенной в своих действиях, а не перекладывать ответственность на меня... ... Вежливая программа не задает лишних вопросов... ... " Даже самый требовательный гурман не захочет никакого салата с таким отношением, однако программы все время ведут себя подобным образом... ... Невежливая программа задает множество раздражающих вопросов... ... Мы обычно смотрим на витрины праздно, обдумывая, выбирая, или игнорируя товары, которые нам предлагают... ... Вежливая программа является подстраиваемой... ... Однако системам работающим вручную присуща гибкость – свойство, которое на так просто выделить среди остальных... ... Любая "ручная" система имеет важное но парадоксальное состояние неопределенности (о котором не говорят, но часто пользуются), когда транзакция может быть принята, но полностью еще не обработана... ... Эти негибкие правила делают программу и человека соперниками, и поскольку человеку не дают подстраиваться, чтобы избежать больших ошибок, он вскоре перестает заботится о защите программы от более серьезных проблем... ... Подстраиваемость – одно из немногих качеств человека, связанных с вежливостью, которое трудно встроить в компьютерную систему... ... Если бы процесс временной приостановки правил стал бы широко известен, у людей появилось бы желание злоупотребить этим... ... Вежливая программа приносит удовлетворение... ... Компьютер не сделает ничего, пока вы не затратите огромных усилий на написание программы... ... Поэтому программисты создают свои программы точно такими же... ... Их программы заставляют пользователя вводить всю возможную информацию, а сами и пальцем не пошевелят... ... Мы можем сделать программы значительно более вежливыми, если они будут работать для того, чтобы предоставить пользователю всю возможную информацию без значительных усилий с его стороны... ... Вежливая программа внушает доверие... ... Программы раздражают нас не из-за недостатка возможностей, а из-за отсутствия вежливости... ... Как показывает приведенный список характеристик, в большинстве случаев сделать вежливую программу ничуть не труднее, чем невежливую... Подробнее: http://fit-media.com/post_1203349390.htmlWindows с маленькой буквы w
Степень соответствия запросу: 15,73%
Фрагменты текста поста : ... Windows с маленькой буквы w Все программы базируются на основе двух типов окон: главных и вспомогательных, таких как диалоговые окна и окна документов... ... Выбор типа окон – начальный шаг в создании внешнего вида программы... ... Создавая удобный пользовательский интерфейс, нельзя просто гадать, какие окна использовать в программе... ... Лишние комнаты Если изобразить программу в виде дома, то можно представить каждое окно в виде отдельной комнаты... ... Дом будет соответствовать главному окну программы, а каждая комната – окну диалога или документа... ... Точно так же и при создании программы мы не должны добавлять окно в нее до тех пор, пока оно не будет служить какой-то цели, которой нельзя или невозможно достичь в уже существующих окнах... ... Например, в большинстве программ для рисования, для установки глубины тени объекта часто используется текстовое поле или ползунок в отдельном диалоговом окне... ... После изменения этого значения программа для продолжения работы возвращается к главному окну... ... В программе для рисования главной задачей является работа с изображением, а так как изображение находится в главном окне, то все инструменты для работы c ним тоже должны быть расположены здесь же, в главном окне... ... Установка глубины тени – не такая уж часто используемая операция, но она все же тесно связана с процессом рисования... ... Если бы художник рисовал один и тот же рисунок карандашом на бумаге, он мог бы использовать другой инструмент – ластик – и для этого ему не нужно было бы переходить к другому столу... ... В программе глубину тени можно настраивать с помощью, например, кнопки на панели инструментов... ... Однако с точки зрения художника эта функция – часть процесса рисования и поэтому должна находиться в главное окно... ... Современные средства разработки программ позволяют создавать диалоговые окна, но добавление своих элементов управления или создание идиом непосредственной манипуляции (direct manipulation) в них обычно не поддерживается, поэтому разработчик, желающий создать качественный интерфейс, вынужден создавать свои элементы управления... ... Приличие и скромность – вот две причины, по которым вы пойдете в отдельную комнату... ... Когда я хочу выполнить функцию, выпадающую из нормальной последовательности событий, программа должна предоставить мне для этого специальное место... ... Остальные части программы могут служить для обычных задач, таких как ввод и проверка записей... ... Для достижения хорошего эффекта мы должны анализировать функции программы с точки зрения целей пользователя... ... Если это программа для рисования, то цель пользователя - создать привлекательное изображение... ... Все инструменты для рисования напрямую связаны с этой целью, а особенно разнообразные карандаши, кисти и ластики... ... Эти инструменты должны быть встроены в рабочую область программы, точно так как художник разложил бы все свои карандаши, ручки, ножи, резинки и другие инструменты под рукой, на своем столе... ... Эти же инструменты в программе должны распологаться по краям области рисования, чтобы их можно было "включить" одним кликом... ... Если же пользователь решил вставить в свой рисунок другую готовую картинку, эта задача все еще достаточно связана с целью художника – создать красивый рисунок, но для этого нужны другие функции, не относящиеся к рисованию... ... Тот же художник наверняка хранит каталог с образцами не прямо на столе, а где-то рядом, например, на полке, до которой можно дотянуться, не вставая... ... В программе функция вставки изображения тоже должна быть легко доступной, но, так как для нее нужен отдельный набор инструментов, которые в обычной работе не используются, ее следует разместить в отдельном окне... ... Когда пользователь закончил рисование, он достиг своей начальной цели... ... Художник бы в этом месте открепил лист от стола, перешел в другую комнату, покрыл его закрепляющим раствором, свернул и положил в тубус... ... Он неслучайно оставляет свои инструменты для рисования на столе – он не хочет, чтобы на них попал фиксатор, или краска случайно испортила картину... ... В программном эквиваленте этого процесса, пользователь временно оставляет программу рисования вместе со всеми инструментами, находит подходящее место на диске, чтобы сохранить изображение, после чего, возможно, посылает его по электронной почте... ... С помощью выяснения целей пользователя мы естественным образом подходим к наиболее подходящей форме программы... ... Вместо того, чтобы просто помещать каждую новую функцию в новое окно, мы видим, что некоторые функции вообще не нужно помещать в диалоговые окна, другие должны быть вынесены в отдельное окно, интегрированное в общий интерфейс, а некоторые функции вообще нужно убрать из программы... ... Если в программе используется одно окно для одной функции, экран быстро становится визуально загроможденным... ... Есть, правда, модальные диалоги, которые всегда возвращают вас в точку отправления, поэтому они не работают против вас... ... В Visual Basic, Delphi, C# и других языках легко создавать формы, которые представляют собой независимые окна верхнего уровня... ... Если же программа используется часто, это может превратиться в серьезную проблему... ... Если в вашей программе дюжина окон, потому что вы честно верите в то, что каждое из них приближает пользователя к нескольким различным целям, то вы должны разбить ее на несколько маленьких программ... ... У программы не может быть больше двух-трех целей, а значит, у неё не должно быть больше двух или трех окон... ... Один программист на Visual Basic однажды с гордостью заявил мне, что его программу было особенно тяжело разрабатывать, потому что в ней содержится 57 форм... ... Ни одну программу с 57 формами нельзя использовать эффективно... Подробнее: http://fit-media.com/post_1204300625.htmlПользовательский интерфейс
Степень соответствия запросу: 8,94%
Фрагменты текста поста : ... К сожалению, как всякое модное слово (искусственный интеллект, мультимедиа, Internet) термин пользовательский интерфейс незамедлительно начали использовать в качестве рекламного аргумента в результате чего его смысл стал куда менее определенным... ... У него есть время и мотивация для приспосабливания к сколь угодно сложному и противоестественному интерфейсу... ... Время, которое он проводит с компьютером, достаточно велико, чтобы даже большие затраты на обучение окупились... ... ) Сегодня Internet стал для обыкновенных людей мощной побудительной причиной покупать компьютеры... ... Так, оконный интерфейс задумывался как метафора рабочего стола с документами... ... В рамках нашей метафоры мы должны разработать систему интерфейсных элементов, своего рода алфавит взаимодействия, изучив который пользователь сможет легко делать то, что ему нужно... ... И, наконец, мы должны выбрать общий изобразительный стиль, который был бы легко узнаваем и приятен для глаз... ... В первый же раз, когда пользователь натолкнется на различие, он испытает тяжелый психологический шок, который может привести к полному отторжению системы... ... А вот другие игры, скажем Тетрис и столь же популярные Color Lines (шарики), имеют очень простую и условную среду, обеспечивающую психологический комфорт пользователя... ... Тут мы подходим к еще одному важному принципу построения дизайна интерфейса - балансу между интерактивными возможностями программы и сложностью ее изобразительного ряда... ... Так же как при создании игр главным является баланс между сложностью игры и ее увлекательностью, выработка которого занимает основное время, так и в интерфейсе должен обеспечиваться баланс между функциональными возможностями программы, возможностями манипуляции ею и ее изобразительным рядом... ... Простая программа не имеет права сложно управляться, это очевидно, но она и не имеет права на слишком изощренную графику - грех, типичный для сегодняшних продуктов... ... Из этого, кстати, не следует, что у сложной программы должна быть изощренная графика и сложные пути взаимодействия... ... (Важное напоминание - мы разговариваем не о программах, предназначенных для профессиональной деятельности... ... Пользователь простит вам обман, заключающийся в том, что простая на первый взгляд программа постепенно приоткрывает свои новые (в том числе и интерфейсные) возможности... ... Это может получиться случайно, когда пользователь по привычке попробует прием, освоенный в общении с другой программой, и с радостным удивлением обнаружит, что ваша программа правильно разобралась в том, чего он хотел... ... Похожий эффект может стать и естественным развитием среды, когда из освоенных простых действий пользователь сделает заключение, что должно существовать и некое сложное, и программа снова обрадует его взаимопониманием... ... В итоге места для содержательной информации о среде и функциональности остается совсем мало, а экран производит впечатление рабочего стола, который давно не разбирали... ... Оконный интерфейс был в начале 80-х столь же революционным и сыграл столь же положительную роль, что и текстовый интерфейс 70-х... ... Сегодня вычислительные возможности машин позволяют разработчику интерфейсов пользоваться средствами, о которых полтора десятка лет назад страшно было подумать... ... В конце концов, во многих приложениях используются разные формы динамики изображения, которые называются модным словом " мультимедиа "... ... Две анимированные среды интерфейса разработаны в той самой фирме XEROX PARC , которой мы обязаны появлением идеи оконного интерфейса (и даже в группе того самого Стюарда Карда , которому принадлежит авторство этой идеи)... ... Одна - "Конические деревья" - является визуализацией файловой системы компьютера и похожа на систему детских пирамидок, каждый уровень которой соответствует уровню файлового каталога... ... Соль модели в том, что нужный файл можно "приблизить" поворотом карусели (может быть, не одной), идущим в режиме анимации... ... Программисты, хвастаясь скоростью своих программ, замеряют время, "теряемое" между картинками... ... Существует еще одно свойство анимационного пользовательского интерфейса, которое существенно улучшает его полезность по сравнению с графическим интерфейсом, а именно динамически визуальные сигналы... ... Создавая анимационный интерфейс, надо закладывать систему динамических визуальных сигналов с самого начала, поскольку они являются столь же естественной, сколь и необходимой частью анимационного интерфейса... ... Многие программисты еще помнят о трудностях перехода к созданию программ, управляемых событиями, как того требует оконная среда... ... Для использования анимационного интерфейса придется переходить к программам, управляемым временем... ... Вне зависимости от активности пользователя программе, построенной на анимационном интерфейсе, всегда есть что делать (например, менять фазу мигания)... ... Такие требования легче всего реализуются в специфической архитектуре программ, управляемых временем... ... На каждом такте работы такой программы заново строится изображение на экране, а события, инициированные пользователем, например ввод с клавиатуры, отрабатываются всего лишь изменением состояния программы... ... Таким образом, к двум привычным уровням программы - функциональному и интерфейсному - добавляется визуальный... ... Для дизайна конкретной программы требуется разработка собственной среды взаимодействия (направленной на реализацию конкретной функциональности) на базе общепринятой системы динамических визуальных сигналов... ... Практически единственный положительный пример можно взять из телевидения, а именно серию заставок к программам... ... Все компьютерные программы в корне меняют дизайн при переходе от одного окна к другому... ... И все это, сохраняя выбранный стиль... ... Пользователю, который ничего этого не заметит, но зато будет гораздо проще и быстрее взаимодействовать с системой... ... На самом деле, хороший интерфейс пользователями замечается подсознательно, и, когда он нравится, симпатии переносятся на функциональную часть программы... ... К сожалению, следует констатировать, что сегодня стандартом стал плохой интерфейс, даже не столько плохо сделанный, сколько вообще "получившийся сам собой"... ... Так, самое модное сейчас применение компьютеров - блуждание по Сети - имеет тот интерфейс, который вытекает из языка HTML, а он, в свою очередь, производит впечатление "времянки", которая, как теперь ясно, пришла всерьез и надолго... ... Моя любимая цитата из обзора интерфейсов - " Интерфейс этой программы неестественен, потому что клавиша Alt+F4 не закрывает приложения "... Подробнее: http://fit-media.com/post_1204019048.htmlКак создать хороший интерфейс пользователя?
Степень соответствия запросу: 8,14%
Фрагменты текста поста : ... Каждый день разработчики программного обеспечения создают интерфейс своих программ без применения каких-либо специальных методов... ... Я думаю нужен, и вот почему: Пользователи думают, что интерфейс - это и есть программа... ... Чтобы пользователи работали более продуктивно, программа должна быть простой в использовании... ... Достижения технологии значительно увеличили количество решений, которые необходимо принимать во время разработки интерфейса Общеплатформенные стандарты пользовательского интерфейса решают только 15% вопросов разработки в типичном проекте... ... Разработчики программ могут последовать простому прагматическому методу, кратко описанному в этой статье... ... Выяснение целей и ограничений проекта Начните процесс создания интерфейса с определения целей проекта а также внутренних и внешние обстоятельств, которые вы должны принять во внимание... ... Рекомендую вам уделить одинаковое внимание следующим пунктам: Пользователи: их опыт работы с компьютером, мотивы, размер/важность групп пользователей, образцы (типовые ситуации) использования Задачи: что послужило причиной создания проекта, этапы создания проекта, какие результаты должны быть получены, какая информация необходима и когда Технология разработки и платформа , на которой будут работать пользователи Среда , в которой будет создаваться и использоваться проект (физическая, рыночная, организационная и культурная) Используйте эту информацию для определения и расстановки приоритетов... ... Окна нашей программы просто не поместятся на экране... ... Много дискуссий без значительного прогресса Вы не оправдаете ожиданий спонсоров вашего проекта (людей у которых есть причины забоится о доходе) Начальная фаза разработки: концептуальный дизайн В этой фазе разработки вы должны решить какой интерфейс лучше всего будет подходить для достижения ваших целей - текстовый, графический или мультимедиа... ... Основывайте ваш выбор на той собранной вами информации о пользователях и ситуациях, в которых они работают, а не просто делайте вашу программу похожей на среду разработки... ... Затем создайте концептуальную модель программы... ... Под концептуальной моделью я имею в виду чертеж, схему, которая показывает главные элементы, процессы и связи в программе с точки зрения пользователя... ... абсолютный минимум, который пользователь может понять о программе, и тем не менее успешно пользоваться ею"... ... Если у вас есть только нечеткая модель того, что вы пытаетесь сказать пользователю, он в конце концов останется с еще более нечеткой идеей того что делает ваша программа и как она работает... ... Навигационная модель показывает, как вы планируете распределять функции или задачи между окнами вашей программы... ... Чтобы оценить концептуальную модель программы, вы можете просто показать ее схему пользователям и попросить объяснить ее вам... ... Отметьте те места, в которых ваша программа может помочь ему в его работе... ... Например, прорабатывая задачи для программы планирования расписаний я обнаружила, что учителя обычно создают планы уроков для нескольких предметов даже если они еще не знают в какой день и в какое время будут проходить занятия... ... Исходная программа, которую я оценивала, имела ориентированный на расписание подход, встроенный в базу данных, так что учителя могли планировать уроки только назначив их дату и время... ... Если вы не будете использовать этот подход, вы рискуете создать программу, в которой пользователи будут перемещаться от одного окна к другому для того, чтобы выполнить свою задачу... ... Процесс разработки, основанный на задачах пользователей особенно важен, когда ваша программа предназначена для того, чтобы помогать пользователям работать быстрее и эффективнее... ... это визуальные характеристики объектов, которые сигнализируют о том, что с ними можно сделать... ... Размер, цвет, яркость, местоположение, форма и текстура - все это средства, которые используются для того чтобы сгруппировать элементы вместе по важности или по похожести... ... Если вы пропустите эту стадию, вы рискуете получить программу, которая выглядит непрофессионально и непривлекательно... ... Если вы будете пренебрегать визуальным дизайном, ваша программа будет посылать хаотические сигналы, что приведет к увеличению ошибок, путанице и раздражению пользователя... ... Если вы хотите быть уверенным что ваша программа понравится пользователям, собирайте мнения потенциальных пользователей во время процесса разработки... ... В тестировании вы предлагаете пользователю выполнить определенное задание на некоторой версии вашей программы (рисунок одного окна, бумажный прототип, или рабочая система)... ... Тестируя готовую программу до ее официального выпуска вы можете найти и подчистить небольшие проблемы, которые могут стать причиной раздражения пользователя... ... Наблюдение пользователей в процессе тестирования вашей программы это самый лучший и самый дешевый способ образования... Подробнее: http://fit-media.com/post_1205661604.htmlМиф о метафоре
Степень соответствия запросу: 5,27%
Фрагменты текста поста : ... Миф о метафоре Разработчики программ часто говорят о " нахождении правильной метафоры " в качестве основы для интерфейса... ... Поэтому они создают интерфейсы, которые выглядят как офисы со столами, папками документов, телефонами и адресными книгами, в надежде создать программу с неслыханной легкостью обучения... ... Самая большая проблема заключается в том, что метафоры жестко прибивают гвоздями наши концептуальные ноги к полу, навсегда ограничивая возможности наших программ... ... Три парадигмы интерфейсов Я считаю, что для пользовательских интерфейсов программ существует три парадигмы: технологическая , метафорическая и идиоматическая... ... Технологическая парадигма основана на понимании механизма работы программы - сложный подход... ... Хотя в современных программах встречаются все три подхода, одна лишь метафорическая парадигма так широко популярна, что следуя по ее ложному следу мы часто препятствуем созданию по-настоящему хороших интерфейсов... ... Чтобы успешно им пользоваться, пользователь должен понимать, как работает программа... ... Подавляющее большинство компьютерных программ сегодня строятся по такой же архитектуре, безо всякого стыда показывая нам как они были созданы: одна кнопка на функцию, одна функция на модуль кода, команды и процессы, которые точно отражают внутренние алгоритмы и структуры данных... ... Мы можем узнать, как работает технологическая программа, просто запустив ее... ... Технологическая парадигма понятна инженерам, которые хотят знать, как все устроено... ... Поэтому так много программ следует ей... ... Но большинство пользователей - не инженеры и совершенно не хотят разбираться в устройстве программ или же не имеют на это времени... ... 25" дискетам, потому что на них было записано много хороших программ... ... Первой успешной в коммерческом плане реализацией интерфейса PARC стал Макинтош , с его метафорами рабочего стола, мусорной корзины и папок с файлами... ... Метафора, хорошо работающая для простого случая в простой программе часто перестает работать, как только задача усложняется и увеличивается в размере... ... Слабая сторона этого метода в том, что он зависит от капризного человеческого ума, который может не иметь знаний или логических способностей, необходимых для совершения отождествления... ... Метафорическая парадигма - шаг вперед, потому что ее интуитивное понимание происходит без всякого знания механизма работы программ... ... Тот эпизод в фильме Стар Трек , когда Скотти возвращается на Землю в 21 век и пытается говорить с компьютером через мышь - один из моментов, который не является фантастикой... ... Золотые арки МакДональдс , три алмаза Мицубиси , пять пересекающихся Олимпийских колец и даже летящее окно Майкрософт - не метафорические идиомы, которые наполнены внутренним смыслом и опознаются сразу же... ... Ирония в том, что большинство знакомых нам элементов GUI, которые считаются метафорическими на самом деле являются идиоматическими... ... Проблемы Ранее мы уже упомянули о некоторых проблемах, которые возникают, если зависеть от метафор при создании интерфейса... ... Но для таких часто используемых в программах понятий как процессы, связи, службы и преобразования это сделать трудно или даже невозможно... ... Очень сложно найти хорошую визуальную метафору для покупки билета, смены каналов, приобретения товара, нахождения ссылки, установки формата, вращения инструмента или смены разрешения экрана, хотя именно такие операции мы чаще всего встречаем в программах... ... С одной стороны вы можете интуитивно понять основные функции программы, но с другой стороны метафора ограничивает навигацию очень элементарным, линейным маршрутом... ... В физическом мире это нормально, но в программе нет нужды заставлять пользователя делать все старыми неуклюжими методами... ... Может показаться, что изображать телефонное соединение картинкой телефона на столе имеет смысл, но в действительности это ведет вас к плохому дизайну... ... Существуют программы с "адресными книгами" телефонных номеров, похожие на наши записные книжки... Подробнее: http://fit-media.com/post_1206190085.htmlЕсли бы microsoft не была такой ленивой...
Степень соответствия запросу: 2,55%
Фрагменты текста поста : ... ) возможности операционной системе линукс, суть которой заключается в том, что можно окну любого приложения придать статус "Поверх всех"... ... Дело в том, что рано или поздно перед разработчиками прикладных программ встает проблема проверки этого самого правописания в вводимом пользователями тексте... ... Искать сторонние компоненты, проверяющие синтаксис по своим словарям я не стал, т... ... Да и сами алгоритмы проверки, которые отлично справляются с английским языком, при переходе на великий-могучий обычно начинают откровенно глючить и косячить... ... В нем одних только приставок и суффиксов столько, что ни один буржуйский рядом не стоял... ... Причина, видимо, в том, что они в основе своей содержат все те же западные поделки, которые наши умельцы слегка "адаптировали" под русский... ... И тут же получаем готовый пример именно проверки правописания в свобственной программе, используя механизм из microsoft Word... ... Как это обычно делает мелко-мягкая контора, пример оказался хоть и рабочим (правда с натяжками), но совершенно неприменимым в практической жизни... ... Следствие – моргание полноэкранного окна ворда поверх вашей программы при каждой проверке орфографии... ... связь с вордом устанавливается еще в момент запуска программы (ранне связывание) и, если на машине клиента вдруг ворда не кажется или окажется, но другой версии, то ваша программа покажет пользователю большую фигу в виде фолта... ... Сама RCW представляет собой не что иное как DLL-файл , который придется таскать вместе с программой (без него тоже получите фолт, причем уже вне зависимости от наличия ворда на машине клиента)... ... Программе нужно лишь определить, правильно написано это слово или неправильно... ... Для работы программа использовала бы только одну копию ворда, т... ... при старте программы он загружается, при завершении программы – выгружается Никаких внешних признаков присутствия ворда – окошек, мограний и т... ... даже если офис не установлен, программа должна корректно работать (естественно уже без проверки орфографии)... ... Dispose() при завершении работы вашей программы... ... Прикол в том, что практически 100% программ используют для ввода текста элементы управления, встроенные в операционную систему... ... Так вот, достаточно встроить механизм проверки орфографии в саму ОС и подключить его к двум основным средствам ввода текста (в терминах NET Framework это TextBox и RichTextBox ), как абсолютно все программы, без какого бы то ни было вмешательства разработчиков, приобретут возможность отображения неверно написанных слов... ... А перед счастливыми программистами больше никогда не встанет задача реализации в своих программах этой самой "проверки грамотности ввода"... ... добавили вы в словарь слово в ворде и его уже опознают все остальные программы... ... :( %%%microsoft word, проверка синтаксиса, внедрение в свои программы, NET Framework, C#%%%... Подробнее: http://fit-media.com/post_1205882168.htmlЗалепа №13. О грамотном проектировании и неграмотном IDE.
Степень соответствия запросу: 2,53%
Фрагменты текста поста : ... Задача: Есть некая программа, работающая с базами данных... ... Естественно в ней куча таблиц, большинство из которых представляют собой достаточно простые справочники... ... В программе, кроме основных функций, должна быть возможность как редактирования списка пользователей так и изменения параметров отдельных пользователей... ... такое решение, при котором наша программа не превратится в кашу из кучи классов, лишних открытых методов, свойств и форм... ... Здравый смысл подсказывает, что справочник должен быть представлен неким классом (назовем его CUserMgr ), который позволяет основной программе получить все необходимые данные о пользователе и скрывает всю внутреннюю структуру внутри себя... ... Опять же для простоты решим, что программе нужно получать только лишь логин и пароль пользователя по его идентификатору... ... Итак, получаем как минимум две формы, которые должны напрямую обращаться к внутренней структуре класса CUserMgr , т... ... Открытая структура класса менеджера приводит к путанице и соблазну использовать эти методы (которые по логике должны быть закрытыми) не по назначению... ... Все это можно перетерпеть если вы создаете класс, который будет использоваться только в вашей программе и код которого никогда не будет использован где-либо еще... ... Он их будет создавать и удалять (редактирование списка пользователей), получать из них информацию и передавать ее в основную программу... ... в реальной программе некоторые закрытые методы как CUser так и CUserMgr все же придется открыть... ... Для справочника пользователей, которых не больше сотни этот подход будет работать более-менее нормально... ... Но если это будет справочник артикулов продукции, которых может быть несколько десятков тысяч, то мы получи дикий перерасход памяти, ведь для каждого объекта будет создано отдельное (пусть и скрытое) окно... ... Это вызовет не только расход памяти, но и будет существенно тормозить программу... ... В реальных крупных программах не советую его использовать... ... } } Итак, вот что мы получаем при таком подходе: программа "видит" только класс CUserMgr , о существовании внутренних классов она даже не подозревает и естественно не может получить к ним доступ... ... Если внешний интерфейс не изменится, то эти модификации никак не скажутся на работе основной программы, использующей наш класс... ... Но в IDE вы не сможете использовать визуальный редактор для форм, которые являются вложенными в другие классы (в нашем случае это CUserEdit и CUserList ) - IDE вместо отображения формы просто будет материться по-английски... ... Этот вопрос нужно адресовать разработчикам Visual Studio , которые (как обычно) лучше нас с вами знают что и как должно работать... Подробнее: http://fit-media.com/post_1204892317.htmlМаксимум производительности
Степень соответствия запросу: 2,37%
Фрагменты текста поста : ... За последние 20 лет сложилась странная ситуация - в то время как мощность компьютеров увеличилась в несколько тысяч раз, скорость работы пользователя в некоторых случаях даже замедлилась из-за непомерно раздутых операционных систем и программ... ... Так как заранее неизвестно, какие именно данные потребуются, может возникнуть необходимость загрузки большого объема данных, которые никогда не будут использованы - вот вам и противоречие между производительностью человека и компьютера... ... Производительность человека Существуют два метода, которые ведут к значительному увеличению производительности человека: Полное отстранение пользователя от работы... ... Три операции, которые можно упростить Работая на компьютере, пользователи выполняют три основных операции: Принимают решения на основе информации, касающейся текущей задачи Собирают данные, необходимые для выполнения текущей задачи Манипулируют компьютером с помощью элементов управления Например, пользуясь автомобилем, пользователи вначале решают, куда они хотят ехать... ... Если рассмотреть каждый из этих шагов, уменьшая количество решений, которые необходимо принимать человеку, позволяя компьютеру самому собирать данные, и уменьшая количество манипуляций, необходимых для достижения цели, то производительность человека при работе с компьютером значительно увеличится... ... Единственное решение, которое необходимо принять обычному его пользователю &ndash... ... выбор объекта, который нужно сфотографировать... ... Это объясняет большую популярность таких аппаратов, которые сами проводят необходимые настройки, чтобы фотография получилась хорошо освещенной и правильно сфокусированной... ... Такие фотоаппараты устраняют необходимость принятия решений низкого уровня, которые мог бы сделать профессионал... ... Программы часто демонстрируют такую же механическую сложность, как и реальные механизмы, требуя, чтобы пользователь служил им, а не наоборот... ... Например, можно вводить информацию с бумажных форм в компьютер, используя сканер и программу оптического распознавания текста... ... Часто можно видеть, что программа задает пользователю вопрос, на который он не может ответить, не обратившись за информацией куда-то еще... ... Такая программа скорее всего никогда не тестировалась на пользователях... ... Однако в разовых программах такая ситуация может оказаться критической... ... Слишком часто создатели программ предлагают нам неясные вопросы с двумя одинаково выглядящими вариантами ответа, хотя одно из решений является неверным для большинства... ... Не задавайте также пользователю вопрос о какой-нибудь настройке, смысл которой неясен... ... Уменьшайте субъективное время восприятия Все вышеописанные подходы касаются измеряемого времени, которое требуется пользователю для выполнения задачи... ... Тогда пригласили дизайнера, который смог решить проблему... ... Тестируйте программу на пользователях... ... Основная стратегия уменьшения субъективного времени восприятия: Пользователи должны быть постоянно заняты Когда в процессе работы возникает неизбежная пауза, например, потому что программа должна обратиться к серверу, убедитесь, что пользователь занят и развлечен... ... Когда оставшееся время предугадать невозможно, покажите анимированный объект, который даст пользователям понять, что система не зависла... ... Индикатор, который трудно заметить, может и не существовать... Подробнее: http://fit-media.com/post_1207048697.htmlФайлы vs базы данных.
Степень соответствия запросу: 0,89%
Фрагменты текста поста : ... В последнее время все чаще нахожу в интернете статьи, которые расхваливают сайтовые движки, созданные без использования баз данных , т... ... Кстати, все нижеописанное касается и других поделок от Lasto, которые собирают статистику — сплогов, нового варианта nano-CMS и т... ... Итак, последовательность действий модуля сбора статистики Lasto-блога примерно такова: при обращении серфера к любой странице сайта запускается один и тот же скрипт, который должен собирать статистическую информацию: кто пришел (серфер или бот), откуда он пришел (сайт-источник), куда он пришел (страница нашего сайта) и т... ... db — данные о хитах (метка времени хита, IP-адрес источника, User-Agent клиента, хост источника, страница сайта к которой обратился клиент)... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... html'][к-во дней] Число, которое мы «увидим» в этой ячейке и будет искомым количеством посетителей нашей страницы... ... Прикол в том, что unserialize восстанавливает точную копию исходного массива , даже если он многомерный, даже если его элементы представляют собой тоже массивы, которые в свою очередь тоже содержат массивы... ... com||вася пупкин'] В этом случае для сравнения строк будут использованы встроенные средства языка (библиотечные функции), которые работают гораздо быстрее самих PHP-шных скриптов, но все равно операцию эту быстрой не назовешь... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... // выделяем данные о заходах с искалок в отдельный массив Все это уже не столь важно... ... каждой записи из первой таблицы соответствуют несколько записей из второй, каждой из которых соответствуют несколько записей из третьей... ... Ни один скрипт тут рядом не стоял... ... В нашем случае размер записи (для третьей таблицы) составляет 12 байт , ведь там только три поля — Q_ID , Date и Hits , каждое из которых представляет собой 32-битное число и занимает 4 байта... ... В мире существуют тысячи компаний и фирм, которые пишут разные (часто весьма специализированные и уж совсем не дешевые ) моторы для сайтов... Подробнее: http://fit-media.com/post_1222679684.htmlDropBox - убийца фалообменников
Степень соответствия запросу: 0,74%
Фрагменты текста поста : ... Вот на нее и нажмем, сразу же начнется скачивание программы... ... , тем самым уведомив программу о том, что вы уже зарегистрировались в системе... ... В следующем окне введите е-мэйл и пароль, которые вы вводили при регистрации... ... , как предлагает сама программа... ... аж 5 раз (пока инсталлятор будет вам показывать все туже инструкцию по использованию программы... ... Нажмите на нее и выберите любую папку, в которой дропбокс должен разместить папку для обмена... ... , а так же валяется непонятный RTF файл, который можете сразу же стереть &mdash... ... Все остальные папки и файлы, которые вы можете создать и которые НЕ будут находиться внутри папок Public или Photos никогда не будут доступны другим пользователям (за одним маленьким исключением, которое называется "... ... и скопируйте в нее несколько фотографий: Если файлы большие или ваше соединение с интернет не очень быстрое, то вы заметите, что у каждой иконки сперва появляется синий значек с двумя стрелочками, который потом заменяется на зеленый с галочкой... ... Ну и на последок пару замечаний по работе программы... ... Но не стоит терять голову, есть куча файловых форматов, на которых эта штука не сработает... Подробнее: http://fit-media.com/post_1256945370.html
