Константы уровня функции - объявить в верхней части функции? - PullRequest
1 голос
/ 07 января 2009

У меня есть постоянное значение, которое я планирую использовать только один раз в своей кодовой базе. Я собираюсь объявить это с помощью объявления const.

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

Ответы [ 4 ]

3 голосов
/ 07 января 2009

Две причины использования константы вместо жесткого кодирования значения заключаются в удобочитаемости, поэтому его можно легко найти и изменить позже, верно? Так что объявите это там, где это будет легче всего найти позже. Обычно я нахожу это в начале функции, класса или файла - опять же, в какой бы области ни имел смысл.

2 голосов
/ 07 января 2009

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

Таким образом, вы можете просто открыть файл и увидеть их все в одном списке

1 голос
/ 07 января 2009

Я обычно объявляю их как можно ближе к тому месту, где я буду их использовать.

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

Для маленьких (ish) функций в верхней части функции может повыситься читаемость (и, следовательно, понятность для других), поэтому это правило далеко не выгравировано в камне.

0 голосов
/ 07 января 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...