чудеса легкости ФЛЕНОВ МИХАИЛ Спецвыпуск: Хакер, номер #071, стр. 071-052-2 [читабельность.] Многие из программистов абсолютно не обращают внимания на имена переменных. Когда программа состоит из 1000 строк кода, то понять назначение переменной не сложно. Но когда исходный код исчисляется 5-ю тысячами строк и более, начинаются серьезные проблемы. Особенно через годик после его написания. Спросите программиста, что может храниться в переменной Temp, Str или param? Первое, что приходит в голову – там хранятся отходы жизнедеятельности человека, которые мы сбрасываем в туалет. Если по имени переменной нельзя понять, для чего она и что хранит, то на чтение кода приходится тратить лишнее время. Необходимо сначала найти место, где объявляется переменная, а потом определить, что в нее записывается. А то иногда без бутылки пива с кодом разобраться просто невозможно. А что если переменная называется iFileLength? Вот тут уже легко понять, что это целочисленная переменная Integer или int (в зависимости от языка) и она содержит длину файла. Чтение такого кода и сопровождение значительно упрощается. О переменных можно говорить очень много, но я кратко дам несколько основных правил, которых желательно придерживаться: 1 ИМЯ ПЕРЕМЕННОЙ ДОЛЖНО СОДЕРЖАТЬ КАКОЙ-ЛИБО ПРЕФИКС, КОТОРЫЙ УКАЖЕТ НАМ НА ТИП ДАННЫХ. 2 ИМЯ ДОЛЖНО БЫТЬ ОСМЫСЛЕННОЕ, И БЕЗ ЛИШНИХ ПОЯСНЕНИЙ ДОЛЖНО БЫТЬ ПОНЯТНО, ЧТО ЗА НИМ СКРЫВАЕТСЯ. 3 ОДНА ПЕРЕМЕННАЯ НИКОГДА НЕ ДОЛЖНА ВЫПОЛНЯТЬ СРАЗУ ДВА ДЕЙСТВИЯ В ОДНОМ И ТОМ ЖЕ БЛОКЕ КОДА. НАПРИМЕР, ВНУТРИ ОДНОЙ ПРОЦЕДУРЫ ПЕРЕМЕННАЯ IFILELENGTH НЕ ДОЛЖНА СНАЧАЛА СОДЕРЖАТЬ ДЛИНУ ФАЙЛА, А ПОТОМ ИСПОЛЬЗОВАТЬСЯ В КАЧЕСТВЕ СЧЕТЧИКА В ЦИКЛЕ. В ПОСЛЕДСТВИИ ОЧЕНЬ ПРОСТО ЗАБЫТЬ ЭТОТ НЮАНС И НЕПРАВИЛЬНО ИСПОЛЬЗОВАТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ, ЧТО ПРИВЕДЕТ К ПРОБЛЕМАМ БЕЗОПАСНОСТИ. Для улучшения переменных, нужно просто дать всем им понятные имена и убедиться, что каждая из них используется только для одной цели. Да, лишняя переменная отнимает место в памяти, но если она имеет простой тип, то это не смертельный размер и минимальная плата за простую, но очень хорошую защиту от неправильного использования переменных. Прикинь сейчас, какие ошибки ты чаще всего исправляешь? Лично я чаще исправляю собственную невнимательность и большинство программеров, я думаю, тоже. Если следовать описанным выше правилам, вероятность ошибок из-за невнимательности уменьшается. [методы.] Я думаю, не стоит и говорить о том, что имя метода должно быть понятным. Понятными должны быть все имена. Давайте поговорим о нюансах, которые относятся именно к методам/процедурам/функциям. Каждый метод должен выполнять одну и только одну функцию. Лучше всего, если эта функция будет максимально узкой. Например, если мы создаем метод загрузки файла, то метод должен только загружать файл, а анализ и другие возможности необходимо реализовывать в других методах. Но при этом нельзя отделять такие функции, как проверка корректности и безопасности. Их выносить в отдельный метод очень сложно, иногда невозможно, а в большинстве случаев - глупо. Реализация и проверка корректности неразделимы, поэтому в методе загрузки файла нужно не забыть проверить наличие файла, корректность его открытия, доступность данных, размер буфера для чтения и т.д. |