Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныТест-драйвЗаметкиВопрос-ответКнигорецензииСправочная

Hard code

Данный антипаттерн подразумевает жесткое «вшивание» в программный код различных данных, касающихся окружения программы. Например, это могут быть: путь к файлу конфигурации, имя почтового сервера, имя bluetooth-устройства, имя процесса, с которым взаимодействует программа, и так далее. Этот список можно продолжать долго. Одни словом — «захардкодить» означает прописать значение каких-либо данных непосредственно в коде, вместо того, чтобы передавать их в качестве параметра.
Хардкодинг несет в себе скрытую опасность. На компьютере разработчика программа будет прекрасно работать, но стоит ее только перенести на новую систему, как программа потеряет свою работоспособность. Хардкодинг невозможно выявить на машине разработчика без досконального изучения кода, и поэтому, если программист захардкодил какие-то значения (и, как правило, забыл, где он это сделал), то такая программа будет иметь совершенно непредсказуемое поведение, а сложность выявления и локализации ошибок станет невероятно высокой.
Случай из жизни

Однажды, когда автор работал в N-ской губернии над одним из проектов, он был свидетелем забавного эффекта от хардкодинга. Разрабатываемый продукт состоял из нескольких компонентов, взаимодействующих по сети, и, во время инсталляции, один из компонентов проверял доступность другого. Разработчик, реализовавший проверку доступности, случайно захардкодил и зачекинил имя своего компьютера в качестве имени удаленного проверяемого хоста. Поскольку разработчики и тестировщики находились в одной подсети, наблюдалась довольно забавная картина — пока этот разработчик был на работе, у тестеровщиков проверка доступности проходила удачно. Когда же разработчик уходил домой и выключал компьютер, проверка доступности переставала работать. Дефект был обнаружен лишь через несколько недель после его привнесения. Сколько релизов было сдано с этим дефектом — история умалчивает.

Оглавление
Статистика
© 2007—2009 Inside C++ Коммерческие услугиКонтактная информация

Беговые дорожки - велотренажер в ульяновске, беговые дорожки класификация.. доставка обедов еды доставка обедов. промышленные насосы. термобумага. купить квартиру фото