2.4. Универсальность исходного кода.

Другим распространенным способом усложнения исходного кода является стремление к универсальности программного обеспечения. Создается некий механизм в надежде, что он еще пригодится. Нередко это усложняет код. Но гораздо более часто это оправданно.

В данном случае все гораздо более сложно чем с оптимизацией. Например, сторонники экстремального программирования [9] придерживаются правила: пишите универсальный механизм только тогда, когда он понадобится. Но они работают небольшими командами над небольшими проектами. Существуют и другие точки зрения.

Если всегда разрабатывать только частные решения, то придется выявлять похожие задачи и переписывать их, создавая универсальный механизм. Проблема заключается в том, что круг таких задач заранее обычно неизвестен.

Тем не менее, если требуется универсальный механизм, то необходимо оценить его сложность и, исходя из этой оценки, принять решение: написать его сейчас или когда он понадобится. Здесь придется воспользоваться интуицией, опытом и другими знаниями, приходящими со зрелостью ­ это неприятно, но неизбежно.

Вывод только один. Необходимо избегать сложности, которая может оказаться избыточной.