Имя пользователя:

Пароль:


Список форумов ПРАКТИЧЕСКИЕ ВОПРОСЫ Работа Программирование и IT Просмотров: 233

Элегантное программирование: Аппликативные коды


Давим клаву за бабло
   Поделиться темой: 
  #1
Сообщение 29 дек 2013, 12:27
Ursego Аватара пользователя
СОЗДАТЕЛЬ ТЕМЫ
Canada, Ontario
Город: Toronto
Стаж: 4 года 11 месяцев 28 дней
Постов: 9803
Лайкнули: 3026 раз
Карма: 31%
СССР: Днепропетровск
Пол: М
Лучше обращаться на: ты
Заход: 11 минут назад

Никогда не пишите значения аппликативных кодов (таких, как различные статусы, типы чего-либо, режимы и т.п.) вручную (как говорят у нас на канадщине, don't hardcode их!). Вместо этого используйте константы (или перечислимые типы - enumerations).

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

*** Не рекомендуется (отгадайте что значит 8 :mrgreen: ): ***

if (orderStatus == 8)...

*** Рекомендуeтся: ***

if (orderStatus == OrderStatus.Closed)...


Я столкнулся с тем, что во многих разработках в качестве аппликативных кодов используются либо бессмысленные номера (например, 1, 2, 3...), либо слишком короткие строки (порой однобуквенные, как 'O', 'C' and 'N'), которые (извините за нетехнический термин) хрен поймёшь - видимо, это уходит корнями в те древние времена, когда каждый байт был на вес золота. При сегодняшних-же ценах на выч. технику имеет смысл использовать мнемонические (осмысленные и понятные) строки (например 'OPEN', 'CLOSED' и 'CANCELED'). Это здорово облегчает как работу с базой данных (значение кода видно в поле внешнего ключа сразу - не надо лезть в таблицу-каталог кодов), так и отладку (значение переменной говорит само за себя). Если Вы создаёте новые коды, то для поля "значение" вполне достаточно строки длиной в 10 символов - в длинных кодах слова можно всегда укоротить так, что они всё ещё будут хорошо понятны.

Но даже если коды легко читабельны, всё равно используйте константы - никто не застрахован от опечаток (на которые компилятор не прореагирует).

  #2     Элегантное программирование: Аппликативные коды
Сообщение 29 дек 2013, 13:12
Cth Аватара пользователя
Canada, British Columbia
Город: Vancouver
Стаж: 3 года 7 месяцев 28 дней
Постов: 1519
Лайкнули: 301 раз
Карма: 20%
Пол: М
Заход: 11 июн 2017, 17:25

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

  #3     Элегантное программирование: Аппликативные коды
Сообщение 29 дек 2013, 13:25
Ursego Аватара пользователя
СОЗДАТЕЛЬ ТЕМЫ
Canada, Ontario
Город: Toronto
Стаж: 4 года 11 месяцев 28 дней
Постов: 9803
Лайкнули: 3026 раз
Карма: 31%
СССР: Днепропетровск
Пол: М
Лучше обращаться на: ты
Заход: 11 минут назад

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

if (windowMode == 2)
   {
   windowResponse = 4;
   }

  #4     Элегантное программирование: Аппликативные коды
Сообщение 29 дек 2013, 13:39
Cth Аватара пользователя
Canada, British Columbia
Город: Vancouver
Стаж: 3 года 7 месяцев 28 дней
Постов: 1519
Лайкнули: 301 раз
Карма: 20%
Пол: М
Заход: 11 июн 2017, 17:25

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

Вам есть что сказать по этой теме? Зарегистрируйтесь, и сможете оставлять комментарии