Правильные префиксы для названий переменных (31.03.2014). |
2014 - Март | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31.03.2014 19:55 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Изучение книг по C++ позволило открыть интересный способ присваивания названия переменным и функциям, применяемом в любом языке. Это определенный стиль написания, направленный на облегчение прочтения кода сторонним человеком. И ключевым моментом является именно префикс к переменной, а не ее основное название. Если, к примеру, ранее я писал "int temp", то теперь всегда пишу "int iTemp". Разница - в префиксе "i", указывающем на тип переменной, и заглавном названии переменной. Таким образом, из модифицированного названия сторонний программист увидит и ее назначение, и ее тип. Мало того, иногда это может приводить к исправлению скрытых ошибок, когда из-за обилия переменных человек может что-то не так перетипировать или что-то там округляется (префикс поможет увидеть логическую ошибку). Итак, к корректному названию переменных добавляется префикс: int iTemp, String sTemp, float fTemp, double dTemp, AnsiString asTemp, unsigned int uiTemp, long int liTemp, ... Данный способ может быть полезен и в названии функций: нагляднее читается sTemp = sFunc(char *cInput). Проблема здесь только в одном: если захочется указать для функции другой тип данных - придется переименовывать все ее вызовы. Но тут автоматическая замена поможет. Пока сам не попробуешь - относишься к данному способу скептически. Но я перелопатил весь код определенной программы, сделал переименования переменных и функций по указанным правилам - и читать ее стало легче. Это особенно ясно наблюдается в больших по размерам функциях, функциях с большим количеством локальных переменных, формах с большим количеством глобальных переменных. Оказывается, это называется "венгерская нотация", у которой есть и сторонники, и противники. Привожу описания переменных с Википедии (дай Ктулху здоровья этому ресурсу):
(добавлено 03.04.2017) Как же удобна эта нотация в среде QT, когда при начале набора переменных среда выдает их список: доступных в текущей функции. (добавлено 03.08.2020) Microsoft поддерживает Венгерскую нотацию, судя по входным аргументам функций (например, InternetGetConnectedState). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Обновлено ( 03.08.2020 20:16 ) |