Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

чудеса легкости

ФЛЕНОВ МИХАИЛ

Спецвыпуск: Хакер, номер #071, стр. 071-052-2


[читабельность.]

Многие из программистов абсолютно не обращают внимания на имена переменных. Когда программа состоит из 1000 строк кода, то понять назначение переменной не сложно. Но когда исходный код исчисляется 5-ю тысячами строк и более, начинаются серьезные проблемы. Особенно через годик после его написания. Спросите программиста, что может храниться в переменной Temp, Str или param? Первое, что приходит в голову – там хранятся отходы жизнедеятельности человека, которые мы сбрасываем в туалет.

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

А что если переменная называется iFileLength? Вот тут уже легко понять, что это целочисленная переменная Integer или int (в зависимости от языка) и она содержит длину файла. Чтение такого кода и сопровождение значительно упрощается.

О переменных можно говорить очень много, но я кратко дам несколько основных правил, которых желательно придерживаться:

1 ИМЯ ПЕРЕМЕННОЙ ДОЛЖНО СОДЕРЖАТЬ КАКОЙ-ЛИБО ПРЕФИКС, КОТОРЫЙ УКАЖЕТ НАМ НА ТИП ДАННЫХ.

2 ИМЯ ДОЛЖНО БЫТЬ ОСМЫСЛЕННОЕ, И БЕЗ ЛИШНИХ ПОЯСНЕНИЙ ДОЛЖНО БЫТЬ ПОНЯТНО, ЧТО ЗА НИМ СКРЫВАЕТСЯ.

3 ОДНА ПЕРЕМЕННАЯ НИКОГДА НЕ ДОЛЖНА ВЫПОЛНЯТЬ СРАЗУ ДВА ДЕЙСТВИЯ В ОДНОМ И ТОМ ЖЕ БЛОКЕ КОДА. НАПРИМЕР, ВНУТРИ ОДНОЙ ПРОЦЕДУРЫ ПЕРЕМЕННАЯ IFILELENGTH НЕ ДОЛЖНА СНАЧАЛА СОДЕРЖАТЬ ДЛИНУ ФАЙЛА, А ПОТОМ ИСПОЛЬЗОВАТЬСЯ В КАЧЕСТВЕ СЧЕТЧИКА В ЦИКЛЕ. В ПОСЛЕДСТВИИ ОЧЕНЬ ПРОСТО ЗАБЫТЬ ЭТОТ НЮАНС И НЕПРАВИЛЬНО ИСПОЛЬЗОВАТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ, ЧТО ПРИВЕДЕТ К ПРОБЛЕМАМ БЕЗОПАСНОСТИ.

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

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

[методы.]

Я думаю, не стоит и говорить о том, что имя метода должно быть понятным. Понятными должны быть все имена. Давайте поговорим о нюансах, которые относятся именно к методам/процедурам/функциям.

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

Назад на стр. 071-052-1  Содержание  Вперед на стр. 071-052-3