Что такое мягкое кодирование?(Анти-шаблон)

StackOverflow https://stackoverflow.com/questions/823610

  •  05-07-2019
  •  | 
  •  

Вопрос

Я нашел запись в Википедии антишаблон мягкого кодирования немногословен и запутан.Так что же такое мягкое кодирование?В каких случаях это плохая практика (анти-паттерн)?Кроме того, когда это можно считать полезным, и если да, то как его следует реализовать?

Это было полезно?

Решение

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

Нравиться:

SpecialFileClass file = new SpecialFileClass( 200 ); // hard coded

SpecialFileClass file = new SpecialFileClass( DBConfig.Start().GetConnection().LookupValue("MaxBufferSizeOfSpecialFile").GetValue());

Другие советы

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

Главное, что вы должны иметь в виду, это то, что ваши изменения действительно улучшают вашу систему и избегают легкой маркировки чего-либо как анти-паттерна и избегайте этого всеми средствами. Конфигурирование вашей системы и предотвращение жесткого кодирования - это простое лекарство от дублирования знаний в вашей системе (см. Пункт 11: «СУХОЙ, НЕ повторяйте себя» в Краткое справочное руководство программиста Pragmatic ). Это основная причина, по которой стоит избегать жесткого кодирования. То есть в идеале в вашей системе должно быть только одно место (это был бы код или конфигурация), которое следует изменить, если вам нужно изменить что-то такое же простое, как сообщение об ошибке.

Ола, хороший пример реального проекта, в который встроена концепция программного кодирования, — это Джанго проект.Их файл settings.py абстрагирует определенные настройки данных, чтобы вы могли вносить изменения в них, а не встраивать их в свой код.При необходимости вы также можете добавить значения в этот файл и использовать их там, где это необходимо.

http://docs.djangoproject.com/en/dev/topics/settings/

Пример:

Это может быть фрагмент файла settings.py:

num_rows = 20

Затем в одном из ваших файлов вы можете получить доступ к этому значению:

from django.conf import settings
...

for x in xrange(settings.num_rows):
   ...

Максимум в программном кодировании:

const float pi = 3.1415; // Don't want to hardcode this everywhere in case we ever need to ship to Indiana.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top