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)} | ||