суббота, 30 октября 2010 г.

19/97: Удобство - это не -илити

Это перевод Convenience Is not an -ility. Автор: Gregor Hohpe.

Из "97-ми вещей, которые должен знать каждый программист".

(прим.пер.: видимо, в заголовке имеются ввиду слова типа "юзабилити" и т.п.)

Много всего было сказано о важности и проблемах проектирования хорошего API. Сложно сделать всё верно с первого раза и ещё более сложно потом его изменить. Чем-то это похоже на воспитание детей. Большинство программистов выучили, что хороший API соответствует уровням абстракции, демонстрирует логичность и симметрию, а также формирует словарь выразительного языка. Увы, одно знание лишь о принципах не приводит к желаемому результату. К сладкому привыкать вредно.

пятница, 29 октября 2010 г.

18/97: Непрерывное обучение

Это перевод Continuous Learning. Автор: Clint Shank.

Из "97-ми вещей, которые должен знать каждый программист".

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

четверг, 28 октября 2010 г.

17/97: Комментируйте только то, что не говорит сам код

Это перевод Comment Only What the Code Cannot Say. Автор: Kevlin Henney.

Из "97-ми вещей, которые должен знать каждый программист".

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

среда, 27 октября 2010 г.

Объясняем 64 бита

Это перевод 64 Bit Explained. Автор: piers7.

Слушайте, на самом деле это не так сложно.

вторник, 26 октября 2010 г.

понедельник, 25 октября 2010 г.

Вынос окна на передний план - это как любовь: вы не можете её украсть, вам её должны подарить

Это перевод Foreground activation permission is like love: You can't steal it, it has to be given to you. Автор: Реймонд Чен.

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

воскресенье, 24 октября 2010 г.

Я вас предупреждал: опасности подключения к очереди ввода

Это перевод I warned you: The dangers of attaching input queues. Автор: Реймонд Чен.

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

суббота, 23 октября 2010 г.

Вы не можете отдать что-то, что не ваше

Это перевод You can't give away something that isn't yours. Автор: Реймонд Чен.

Это правило из обычной жизни применимо и к коду. Если что-то не принадлежит вам, то вы не можете это отдать.

четверг, 21 октября 2010 г.

Как влияют на меню Пуск долго работающие программы?

Это перевод What is the impact on the Start menu of long-running programs? Автор: Реймонд Чен.

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

среда, 20 октября 2010 г.

Что определяет, какие программы показываются на лицевой странице меню Пуск в Windows XP?

Это перевод What determines which programs show up on the front page of the Windows XP Start menu? Автор: Реймонд Чен.

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

вторник, 19 октября 2010 г.

Стеклянные дома великолепно подходят для забрасывания их камнями

Это перевод Glass houses are great places to throw stones. Автор: Реймонд Чен.

Всякий раз, когда я пишу статью, объясняя, что программы должны избегать делать X, я могу с уверенностью полагаться на появление комментариев, которые говорят: "Ну, продукт Microsoft Q делает это!", как бы говоря: "Попался, лицемер!" (перевод постов: первый, второй, третий).

понедельник, 18 октября 2010 г.

Когда люди имитируют отображение, а не реальные данные

Это перевод When people mimic the display rather than the actual data. Автор: Реймонд Чен.

Я помню один баг, который мы исследовали: он был вызван тем, что ключ реестра был задан, когда он не должен быть задан. Но когда вы смотрели на значение ключа в редакторе реестра Regedit, он говорил "(значение не присвоено)". Почему мы дошли до просмотра этого "значение не присвоено"?

воскресенье, 17 октября 2010 г.

Нет, правда, вы должны передавать все необработанные сообщения в DefWindowProc

Это перевод No, really, you need to pass all unhandled messages to DefWindowProc. Автор: Реймонд Чен.

Ранее я обсудил, как нам пришлось возвращать специальное значение BROADCAST_QUERY_DENY, если вы хотели заблокировать запрос удаления устройства, потому что слишком много программ думало, что они покрыли своим кодом все возможные сообщения Windows и поэтому они просто всегда возвращали ноль. С тех пор в систему добавили много новых сообщений, многие из которых имеют нетривиальную обработку в DefWindowProc. Хотя, время от времени, я встречаюсь с очередной программой, которая считает, что "Microsoft никогда не расширит оконный менеджер" - и просто возвращает 0 для всех сообщений, которые она не обрабатывает.

суббота, 16 октября 2010 г.

Спам в журнале событий не сделает вашу жизнь легче

Это перевод Spamming the event log doesn't make things any better. Автор: Реймонд Чен.

Часто нам присылают предложение такого плана: если была обнаружена проблема и система сама с ней справилась, то в журнал событий должна заноситься запись об этом. Однако, будьте осторожны, чтобы не злоупотребить при этом журналом событий.

пятница, 15 октября 2010 г.

четверг, 14 октября 2010 г.

