Pull to refresh

Всем привет!

Я часто вижу в проектах лишние настройки. Они попадают в проект следующими путями:

  1. скопировали из каркаса\работающего сервиса не задумываясь - нужны ли эти настройки. Да, принцип "работает - не трогай" встречается и у разработчиков)

  2. решили явно прописать какие-то настройки, для надежности

Я считаю, что так делать не надо. Почему?

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

  2. следствие из сказанного выше - ухудшается читаемость кода. Моя любимая тема) Мы чаще читаем код, чем пишем. Настройки тоже часть кода

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

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

А вообще есть такой хороший принцип - convention over configuration. Тоже моя любимая тема) Принцип говорит о том, что должны быть настройки по умолчанию, устраивающие большинство потребителей. Эти настройки потребитель не задает явно, они уже заданы.

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0

Articles