|
|
|
Константы
|
|||
|---|---|---|---|
|
#18+
Риторический вопрос по поводу объявления контстант в коде. Пример. Работаю с модулем, который формирует отчёт в Excel на основе шаблона. Прекрасно понимаю, что путь к файлу шаблона обязатально вынести в const. Но не понимаю, зачем поля отчёта (%Date%, %CustomerName% и т.п.) выносить в const. Во втором случае мне видится константа на константу, названия полей в шаблоне это что-то вроде имён таблиц и колонок в БД, а они-то в коде лежат значениями. Где критерий? Поделитесь пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 14:01 |
|
||
|
Константы
|
|||
|---|---|---|---|
|
#18+
FrankieПрекрасно понимаю, что путь к файлу шаблона обязатально вынести в const. Обязательно - это перебор. Например, часто его стоит вынести в настройки. FrankieНо не понимаю, зачем поля отчёта (%Date%, %CustomerName% и т.п.) выносить в const. Во втором случае мне видится константа на константу, названия полей в шаблоне это что-то вроде имён таблиц и колонок в БД, а они-то в коде лежат значениями. Ну, вообще говоря, "имена колонок и таблиц" тоже могут лежать константами :) Думаю, здесь нет единой точки зрения, вопрос в целесообразности (и ее понимании конкретным разработчиком). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:38 |
|
||
|
Константы
|
|||
|---|---|---|---|
|
#18+
softwarerОбязательно - это перебор. Например, часто его стоит вынести в настройки. Я к тому, что в код писать значение пути никак нельзя :) Думаю, здесь нет единой точки зрения, вопрос в целесообразности (и ее понимании конкретным разработчиком). И я так думаю, а меня отправляют читать книжки по программированию! Добавляя, что никаких значений в коде лежать не должно, при этом True, False, nil, 0 это как бы исключительные случаи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:46 |
|
||
|
Константы
|
|||
|---|---|---|---|
|
#18+
FrankieЯ к тому, что в код писать значение пути никак нельзя :) Не факт. Скажем, в следующем коде Код: plaintext 1. 2. 3. 4. 5. лично я криминала не вижу. Его конечно можно переписать, например, так: Код: plaintext 1. 2. 3. 4. 5. 6. но объяснение, чем это вариант лучше оригинала, скорее всего изрядно позабавит :) FrankieИ я так думаю, а меня отправляют читать книжки по программированию! Есть хорошая пословица про программиста, лоб которого подвергается повышенной опасности.... Лично я бы в таком случае отловил бы в коде крикунов фрагменты типа Код: plaintext и заставил бы менять на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 16:04 |
|
||
|
Константы
|
|||
|---|---|---|---|
|
#18+
softwarerНе факт. Скажем, в следующем коде лично я криминала не вижу. Тут вы генерите путь и имя для нового файла. Я о случае, когда файл создан. softwarerЛично я бы в таком случае отловил бы в коде крикунов фрагменты... Ага :) Ведь пишут же имена ХПшек и их поля как есть. Просто чтобы понять что такое LISTREP_NAMEORG надо, как говорится, контрол-клик сделать, а увидев '%NameOrg%', я бы сразу понял о чём речь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 16:32 |
|
||
|
Константы
|
|||
|---|---|---|---|
|
#18+
FrankieПросто чтобы понять что такое LISTREP_NAMEORG надо, как говорится, контрол-клик сделать, а увидев '%NameOrg%', я бы сразу понял о чём речь... Это соображение на самом деле не значимо, вопрос договоренностей. Стоит "привыкнуть пользоваться константами", как "сразу понял о чем" будет выполняться. Другой вопрос - зачем эта константа. В первую очередь: спасет ли она, если потребуется поменять %NameOrg% на %NameOrgMy%? Имхо - за код Код: plaintext 1. cледует однозначно отрывать яйца. Изменение значения однозначно влечет необходимость переименования константы. Далее, имя этой константы как минимум не короче оригинала, читаемость тоже не повышается, как в случае длинных текстовых констант. Единственное преимущество: если вдруг эта ячейка будет переименована, и если константа будет переименована вслед за ней, и если она используется в нескольких местах, то "прочие" места перестанут компилиться. С этим преимуществом связан и недостаток: если константа внедрена неудачно (скажем, в двух шаблонах были одинаково названные поля, использована одна константа, теперь мы переименовываем ячейку в одном из шаблонов, а в другом оставляем как есть) - все, мы самым что ни на есть незаметным образом сломали код. Можно быть почти уверенным, что исправленная версия пройдет тестирование (никто не будет запускать глобальное тестирование из-за такой мелочи), дойдет до пользователя и у него отвалится функциональность. Да, это преимущество есть, вместе с недостатком. Но имхо - изредка нажать Ctrl-F куда выгоднее, нежели постоянно иметь геморрой с константами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 17:14 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1346204]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 521ms |

| 0 / 0 |