Кодирование - это не шифрование

Это перевод Encoding Is Not Encrypting. Автор: Реймонд Чен.

Информация об использовании меню Пуск кодируется (слово, которое я выбрал очень аккуратно, чтобы не ввести в заблуждение) в реестре. И кодирование (encoding), и шифрование (encrypting) предполагают изменение формы данных. Но шифрование предполагает, что восстановление исходных данных будет делом сложным: кодирование этого не предполагает. Шифрование также предполагает, что реализующий алгоритм будет устойчив к атакам на него: опять-таки, кодированию это не нужно.

среда, 13 октября 2010 г.

"Красивые" имена файлов в Windows

Это перевод Windows 'Prettified' Filenames. Автор: Реймонд Чен.

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

вторник, 12 октября 2010 г.

Что произошло с диалоговым окном Типы файлов?

Это перевод What Happened to the File Types Dialog? Автор: Реймонд Чен.

Еще во времена Windows 95, существовала страница в окне "Свойства папки" под названием "Типы файлов", в которой перечислялись все зарегистрированные типы файлов и связанные с ними команды. Что же с ней случилось?

понедельник, 11 октября 2010 г.

Неприкасаемая быстрая клавиша

Это перевод Windows Confidential: The Third Rail of Keyboard Shortcuts. Автор: Реймонд Чен.

В Windows 95, корпорация Майкрософт представила горячее сочетание клавиш Windows + E. Он служило для открытия окна "Мой компьютер". С того времени ничего не изменилось, но не потому, что никто не пытался ничего изменить. Основываясь на результатах опроса пользователей, некоторые разработчики предлагали изменить поведение этого сочетания, но непременно наталкивались на жесткое сопротивление консерваторов.

воскресенье, 10 октября 2010 г.

Как мне изменить порядок, в котором пункты появляются в секции Все программы меню Пуск?

Это перевод How do I customize the order of items in the All Programs section of the Start menu? Автор: Реймонд Чен.

Элементы в меню Все программы сгруппированы в две секции, хотя визуально между ними нет разделителя.

суббота, 9 октября 2010 г.

Вложенные всплывающие меню - это кошмар юзабилити

Это перевод Nested fly-out menus are a usability nightmare. Автор: Реймонд Чен.

Меню Пуск в Windows Vista забросило модель меню "Все программы", потому что такие вложенные всплывающие меню кошмарны с точки зрения удобства использования (и не только для новичков).

пятница, 8 октября 2010 г.

Эволюция меню «Выключить компьютер» и «Пуск»

Это перевод A Look at the Evolution of Shut Down on the Start Menu. Автор: Реймонд Чен.

В Windows 95 команда «Завершение работы» (Shut Down) меню Пуск (Start) долго оставалась предметом едких шуток юмористов. (Честно говоря, эта команда находится в меню Пуск только потому, что когда в процессе тестирования эргономики мы просили людей выключить компьютер, они в первую очередь щелкали кнопку Пуск. Если это именно то место, где люди ищут эту команду, значит там ей и место). В Windows 95 по щелчку команды «Завершение работы» открывалось диалоговое окно выбора вариантов завершения работы.

четверг, 7 октября 2010 г.

Запусти меня?

Это перевод Windows Confidential: Start Me Up? Автор: Реймонд Чен.

Что случилось с элементами быстрого доступа (Fast Items) в вашем меню Пуск? Их соединили с другими вашими программами.

среда, 6 октября 2010 г.

вторник, 5 октября 2010 г.

Почему ACP <> OEMCP (обычно)

Это перевод Why ACP != OEMCP (usually). Автор: Майкл Каплан.

Обычно при работе с консолью люди сразу же замечают такую вещь: страница по-умолчанию ANSI (ACP) не совпадает с кодовой страницей OEM (OEMCP) для большинства локалей.

Это идёт из времён MS-DOS (как и многие другие вещи!)...

понедельник, 4 октября 2010 г.

Билет на мероприятие по выходу Windows 95

Это перевод A ticket to the Windows 95 launch. Автор: Реймонд Чен.

На мероприятии по старту продаж Windows 95 для команды продукта было зарезервировано ограниченное количество мест, так что у нас была лотерея, чтобы определить, кто получит эти билеты. Остальная часть команды должна была стоять на трибуне, скрытая за сценой, чтобы внезапно показаться на кульминации торжеств по запуску продукта.

воскресенье, 3 октября 2010 г.

Почему размеры значков кратны 8?

Это перевод Why are icons multiples of 8 pixels in width? Автор: Реймонд Чен.

Значки всегда имеют размер кратный 8-ми пикселям. Это не просто потому, что компьютерщикам нравятся степени двойки.

пятница, 1 октября 2010 г.

Что это за маленькие значки?

Это перевод What are those little overlay icons? Автор: Реймонд Чен.

В Windows XP есть несколько значков, которые могут показываться поверх основного значка - так называемые icon overlays.