Выбрать главу

Их трудно использовать неправильно

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

Хороший подход к проектированию интерфейсов, которыми легко пользоваться правильно, — практиковаться в работе с ними до их создания. Создайте макет графического интерфейса пользователя (например, на доске с маркерами или на основе разложенных на столе листков для заметок) и поиграйте с макетом, прежде чем писать код. Напишите обращения к API, прежде чем объявлять функции. Разберите стандартные сценарии применения и определите, какого поведения ожидаете от интерфейса. По каким элементам в конечном итоге хотелось бы щелкнуть? Какие параметры в итоге хотелось бы передавать? Простые в работе интерфейсы естественны, потому что позволяют делать именно то, что вам нужно. Такие интерфейсы чаще удаются, если разрабатывать их с точки зрения пользователя. (Это одна из сильных сторон разработки через тестирование, TDD.) Чтобы затруднить некорректное использование интерфейса, нужны две вещи. Во-первых, следует предугадывать, какие ошибки могут делать пользователи, и находить способы их предотвращать. Во-вторых, следует понаблюдать за ошибками, которые допускают первые пользователи предварительной версии интерфейса, и модифицировать интерфейс — да-да, модифицировать интерфейс! — с целью воспрепятствовать таким ошибкам. Лучший способ предотвратить некорректное использование — это сделать его невозможным. Если пользователи упорно стараются отменить неотменяемое действие, сделайте это действие отменяемым. Если они постоянно передают интерфейсу прикладного программирования неверное значение, постарайтесь модифицировать этот API, чтобы принимать те значения, которые хотят передать пользователи.

А самое главное, помните, что интерфейсы существуют для удобства их пользователей, а не их создателей.

Пусть невидимое станет более видимым

Джон Джаггер

Во многих отношениях невидимость справедливо поощряется как принцип разработки качественного программного обеспечения. В нашем профессиональном языке немало метафор невидимости, таких как прозрачность механизма и инкапсуляция. Программное обеспечение и процесс его разработки могут, если перефразировать Дугласа Адамса (Douglas Adams), оказаться в основном невидимыми:[20]

• Исходный код не обладает врожденным присутствием или врожденным поведением и не подчиняется физическим законам. Его можно увидеть, когда он загружен в редактор, но закройте редактор — и он исчезнет. Если долго над этим думать, то начинаешь сомневаться, существует ли он вообще — как дерево, которое упало, но некому было это услышать.

• Работающее приложение обнаруживает свое присутствие и поведение, но ничего не сообщает об исходном коде, на основе которого создано. Домашняя страница Google приятно лаконична, но за кулисами, несомненно, скрыто немало серьезного.

• Если вы сделали 90 % работы и безнадежно увязли в отладке остальных 10 %, то, видимо, нельзя считать, что сделано 90 %? Исправление ошибок — это не движение вперед. Вам не платят за отладку. Отладка — пустая трата времени. Хорошо, если пустая трата времени будет более заметна, чтобы можно было видеть ее реальную цену и, прежде всего, постараться не допускать этого.

• Если кажется, что ваш проект идет по графику, а через неделю обнаруживается, что он опаздывает на полгода, то у вас есть проблемы, главная из которых, возможно, не в том, что он опаздывает на полгода, а в существовании невидимых силовых полей, способных скрыть полугодовую задержку! Отсутствие видимого прогресса — то же самое, что отсутствие прогресса вообще.

Невидимость таит в себе опасность. Рассуждение становится яснее, когда есть конкретный предмет для обдумывания. Легче управлять вещами, которые можно видеть, и видеть в непрерывном изменении:

вернуться

20

Отсылка к книге «Mostly Harmless» («В основном безвредна», АСТ, 2003) — пятой, заключительной части серии книг «The Hitchhiker’s Guide to the Galaxy» («Автостопом по галактике. Путеводитель»). Словосочетание «в основном безвредна» в книгах серии является полной энциклопедической статьей о планете Земля. — Прим. ред.