Speccy
#07
31 декабря 1996 |
|
Стиль - Дизайн интерфейса ваших программ.
╔══════════════════════════════╗ ║▒▒▒▒▒▒▒▒▒▒▒▒ СТИЛЬ ▒▒▒▒▒▒▒▒▒▒▒║ ╚══════════════════════════════╝ (С) 1996 Феськов Кузьма Здравствуйте! Вновь с вами рубрика СТИЛЬ. Частенько в речи программис- тов можно услышать такое слово, как "глюк", то есть ошибка, неб- режность в программе, а знаете ли вы, многоуважаемые читатели, что на свете был такой компози- тор? Кристофор Виллибальд Глюк. Однажды он гулял по улице и не- нароком разбил окно в магазинчи- ке. Спросил у хозяина, сколько стоит стекло. Оказалось - полто- ра франка. Глюк дал экю (три франка), и, когда хозяин начал отсчитывать сдачу, композитор остановил его: - Не трудитесь, любезный, я лучше разобью еще одно стекло... * * * Ну, скажем, что это было лирическое от- ступление в на- шей рубрике, впрочем, можно открыть от- дельный раздел, если подобной информации на- берется много, дело за вами! * * * Если вы пом- ните, в прош- лый раз мы с Вами говорили о структурном программировании и научились распределять свою ра- боту так, чтобы затрачивать на нее как можно меньше времени. Поскольку я рассказал тогда о структурном программировании достаточно, то сегодня я не бу- ду говорить о нем в целом, но я все же остановлюсь на некоторых моментах, которые не были затро- нуты в прошлый раз. Как и любая другая схема, схема программы подчиняется не- которым правилам: 1.Ответвления от головной программы идут строго в порядке выполнения подпрограмм (странно бы выглядела схема программы пе- чати спрайта, если бы мы снача- ла нарисовали блок рисования спрайта, а затем блок расчета адреса в экране). Такое подчине- ние называется равноправным и изображается в виде: ┌────────────┐ Как видите, на │главный блок│ этой схеме блок 1 └─┬────────┬─┘ и блок 2 равноп- ┌─┴───┐┌───┴─┐ равны. И изобра- │1 бл.││2 бл.│ жены в порядке └─────┘└─────┘ следования в про- грамме. 2.Следующий вид подчинения, это соподчинение: ┌────────────┐ Как видно из │главный блок│ этой схемы, глав- └──────┬─────┘ ным здесь являет- ┌───┴───┐ ся блок 2, а блок │1 блок│ 1 служит связую- └───┬───┘ щим звеном (под- ┌───┴───┐ готавливает дан- │2 блок│ ные и др.). └───────┘ 3.И третий вид подчинений - вложенное подчинение: ┌────────────┐ Как вид- │главный блок│ но из этой └──────┬─────┘ схемы, блок ┌───┴───┐┌──────┐ 2 является │1 блок├┤2 блок│ вложенным └───────┘└──────┘ для блока 1, то есть находится внутри него (это может быть какой-то цикл внутри процедуры). Я рассмотрел здесь основные виды схем, очевидно, что при по- мощи этих (базовых) конструкций можно получать более сложные, думаю пример приводить не нужно. Опять же хочу напомнить, не ув- лекайтесь черезмерным структури- рованием, лучше выделяйте от- дельные подпрограммы и пишите их схему отдельно! * * * А темой нашего сегодняшнего разговора станет дизайн ваших программ. Да, да, об этом стоит погово- рить и очень серьезно, ведь на сегодняшний день эта проблема стала камнем преткновения для многих наших программистов. Вот потому-то и появляются у нас программы от целых групп (кто-то рисует, кто-то музицирует, а кто-то пишет саму программу). Сегодня я затрону наиболее важные вопросы, касающиеся этой проблемы. И поскольку эта тема практически неисчерпаема, мы бу- дем говорить о ней практически в каждой статье из цикла "Стиль". Наиболее острой и важной проблемой, стоящей перед прог- раммистами на первом этапе соз- дания программы, это проработка интерфейса прог- раммы. Вспомните, сколько раз вам приходилось часа- ми просиживать перед экраном пы- таясь разоб- раться в ка- кой-нибудь программе, даже если у вас под рукой было ее описа- ние? На это тратится уйма драго- ценного времени, а в результате, либо вы откладываете эту прог- рамму в дальний угол, либо сов- сем от нее избавляетесь, а меж- ду тем, это может быть велико- лепная по своим возможностям программа. Рассмотрим наиболее часто ис- пользуемые интерфейсы: 1.Стрелочный. Это прекрасный вид общения с пользователем сис- темных программ. Здесь все ясно и понятно. Казалось бы нет ни каких недостатков у этого интер- фейса, но, как показывает прак- тика, увлекаясь красотой, прог- раммист нередко забывает о са- мой программе, о ее цели. И вот стрелка уже мигает, переливает- ся, там она большая, здесь ма- ленькая. А что же программа, скажите пожалуйста, зачем, нап- ример такие навороты для прог- раммы форматирования (например)? По моему, достаточно было бы на- личие самой стрелки. Надо отме- тить так же, что некоторые ста- раются использовать один и тот же интерфейс во всех своих прог- раммах, не обращая при этом на то, ПОДХОДИТ ли этот интерфейс программе? Да, да, именно ПОДХОДИТ ли, программа, как и человек, крайне чувствительна к тому, в какую "одежду" она оде- та. Недавно мне попалась прог- рамма, что-то типа DIZZY, где герой управлялся той самой стрелкой, поясню, вам надо ткнуть стрелкой в ту сторону, куда хотите пойти, ну и прочее. Скажу вам, играть было чистое мучение. 2.Меню с передвигающейся по- лоской. Этот вид интерфейса (он используется в оболочке журнала) самый приемлемый из всех. Он подходит практически к любой программе, будь-то система, иг- ра, или еще что-нибудь. Этот ин- терфейс всегда аккуратен, а так же прост в обращении. 3.К третьему виду интерфейса я отнесу меню, где за каждым пунктом закреплена какая-то кла- виша (вы могли встретить его, когда программа спрашивала вас "1-Бессмертие 2-Нормальная игра".).Так же с подобным интер- фейсом знакомы владельцы СКОРПИОНОВ. Что можно сказать об этом интерфейсе, так же как и стрелку, его надо применять ак- куратно, не рекомендую использо- вать его, если таких пунктов у вас больше 5-7, так как это тре- бует от пользователя усиленного внимания, а так же затрудняет работу программы. Из этой ситуа- ции есть выход - сделайте двой- ное управление, как от ключевых букв, так, например, и при помо- щи меню с передвигающейся полос- кой. Это позволит пользователю вызывать наиболее часто ис- пользующиеся опции при помощи клавиш, а остальные курсором. Существуют конечно и много других интерфейсов, но они, как правило, носят в себе элементы вышеперечисленных. Предлагаю провести конкурс "Самая друже- любная программа". Напишите нам, работа с какими программами дос- тавила вам удовольствие и не вызвало затруднений. Следующий, не менее важный аспект в написании программы - это способ общения с пользовате- лем. Как мно- го на се- годняшний день прог- рамм рос- сийских ав- торов, ко- торые изъесняют- ся с нами на англий- ском языке. Это крайне печально, я бы даже назвал это паталогией. Дорогие мои, ну скажите, кому нужен этот ваш английский язык, я, напри- мер, крайне сомневаюсь, что на западе охотятся за вашими прог- раммами, а вот отечественный пользователь страдает. Вот си- дишь дома, переводишь какую-ни- будь игру, а тут тебе диск от фирмы Инфорком приходит, даже руки опускаются, когда передом- ной прекрасные русские програм- мы на английском языке. Я вам так скажу - ЖИВЕШЬ В РОССИИ, ГОВОРИ ПО РУССКИ!!! И, наконец, последнее, о чем я хочу сегодня с вами поговорить, это шрифтовое оформление прог- рамм. Взгляните на программы зару- бежных программистов, никогда вы не увидите там в программе про похождения в замке с привидения- ми эдакого "веселого" шрифта, а в программе о приключениях мультиплика- ционного пер- сонажа шрифта "грозного", что нередко встречается в программах отечественных программистов. В программе, особенно игро- вой, все дол- жно соответ- ствовать сюжету, в том числе и шрифт, благо, сегодня это позво- ляют сделать такие программы, как Turbo font editor Старкова Павла, Professional font editor разработанная мною, а так же программы, содержащие в себе уже готовые шрифты. Они открывают перед вами огромные просторы для творчества, и бытующее мнение, что в формате 8 на 8 нельзя соз- дать ничего хорошего, это вовсе неправда, вы просто не пробова- ли! Говоря о шрифтах, следует сказать об их эргономичности, то есть о том, насколько легко их читать. Не стоит увлекаться раз- ного рода завитками и прочими наворотами, так как этот шрифт затем будет крайне плохо чи- таться, такой шрифт можно ис- пользовать при написании назва- ния программы, при вставке ка- ких-либо незначительных сообще- ний, но их стоит избегать при печати большого объема текста. Сравните для примера, сколько вы потратите времени на чтение пер- вого текста и второго. Давайте на сегодня остановим- ся, но тема эта все еще открыта, я жду ваших писем по адресу 662613, г.Абакан, ул.Ленинского Комсомола, дом 3, квартира 16, телефон (39022) 6-42-63
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября