2018-11-19 Вредный Хардкод
Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод [19.11.2018 08:30] nikolay_carbonsoft1 создано |
правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод [20.05.2019 15:18] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | **Проблема: ** в коде сайта "захардкожен" его адрес. Например, в коде crm на странице со ссылками на различные отчеты: | ||
+ | <code html> | ||
+ | <a href='http://example.com/crm/carbon/report1.php'>Подробный отчет о клиентах</a><br/> | ||
+ | <a href='https://example.com/crm/carbon/report2.php?month=&year='>Отчет оценки</a><br/> | ||
+ | <a href='http://example.com/crm/carbon/report3.php'>Просроченные задачи</a><br/> | ||
+ | </code> | ||
+ | Что приводит к трудностям при развертывании этого кода на тестовом стенде с другим адресом. И даже хуже: можно ходить по тестовой crm и случайно попасть на продакшен и даже не заметить этого! | ||
+ | |||
+ | **Как нужно:** | ||
+ | <code html> | ||
+ | <a href='/crm/carbon/report1.php'>Подробный отчет о клиентах</a><br/> | ||
+ | <a href='/crm/carbon/report2.php?month=&year='>Отчет оценки</a><br/> | ||
+ | <a href='/crm/carbon/report3.php'>Просроченные задачи</a><br/> | ||
+ | </code> | ||
+ | |||
+ | То же будет касаться к остальному хардкоду: адреса REST-сервисов, баз данных, логины/пароли и.т.п. Такое лучше сохранять в файлах конфигурации. | ||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Будьте осторожны! Не переусердствуйте с файлами конфигурации! | ||
+ | |||
+ | Следуя этому правилу, можно начать выносить в кофиги все: адреса внешних ресурсов, адрес локального интерфейса, порты на котором работает web-интерфейс, название продукта и.т.д. Это приведет к разрастанию файла конфигурации опциями, которые никогда не будут изменяться (или будут изменяться раз в несколько лет - а это дешевле будет сделать sed'ом) и повышением сложности и ухудшением читаемости кода! Соблюдайте баланс! | ||
+ | |||
+ | Упрощенное правило: лучше не создавать хардкод, если можно этого не делать (как в примере с html ссылками). Но если без конфига не обойтись - делайте опцию в конфиге только если ее придется часто изменять и это потребуется в ближайшую неделю (если это потребуется "когда-то позже" - возможно, это не потребуется никогда). | ||
+ | </WRAP> | ||
+ | |||
+ | ~~OWNERAPPROVE~~ | ||
+ | /*Не удаляйте эту строку и ниже!*/ | ||
+ | {(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-19_вредный_хардкод|type=vote|trace=user|tracedetails=1)} | ||