|
Программирование >> Проектирование интерфейса пользователя
Многие из причин, обусловивших возникновение префиксной нотации, сегодня утеряли свою актуальность. Нотация была впервые применена в слабо типизированном языке С, который не относится к объектно-ориентированным. Но большинство современных инструментальных сред программирования строго типизированы. Многие языки, разработанные после возникновения префиксной нотации, реализуют объектную концепцию, позволяя создавать необозримое многообразие новых классов. Получается, что для каждого класса придется вносить соответствующий префикс. Как тогда вести разрастающийся список префиксов и четко следовать ему? Даже для стандартных классов не существует единого унифицированного списка префиксов, поэтому каждый тип можно называть по-разному, что отнюдь не решает проблему. Если вы решили использовать венгерскую нотацию, создайте собственный (а лучше - коллективный) список префиксов и неукоснительно соблюдайте все правила. Для обозначения переменных, классов, объектов, функций и процедур, вместо префиксной нотации можно применять понятные однозначные словосочетания - это второй общий способ обеспечить удобочитаемость программного текста. Полные слова и признаки контекста передают смысл сказанного достаточно точно, поэтому дополнительные пояснения чаще всего не требуются. Далее приведены простые правила именования, которых следует придерживаться. Целые, неусеченные, слова объясняют назначение объектов программы достаточно четко. Для именования функций и подпрограмм часто удобно применять словосочетания из существительных и глаголов. Следует избегать использования нестандартных сокращений. Если аббревиатуры необходимы, их надлежит унифицировать. Создание списка аббревиатур, стандартных для предметной области, в которой вы работаете, приводит пример одного из возможных способов использования сети intranet. Можно создать intranet на своем компьютере и сделать его доступным для всех пользователей локальной сети. Публикация информации о проекте в intranet уменьшает объем оборота бумажных документов, гарантирует постоянный доступ и обеспечивает хранилище достоверной информации. Конечно, легче запомнить и применять представленный перечень аргументов, нежели список из десятков или сотен префиксов. Если вам важно обозначить в наименовании переменной признак принадлежности ее определенному типу, укажите более ли менее полное название типа. Для этого потребуется несколько раз нажать клавиши. Например, если переменная обозначает главную форму приложения, ее можно назвать, скажем, FormMain. Только и всего. Использование целых слов при именовании Размышляя над именем процедуры или функции, назовите ее понятным словосочетанием, и дополнительные комментарии станут излишними. Кроме того, чем более лаконично содержимое функции, тем менее вероятны недоразумения. Просмотрите текст листинга 14.1. Советуем, по возможности, создавать отдельные функции даже в том случае, если они окажутся такими простыми, как приведенная выше Get-TotalSale. Именованный блок кода гораздо более красноречив, чем те же строки, употребленные непосредственно в окружении многих других. Листинг Пример выбора удачных имен программных объектов Function ale( ByVal Sale Double = 0.0825 ) As Double GetTotalSale = Sale * (1 + SalesTax) End Function As Double, Optional SalesTax As Словосочетание GetTotalSale точно указывает на предназначение функции - расчет полной стоимости продажи. Смысл параметров и SaleTax также достаточно ясен. Поскольку функция коротка и обладает удачным именем, она не нуждается в дополнительных комментариях, а наименования ее переменных - в префиксах. Нетрудно представить, как тот же код может выглядеть в исполнении других программистов. Например, глагол Get легко заменяется Qj/f, а слово Tax превращается в Тх. Однако такие сокращения способны легко привести к разночтениям и непониманию (скажем, Тх - стандартная аббревиатура названия штата Техас). Использование словосочетаний при именовании подпрограмм и функций Рекомендуется перед именами функций и подпрограмм употреблять глаголы, указывающие на определенное действие, а затем добавлять существительное, обозначающее предмет или объект, на который оказывается влияние. Существительное и глагол, соединенные вместе, в обычной речи хорошо передают смысл высказывания, и программный код не будет исключением. Если в теле функции или процедуры выполняются только те действия, о которых свидетельствует ее название, больше ничего и не требуется. Get (взять, получить), часть наименования функпии листинга 14.1, - это глагол. Total (полный) - прилагательное, a Sale (стоимость продажи) - существительное. Соединенные вместе, эти слова ясно выражают назначение функции. Новыйтермин Процедура - общее название функций и подпрограмм. В данном издании этот термин используется в случае, когда излагаемый материал относится и к функциям, и к подпрограммам. Появление в именах программных объектов сокращенных слов можно объяснить некоторыми традициями, которые перешли к нам, так сказать, по наследству - прежние версии компиляторов и интерпретаторов зачастую просто не поддерживали возможностей задания длинных имен. Следуя привычке, многие программисты по сей день употребляют в своем коде аббревиатуры. Язык в этом смысле ничем вас не ограничивает - используйте идентификаторы такой длины, какую считаете целесообразной. Как правило, если описательное наименование процедуры очень длинное, значит в ней выполняется слишком много действий. Подумайте о том, чтобы разбить ее на несколько процедур. Так что, намереваясь создать процедуру или функцию, придумайте для нее подходящее имя, состоящее, возможно, из глагола, описывающего выполняемое действие, и существительного, указывающего на предмет ваших забот. Избегайте нестандартных аббревиатур Во многих отраслях промышленности и бизнеса приняты соглашения, касающиеся употребления сокращений. Та или иная аббревиатура в контексте подобного соглашения становится вполне понятной, но стоит упустить контекст из виду, как сразу возникают недоразумения. В качестве общего правила порекомендуем следующее: старайтесь избегать нестандартных сокращений и акронимов. Если аббревиатуру, которую вы намереваетесь ввести, нельзя найти в обычном словаре, используйте полный вариант словосочетания. Допустим, все потенциальные пользователи вашей программы осведомлены об используемых сокращениях - что ж, пожалуйста, действуйте! Впрочем, список аббревиатур и их значений создать все равно придется. Автору этой книги например, приходилось участвовать в проектах, находивших применение в различных отраслях. Естественно, запоминать сотни различных жаргонных сокращений, принятых в разных организациях, - дело совершенно ненужное и неблагодарное. Если уж без сокращений никак не обойтись, пользуйтесь четким списком, согласованным с коллегами и заказчиками. Правила выравнивания текста программы Отступы (не содержащие видимых символов фрагменты начала строк кода) - весьма полезное и важное средство обеспечения хорошего восприятия программного текста. Следуйте правилам выравнивания текста, и ваш код приобретет ясность и выразительность. Сопоставьте два листинга (14.2 и 14.3), которые содержат тексты одной и той же функции. В первом отступы используются беспорядочно и случайно, а во втором позиции начала строк четко выровнены по вертикали. Листинг 14.2. Пример неверного использования отступов 1: Function GetIQText Val IQ As Integer ) As String 2: If IQ < 79 Then 3: GetlQText = Коэффициент ниже 79 свидетельствует о серьезном интеллектуальном отставании 4: Elself IQ >=79 And IQ < 90 Then 5: GetlQText = Низкий или средний уровень интеллекта 6: Elself IQ >= 90 And IQ < 105 Then 7: GetlQText = Нормальный уровень интеллекта 8: Else: GetlQText = Интеллект выше нормального 9: End If 1 End Function Анализ Увы, мне приходилось иметь дело с десятками тысяч строк кода, схожего с приведенным выше. Если откровенно, я не хочу обвинять кого-либо в том, что подобное творчество носило преднамеренный характер. Скорее всего, текст стал таким после целого ряда бессистемных исправлений. В общем, большинству программистов понятно, что это нехорошо. Сколько раз прихо-лилось слышать фразу: Да, я знаю, но сейчас у меня просто нет времени - подшлифую как-нибудь потом . Потрясающе, ведь и говорящему, и внимающему заранее известно, что это потом не наступит никогда.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |