6 советов о том, как написать хорошую программу

Чтобы написать хорошую программу, необходимо сначала понять, что же такое «хорошая программа». Многие рассказывают о том, что им нравится та или иная программа, описывают ее достоинства, функциональные возможности и многое другое. У каждого свои критерии оценки. Допустим, Firefox мне нравится за свою функциональность, возможность подключать плагины, но не нравится за свое зверское поедание памяти в сравнении с другими браузерами. Мне нравится iTunes, потому что им просто пользоваться, но не нравится тем, что его дистрибутив занимает 50 мегабайт. Критериев множество. И каждый из них, несомненно, влияет на оценку программы пользователем. Но все же, есть некоторые ключевые моменты, которые должны присутствовать в любой программе без исключения и которые делают программу вообще программой.

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

Язык интерфейса. Мне не раз приходилось пользоваться программами, наполовину переведенными на русский. Иногда смешно. Что еще смешнее — как переводят те или иные фразы. Фразы типа «Нажми я продолжить» вызывали смех и пренебрежительное отношение к такой программе. Я либо переключал на английский (чтобы ничего не перепутать), либо просто выкидывал такую программу. Если программа делается для русских, то и переводить ее должен русский! Только русский знает, как лучше написать ту или иную фразу на русском. Никакие курсы албанского не помогут, допустим, корейцу правильно перевести программу на русский. Грамотный и правильный перевод на национальный язык – это второй несомненный плюс. Не ломайте себе голову, отдайте тексты на перевод носителю языка.

Простота использования. Какие бы сложнейшие механизмы не были написаны в коде, программа все равно должна быть проста в использовании. И не важно, что под кнопкой «Старт» у меня проводятся сложнейшие математические вычисления, подключение тех или иных библиотек и еще куча всяких действий, написание которых дались мне с огромным трудом. Если программой не удобно пользоваться, то труд этот никто не оценит никогда. Пользователю важен результат! Если я попросил программу включить мне музыку, то она должна включить ее, и не доставать меня вопросами типа «какой кодек предпочитаете?», «на какой громкости будете слушать мелодию?» и «не желаете ли покрутить перед проигрыванием эквалайзер?». Мне это не к чему. Уберите ненужный груз, расслабьте пользователя. Если программа не удобна, то пользователю никогда не доказать, что программа на самом-то деле хороша, что там столько хороших алгоритмов и она очень ему нужна. Она не удобна. И этого вполне достаточно, чтобы выкинуть программу. Если программа нацелена на разные группы пользователей, то в идеале можно реализовать два режима — для опытных и новичков. Это будет максимально удобно. Новичок не будет перегружен переизбытком настроек, а опытный пользователь не будет плеваться из-за их отсутствия.

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

Четкость выполнения команд пользователя. Программы пишут для пользователя! Всегда умиляют программы, которые после команды пользователя либо начинают чрезмерно и без необходимости возражать, либо сообщают о том, что действие прекращено, но реально оно продолжается. Это примерно так же, если бы я нажал на плейере «Стоп», все индикаторы бы показывали мне, что проигрывание в данный момент не происходит, но звук по-прежнему воспроизводится еще какое-то время, как бы говоря «ну я вот уже почти, еще чуть-чуть».

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

Собственно вот пока и все. Здравая критика, предложения и пожелания можно писать в комментариях. Очень даже приветствуется. Статью буду в последствии дополнять и расширять.

Введите свой E-Mail, чтобы получать новые статьи

  • Сергей

    Да я совершенно согласен с автором огромный респект)))

  • Aleks

    Очень интересная статья. Сам занимаюсь компьютерными играми и могу сказать что там эти советы применимы в такой же мере как и к софту

  • JOCK

    Автор прав на все 100%.Иногда покупаешь лицензию программы за $100 а она оказывается либо плохо переведена, либо переведена но на половину.