Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 63 [показано 10]
Залепа №9. Microsoft друзей не признает.
Степень соответствия запросу: 39,2%
Фрагменты текста поста : ... Голуба "Правила программирования в С и С++" (речь идет именно о C++): Цитата: Как-то раз я видел интерфейс, в котором объект "календарь" позволял пользователю интерактивно выбирать дату, щелкая мышью на каком-либо из дней, показанных на изображении календаря... ... "Календарь" затем экспортирует эту дату в другие части программы, помещая ее в объект "дата", который возвращается из сообщения get_date()... ... При выполнении должным образом единственным видимым в других частях программы объектом был бы объект "дата"... ... "Дата" использовала бы объект "календарь" для реализации сообщения "инициализируй_себя" (которое могло бы быть конструктором), но "календарь" бы содержался внутри "даты"... ... Определение класса "календарь" можно было бы даже вложить в определение класса "дата"... ... Объект "дата" также мог бы поддерживать другие инициализирующие сообщения, такие как "инициализируй_себя_от_редактируемого_ввода" или "инициализируй_себя_из_строки", но во всех случаях объект "дата" отвечает за нужное для инициализации взаимодействие с пользовательским интерфейсом... ... Остальная часть программы просто бы непосредственно использовала "дату"... ... никто, кроме "даты", даже бы не знал о существовании объекта "календарь"... ... То есть вы бы объявили "дату" и приказали ей себя инициализировать... ... Затем вы можете передавать объект "дата" всюду, куда необходимо... ... Конечно, "дата" должна также уметь себя вывести, переслать в файл или из файла, сравнить себя с другими датами и так далее... ... Следуя описанному выше работа с классом "дата" должна выглядеть примерно так: Пример кода: CDate cd = new CDate()... ... // создали объект "дата" с текущей датой внутри cd = new CDate("15... ... // сохранили дату в файл cd... ... // прочи дату из файла int days = cd - new CDate("28... ... // получили дату, на год большую исходной int dw = cd... ... // отображение календаря для ввода даты пользователем... ... Control или иметь некий другой механизм, чтобы (при необходимости) без проблем встраиваться в пользовательский интерфейс... ... Итак, упростим задачу до предела: есть класс CDate , представляющий ни что иное как обычную календарную дату... ... Требования к реализации: 1) все операции касающиеся даты, должны выполняться в классе CDate... ... 3б) проект должен иметь некую "модульную" структуру, чтобы встраивание класса CDate в реальную программу было максимально простым... ... И поэтому, чтобы открыть доступ календарю к скрытой внутренней функциональности CDate , нам придется открыть эту функциональность и для всех остальных... ... А именно, если распространять свой класс CDate в виде исходников, то он потянет за собой и класс CCalendar , а мы бы не хотели, чтобы пользователь знал о нем... ... Если же скомпоновать наш класс в сборку (assembly), то класс календаря можно сделать ненаследуемым, но при таком подходе пользователю уже не удастся сделать программу из одного exe-файла - придется тягать за собой еще и нашу сборку... Подробнее: http://fit-media.com/post_1199568462.html14 принципов создания вежливых программ
Степень соответствия запросу: 24,18%
Фрагменты текста поста : ... Насс и Ривз использовали для тестов множество студентов-компьютерщиков, достаточно опытных для того чтобы самим написать тестовую программу... ... Из этого исследования следует важный вывод: Если мы хотим, чтобы наша программа понравилась пользователям, мы должны сделать ее поведение похожим на поведение человека... ... Они борются с идеей сделать компьютеры более похожими на людей, потому что они считают людей слабыми и несовершенными компьютерными устройствами... ... Может ли компьютер дать вам другой ответ, чем только что кому-то еще... ... Он запомнит что я люблю, а что нет, чтобы в будущем доставить мне удовольствие... ... Если бы я хотел послать письмо другому Дейву (например Дейву Форе), я бы написал Дейв Ф, Девид Форе или что-то еще, чтобы указать на мой неординарный выбор... ... Если хозяин отказывается сделать это, я скорее всего покину этот ресторан и поищу другой, где мои желания имеют приоритет перед желаниями владельца... ... Нет ничего страшного в том, чтобы программа выразила свое мнение о том, что я сделал ошибку, но она ни в коем случае не должна судить мои действия... ... Например, программа может утверждать, что я не могу отправить заказ, пока не введу свой номер социального страхования, но если я все таки захочу отправить заказ без него, программа должна сделать так как я сказал... ... Однако он может очень просто предвосхитить мои потребности и подготовится к ним, вместо того чтобы тратить время впустую... ... Почему бы не использовать это время, чтобы предварительно загрузить страницы, ссылки на которые видны в окне... ... Легче остановить запрос, если он окажется ненужным, чем ждать его выполнения... ... С другой стороны, как только наша беседа закончится, и я начну вертеть головой в поисках Рауля, я жду, что он сразу же поспешит к моему столику, чтобы узнать, что мне нужно... ... Когда я провожу презентации, мне необходимо временно сменить разрешение на 800х600 чтобы оно соответствовало низкому разрешению моего видео-проектора... ... Я хочу знать заранее, что объем партии ограничен и заказ нужно сделать заранее... ... Другие пользователи работают с программами в маленьком окне, чтобы видеть Рабочий Стол... ... Если они увидят, что я выхожу из уборной с расстегнутой ширинкой, я хочу чтобы кто-нибудь быстро, четко и ненавязчиво сказал мне об этом до того, как я войду в зал, чтобы произнести речь... ... Если я прошу компьютер удалить файл, я не хочу чтобы он спрашивал у меня "Вы уверены... ... Я хочу, чтобы он имел смелость в своих убеждениях и удалил файл... ... Затем я возвращаюсь чтобы обнаружить посреди экрана бессмысленное и пугающее окно диалога с вопросом "Вы действительно хотите печатать... ... Когда поступает какой-нибудь заказ с неполной информацией, он может обработать его и вернуться к нему позже, чтобы восполнить информацию... ... Например, автоматизированной системе требуется информация и о клиенте и о его заказе для того, чтобы выписать счет... ... Программисты не видят никакого резона в том, чтобы создавать промежуточные состояния, потому что в компьютере они не нужны... ... Однако большинство правил исходящих от компьютерных систем направлены на то, чтобы не допустить этих маленьких ошибок... ... Эти негибкие правила делают программу и человека соперниками, и поскольку человеку не дают подстраиваться, чтобы избежать больших ошибок, он вскоре перестает заботится о защите программы от более серьезных проблем... ... Для того, чтобы быть подстраиваемой система должна сделать свой внутренний процесс доступным опытному пользователю... ... Далее ему должны быть доступны инструменты для того чтобы вытащить документ из очереди и поместить его в самое начало... ... Люди использует подстраиваемость "ручных" систем во всех видах бизнеса чтобы удержаться на плаву... ... Принцип здесь простой – позволить пользователю делать все что он захочет, но подробно записывать все его действия, так что ответственность остается... ... Мы можем сделать программы значительно более вежливыми, если они будут работать для того, чтобы предоставить пользователю всю возможную информацию без значительных усилий с его стороны... ... Как показывает приведенный список характеристик, в большинстве случаев сделать вежливую программу ничуть не труднее, чем невежливую... Подробнее: http://fit-media.com/post_1203349390.htmlФайлы vs базы данных.
Степень соответствия запросу: 8,86%
Фрагменты текста поста : ... автор скрывает исходники, шифруя все в байт-код с помощью Zend-Guard), но общие выводы можно сделать просто проанализировав содержимое файлов, хранящих статистические данные... ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... URL страницы-источника дата, количество заходов... ... В качестве дат (видимо для оптимизации) используются целочисленные значения, равные количеству дней, прошедших с некой фиксированной даты (1 января 2000 года)... ... Таким образом, чтобы узнать, сколько человек посетило страницу stat... ... html в определенный день, нужно сперва вычислить сколько дней прошло с 1 января 2000 года до искомой даты, затем «заглянуть» в ячейку массива Пример кода $ar['pages']['/stat... ... При обращении серфера к странице, скрипт собирает всю необходимую информацию (имя страницы, URL страницы-источника, user-agent, дата обращения и т... ... она требует перебора части (а в худшем случае всех ) элементов массива и для каждого из них необходимо сделать сравнение достаточно длинных текстовых строк... ... Тут можно немного оптимизировать процесс и сделать обращение вида Пример кода $ar['allsein']['google... Подробнее: http://fit-media.com/post_1222679684.htmlМиф о метафоре
Степень соответствия запросу: 5,48%
Фрагменты текста поста : ... Чтобы успешно им пользоваться, пользователь должен понимать, как работает программа... ... Проблема в том, что обратное тоже верно: мы должны понять, как она работает, для того чтобы запустить ее... ... Эффективность этого метода огромна, потому что она использует грозное оружие человеческого ума - способность делать логические выводы... ... Процессор этого делать не умеет... ... Он и не должен делать этого, потому что большинство идиом вообще не имеют метафорического смысла... ... Некто наверняка потратил секунды три, чтобы в первый раз показать вам, как она работает, и вы сразу поняли... ... Тайленол - бессмысленное слово, но компания МакНейл'а потратила миллионы, чтобы вы ассоциировали это слово с безопасным, простым, и надежным избавлением от боли... ... Но для таких часто используемых в программах понятий как процессы, связи, службы и преобразования это сделать трудно или даже невозможно... ... Вы входите в здание, чтобы запустить приложение и видите коридор с дверьми, обозначающими функции... ... Чтобы запустить другое приложение, вы должны вернуться на улицу... ... В физическом мире это нормально, но в программе нет нужды заставлять пользователя делать все старыми неуклюжими методами... ... Почему бы не отказаться от рабского поклонение метафоре и дать пользователю все средства, не выходя на улицу... ... Но они не могут сделать этого, будучи ограниченными мрачной реальностью электрических цепей и пластмассовых корпусов... ... Почему наши коммуникационные устройства не позволяют делать несколько звонков одновременно или же звонить по указанным организациям... ... Бесконечное число идиом только и ждет, чтобы их открыли... Подробнее: http://fit-media.com/post_1206190085.htmlКак создать хороший интерфейс пользователя?
Степень соответствия запросу: 4,59%
Фрагменты текста поста : ... Чтобы пользователи работали более продуктивно, программа должна быть простой в использовании... ... Для того чтобы создать хороший интерфейс, на каждой стадии разработки необходима обратная связь от пользователей... ... Чтобы оценить концептуальную модель программы, вы можете просто показать ее схему пользователям и попросить объяснить ее вам... ... Вы знаете для чего нужно каждое, но для того чтобы наполнить их элементами управления, вам необходимо четкое понимание задач пользователя... ... Когда вы проводите интервью, задавайте открытые вопросы, чтобы пользователь мог дать вам ответ на основе своих действий... ... Исходная программа, которую я оценивала, имела ориентированный на расписание подход, встроенный в базу данных, так что учителя могли планировать уроки только назначив их дату и время... ... Если вы не будете использовать этот подход, вы рискуете создать программу, в которой пользователи будут перемещаться от одного окна к другому для того, чтобы выполнить свою задачу... ... Процесс разработки, основанный на задачах пользователей особенно важен, когда ваша программа предназначена для того, чтобы помогать пользователям работать быстрее и эффективнее... ... Визуальный дизайн: использование компонентов На этом этапе вы должны правильно использовать компоненты визуального дизайна чтобы показать пользователю для чего нужно каждое окно, и как им пользоваться... ... Чтобы выполнить этот этап, вы должны понимать, как пользователь воспринимает различные элементы управления... ... это визуальные характеристики объектов, которые сигнализируют о том, что с ними можно сделать... ... Размер, цвет, яркость, местоположение, форма и текстура - все это средства, которые используются для того чтобы сгруппировать элементы вместе по важности или по похожести... ... Вы можете даже снять весь процесс на видео или просто делать заметки... ... Вопрос только в том, хотите ли вы, чтобы это случилось когда вы еще можете исправить найденные проблемы... Подробнее: http://fit-media.com/post_1205661604.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 4,35%
Фрагменты текста поста : ... Чтоб не кусать локти Никто не застрахован от того, что выключив сегодня полностью рабочий компьютер, завтра просто не сможет его включить... ... да мало ли причин существует, чтоб лишиться всего, что собиралось или (что намного хуже) создавалось вашими руками и головой в течении многих месяцев... ... Вот и возникла у меня мысль дать пару советов о том, как автоматизировать процесс резервирования важной информации, чтобы потом делать это абсолютно не напрягаясь, всего одним кликом мыши... ... Сделать это можно командой: del f:\arhiv\*... ... А что делать если нужно создать копии нескольких папок... ... Достаточно одного файла чтобы создать сколько угодно копий... ... копируются абсолютно все файлы, хотя делать это каждый раз вовсе не обязательно... ... Эта программа не является специализированным бэкапером, но тем не менее она имеет все необходимое, чтобы удовлетворить наши потребности... ... требуется время на сжатие информации Чтобы не забивать вам и без того перегруженный информацией мозг описанием всех возможных команд и режимов я просто дам готовые команды, которые (немного измененные) вы можете начать использовать хоть прямо сейчас... Подробнее: http://fit-media.com/post_1203529769.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 4,35%
Фрагменты текста поста : ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... Определимся с задачей Нам нужно, чтобы интерфейс каким-то образом подсказывал пользователю, что именно от него (пользователя) требуется в данный момент... ... И очень желательно, чтобы эти подсказки не отвлекали и в тоже время были достаточно заметными, чтоб пользователь не смог их проигнорировать... ... Кроме того, чтоб понять что именно нужно программе, подсказку нужно прочесть - а это приводит к рассеиванию внимания... ... Но не стоит делать их яркими как новогодняя елка, а нужно просто слегка изменить цвет, чтобы каждое поле приобрело свой уникальный легкий цветовой оттенок... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... Подробнее: http://fit-media.com/post_1205142560.htmlПользовательский интерфейс
Степень соответствия запросу: 4,07%
Фрагменты текста поста : ... Время, которое он проводит с компьютером, достаточно велико, чтобы даже большие затраты на обучение окупились... ... Во-вторых, ему не нужно каждый раз заглядывать в руководство, чтобы узнать, как выполняется то или иное действие... ... Теперь нам нужно сделать концептуальный дизайн интерфейса... ... В рамках нашей метафоры мы должны разработать систему интерфейсных элементов, своего рода алфавит взаимодействия, изучив который пользователь сможет легко делать то, что ему нужно... ... Считается хорошим тоном иметь кнопки одного размера и аккуратно расположенные, чтобы вынудить пользователя каждый раз прочитывать текст... ... Чтобы понять, что разнообразие не означает эстетического нарушения, посмотрим на пульты дистанционного управления телевизора или видеомагнитофона... ... А фотографическая похожесть может спровоцировать пользователя на то, чтобы пользоваться этой искусственной средой в точности как той, которую она напоминает... ... Важно, чтобы эти сложности не лезли в глаза при первом знакомстве с программой, отпугивая новичка... ... Чтобы пользователю легко было с ними взаимодействовать, они должны занимать на экране заметное место (а то трудно будет попасть в них мышью)... ... Пользователь может сделать средним любой отрезок стены, причем это тоже происходит в режиме анимации... ... В этот интервал входит не только время вывода новой картинки на экран, но и время осознания ее пользователем, ведь определенное время и усилия тратятся пользователем на то, чтобы понять, как каждая следующая картинка соотносится с предыдущей... ... Динамические визуальные сигналы - это изменение изображения на экране с целью дать пользователю дополнительную информацию... ... Вне зависимости от активности пользователя программе, построенной на анимационном интерфейсе, всегда есть что делать (например, менять фазу мигания)... ... Здесь уже требуется талант Дарвина, чтобы понять происхождение такого вида естественности... Подробнее: http://fit-media.com/post_1204019048.htmlМаксимум производительности
Степень соответствия запросу: 3,02%
Фрагменты текста поста : ... (В 1978 году мне требовалось три с половиной минуты, чтобы загрузить систему и приложения с кассетного магнитофона на мой Apple II... ... Например, пользователь решил сделать определенный шов... ... Вместо того, чтобы непосредственно управлять машиной, как это было в случае с автомобилем, для большинства действий пользователь использует колесо с ручкой... ... Это объясняет большую популярность таких аппаратов, которые сами проводят необходимые настройки, чтобы фотография получилась хорошо освещенной и правильно сфокусированной... ... Такие фотоаппараты устраняют необходимость принятия решений низкого уровня, которые мог бы сделать профессионал... ... Программы часто демонстрируют такую же механическую сложность, как и реальные механизмы, требуя, чтобы пользователь служил им, а не наоборот... ... Для того, чтобы получить хорошую фотографию, вы должны установить такую диафрагму и время выдержки, чтобы в камеру попало оптимальное количество света... ... Поэтому, чтобы заснять лошадей на полном скаку, профессиональный фотограф устанавливает короткую выдержку и широко открывает диафрагму... ... Внимательно оценивайте каждое решение, чтобы убедиться в его необходимости... ... Скорее всего, сделать неправильный выбор... ... Чтобы ответить на этот вопрос и решить, нужна ему эта настройка или нет, пользователю придется узнать все о ней... ... Если нужно передать длинную форму после того, как пользователь нажмет Submit , это нужно сделать в фоновом режиме, пока пользователь переходит к следующей форме... ... Это значит, что изменения на экране должны быть значительными, для того чтобы их можно было визуально различить... Подробнее: http://fit-media.com/post_1207048697.htmlWindows с маленькой буквы w
Степень соответствия запросу: 1,91%
Фрагменты текста поста : ... Нужно знать, как делать выбор... ... Эти инструменты должны быть готовы для использования в любой момент, чтобы за ними не приходилось далеко тянуться, не говоря уже о том, чтобы ходить в другую комнату... ... Эти же инструменты в программе должны распологаться по краям области рисования, чтобы их можно было "включить" одним кликом... ... Новая цель – сохранить ее чтобы показать кому-то другому или распечатать... ... Он неслучайно оставляет свои инструменты для рисования на столе – он не хочет, чтобы на них попал фиксатор, или краска случайно испортила картину... ... В программном эквиваленте этого процесса, пользователь временно оставляет программу рисования вместе со всеми инструментами, находит подходящее место на диске, чтобы сохранить изображение, после чего, возможно, посылает его по электронной почте... ... Вместо того, чтобы просто помещать каждую новую функцию в новое окно, мы видим, что некоторые функции вообще не нужно помещать в диалоговые окна, другие должны быть вынесены в отдельное окно, интегрированное в общий интерфейс, а некоторые функции вообще нужно убрать из программы... ... В Visual Basic, Delphi, C# и других языках легко создавать формы, которые представляют собой независимые окна верхнего уровня... ... Но только потому, что это сделать легко, интерфейс не становится хорошим... Подробнее: http://fit-media.com/post_1204300625.html
