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