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

Пароль:


Список форумов КАНАДА Работа Программирование и IT Просмотров: 197 Промотать вниз к быстрому ответу

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


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

Никогда не пишите значения аппликативных кодов (таких, как различные статусы, типы чего-либо, режимы и т.п.) вручную (как говорят у нас на канадщине, 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
Стаж: 2 года 11 месяцев 14 дней
Постов: 1507
Лайкнули: 297 раз
Карма: 20%
Пол: М
Заход: 29 сен 2016, 10:53

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

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

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

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

  #4     Элегантное программирование: Аппликативные коды
Сообщение 29 дек 2013, 13:39
Cth Аватара пользователя
Canada, British Columbia
Город: Vancouver
Стаж: 2 года 11 месяцев 14 дней
Постов: 1507
Лайкнули: 297 раз
Карма: 20%
Пол: М
Заход: 29 сен 2016, 10:53

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


Чтобы ответить в этой теме, зарегистрируйтесь или быстро войдите через соцсеть: