大きな問題は小さくして1つずつ対処する――分割統治法:問題解決力を高めるコツはプログラミングの原則・思考にあり(4)(4/4 ページ)
本連載では、さまざまなプログラミングの原則・思考の中から、特に問題解決力を高めるのに役立つものをピックアップ。プログラマーは、その思考法をビジネスに応用し、そうではない人はプログラマーと一緒に働く際に思い出してほしい。今回は「分割統治」「1歩ずつ少しずつ」「繰り返しの最小化」の重要性、論理的思考のコツなどについて。
プログラミングセオリーを実現する6つの原則(2) 繰り返しの最小化
英語 Minimize repetition
What 〜重複を排除する
繰り返しとは「重複」のことです。
つまり「繰り返しの最小化」とは、「重複を極力排除する」ということです。
「繰り返しの最小化」は、これを動機とする技術が数多く生まれています。例えば、関数化の技術は、この目的のために生まれた技術の1つです。重複したロジックを関数化して、1つにまとめて共有コードとして使用できるようにします。
Why 〜修正の影響を局所化する
繰り返しのコードは、「結果の局所化」原則を侵害し、変更コストを増大させます。
例えば、コピー・ペーストにより同じコードが複数の場所にあった場合、そのうち1つを変更すると、残りすべても変更するかどうか判断しなければなりません。この「判断」というのが曲者で、一括置換すればよいというわけではありません。コピー部分だけ見ればよいのではなく、その周りの部分を完全に理解して、その上で判断しないと正しい変更はできません。
これは非常にコストがかかる作業になります。
How 〜コードを分割して管理
コードを、たくさんの「小さい部分」に分割しましょう。
大きなコードの塊は、別の大きなコードの塊のどこかと同じ部分を含んでいるはずです。大きな塊を小さくすると、共通項が導きやすくなります。
そして、コード内で、どこが「完全に同じ」所で、どこが「とりあえず似ている」所で、どこが「まったく異なる」所なのかを明確に伝えるようにします。この「色分け」ができていると、コードが読みやすくなり、修正のコストも抑えられるようになります。
書籍紹介
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
上田勲著
秀和システム 2,200円
一通りプログラミングができるようになった。しかし、読みにくい、遅い、頻繁にエラーが発生する、書いたコードを修正すると動かなくなる等々、なかなか「よいコード」を書けないとお悩みではありませんか? 本書は、よいコードを書く上で指針となる前提・原則・思想、つまり「プリンシプル」を解説するプログラミングスキル改善書です。初心者向けの書籍では絶対に説明しない、古今東西のプログラマーの知恵をこの一冊に凝縮しました!
Copyright © ITmedia, Inc. All Rights Reserved.