明らかに、一部のプログラマーは、誰も理解できない非常に複雑なコードを作成することで、彼らがどれほど賢いかを示すことに熱心です。他のプログラマーは非常に高いレベルで発砲しているため、ソリューションの複雑化は自然な進化です。
私が今まで見た中で最悪のコードのいくつかは、2000行を超えるコードを含むメソッドでした。間違いなくこのコードは複雑でしたが、非常に貧弱でもありました。
優れたプログラマーは、過度に複雑なコードを避けると思います。これには、設計パターンを実際にそれを必要としないソリューションに適合させる誘惑を回避することが含まれます。また、神オブジェクト、魔法のボタン、時期尚早の最適化、時期尚早の一般化、およびその他のアンチパターンの回避も含まれます。
複雑さの成長は有機的なものであるため、私は常にリファクタリングを行い、ソリューションを簡素化する機会を探しています。他の多くの有機物と同様に、使用し続けたい場合は、トリミングして剪定する必要があります。複雑さが増すと、コードが破損する可能性が高くなるため、過度に複雑なソリューションとやり取りする必要はありません。
可読性はコードメンテナンスの最も重要な要素であり、過度に複雑なソリューションはほとんど常に可読性を低下させ、メンテナンスコストを増大させると思います。