Программирование >>  Проектирование интерфейса пользователя 

1 ... 72 73 74 [ 75 ] 76 77 78 ... 153


6: Function ts (ByVal FileName As String ) As Boolean 7: FileExists If (Len( Dir( FileName ) ) > 0) 8 : End Function 9:

10:Function OpenFile( ByVal FileName As String ) As Double

ii: If (FileExists(FileName)) Then

12: OpenFiie = DoOpenFile(FileName)

13: Else

14: процедура обработки ошибок

15: End If 16:End Eunotion

I Первая из функций, DoOpenFile, текст которой расположен в строках 1-4, непосредственно решает задачу, открывая файл и возвращая его номер в виде числа двойной точности. Вторая функция, FileExists, находящаяся в строках выполняет проверку существования файла с заданным име-

нем. Внешняя функция, OpenFile, выполняет операции по проверке существования файла и в случае успеха вызывает функцию DoOpenFile. Обращаться следует, разумеется, к функции OpenFile. Результат получается

простым и удобным.

Таким образом, создаются внутренние и внешние функции. Вызываемая функция

обеспечивает обработку ошибок, а внутренняя функция, с префиксом Do, непосредственно выполняет операцию.

Как комментировать код

Работая над черновиком программы, вы наверняка выдвигаете определенные предположения о ее назначении. Уделите пару минут, чтобы зафиксировать их в виде примечаний к коду. Гораздо проще комментировать текст профаммы во время ее написания, нежели позже, когда придется восстанавливать в памяти ход своих рассуждений. Вот несколько простых советов по поводу написания комментариев.

Используйте полноценные предложения.

Комментируйте длинные фрагменты кода.

Сопровождайте примечаниями неоднозначные участки кода и фрагменты, заимствованные из других источников.

Используйте полноценные предложения

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

над профаммой и пригодятся при написании руководств.


Хорошо известна профамма JavaDoc.exe, которая автоматически генерирует документацию к профамме, читая ее исходный текст на языке Java. Вполне возможно, вам удастся найти подобное средство, ориентированное на применение в среде VBA.

Комментируйте длинные фрагменты кода

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



Сопровождайте примечаниями неоднозначные участки кода

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

редакцией кода, разъяснениями или помощью в преодолении нештатных ситуаций.

О возможностях повторного использования кода

Индустрия, основанная на принципах повторного применения программного кода, располагает миллиардами долларов. Имя ей - объектно-ориентированное программирование. Собственно говоря, одна из предпосылок появления этой отрасли была связана с поисками ответа на вопрос, как добиться возможностей многократного использования ранее созданного программного кода. (Подробнее вопросы объектно-ориентированного программирования освещены в главе 21-й час. Основы программирования классов .) Впрочем, решить подобную задачу можно не только в рамках объектной парадигмы. И ниже рассказано, как этого достичь.

Код, который следует применить, написан - т.е. вам уже не нужно этим заниматься. Он наверняка прошел стадию отладки и тестирования - стало быть, если вы не собираетесь его исправлять, повторная отладка не потребуется. Поскольку код ранее уже кем-то использовался (может быть, даже вами), не исключено, что он способен полностью решить вашу конкретную проблему. Наконец, если вставить подобный код в некую обрамляющую его процедуру, вам потребуется протестировать только эту процедуру. Листинг 14.5 иллюстрирует сказанное. Если вы позаимствовали готовую функцию,

подобную DoOpenFile, а затем облекли ее в оболочку , схожую с OpenFile, достаточно будет проверить, насколько правильно работает новая, внешняя, функция.

Важно как можно раньше утвердить систему именования процедур и функций и последовательно ее придерживаться. Объяснения просты: если вы решили изменить название функции, придется пролистать текст программы и отредактировать все ссылки на эту функцию. Исправленный код, разумеется, нуждается в тестировании. Впрочем, существует иной способ достижения цели. Представьте, у вас есть процедура. Если перед ее именем ввести префикс (скажем, Do), а затем создать новую, обрамляющую , процедуру, дав ей имя прежней, весь код останется в неприкосновенности, и тестировать доведется только вновь созданную процедуру.

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



Советы по тестированию и отладке кода

В главах 17-й час. Отладка кода и 18-й час. Обработка ошибок во время выполнения программы содержатся подробные сведения по вопросам тестирования и отладки программного кода, поэтому рассматривать в данный момент нецелесообразно. Дадим лишь некоторые советы-предостережения.

Исправляя код, обязательно подвергайте его повторному тестированию даже в том случае, если изменения кажутся незначительными; в противном случае вы рискуете

собственной профессиональной репутацией. При отсутствии специальных средств

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

Еще раз о работе с данными

Решить проблему удобочитаемости программного кода могут также применяемые вами способы работы с данными. Вот несколько кратких советов по этому поводу.

Используйте именованные константы вместо литеральных значений.

Проясняйте назначение и смысл параметров процедур и функций с помощью служебных слов ByVal, ByRef и Optional.

Ограничьте применение глобальных переменных.

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

Чтобы гарантировать неизменность значения параметра, переданного функции, используйте служебное слово ByVal. Если, в соответствии с вашим замыслом, значение аргумента может изменяться внутри функции, назначьте переменной квалификатор ByRef. Наконец, если аргумент в большинстве случаев принимает некоторое заранее известное значение, обозначьте его как Optional. Пример использования служебного слова Optional приведем в листинге 14.1,

Резюме

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

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

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



1 ... 72 73 74 [ 75 ] 76 77 78 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика