この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。
プログラミングという作業は、本質的に「複雑さ」との戦いです。
運用を通じて日々蓄積されるデータに、アップデートのたびに際限なく拡張される機能……。
それに伴って、プログラムは次第に長く入り組んだものへと変容していきます。
想定・設計の不備や、度重なる仕様変更、アクシデントへの臨時対応などの要因から、プログラムフローが捻じ曲がり、
マジックナンバが随所に撒き散らされてゆく様は、悲劇としか言いようがありません。
この混沌を制御する唯一の方法は、プログラムを細かいモジュールへと分割し、個々の要素をより単純な働きへと還元していくこと。
各種の手続きを共通化することにより、コンパクトで見通しがよく、修正・変更の際にモジュールの足並みを揃え易い、「変化に強い」構造を作っていくことが、何よりも大切です。
このような視点は、プログラムだけでなく人間が作る組織にとっても重要ではないでしょうか。
私たちが普段「当たり前」と思い、諦め、受け入れている複雑さを解くカギはそこにあるかもしれません。
担当: 成田 (リファクタリング大好き)