10章無関係の下位問題を抽出する

エンジニアリングとは、大きな問題を小さな問題に分割して、それぞれの解決策を組み立てることに他ならない。この原則をコードに当てはめれば、堅ろうで読みやすいコードになる。

本章のアドバイスは、無関係の下位問題を積極的に見つけて抽出することだ。ぼくたちは以下のことを考えている。

  1. 関数やコードブロックを見て「このコードの高レベルの目標は何か?」と自問する。
  2. コードの各行に対して「高レベルの目標に直接的に効果があるのか? あるいは、無関係の下位問題を解決しているのか?」と自問する。
  3. 無関係の下位問題を解決しているコードが相当量あれば、それらを抽出して別の関数にする。

コードを抽出して別の関数にするなんて毎日やっていることかもしれないけど、本章では無関係の下位問題を抽出する場合に限定している。このようにして抽出されたコードは、自分がアプリケーションからどのように呼び出されるのかわかっていない。

この技法は簡単に使えるのに、コードを大幅に改善できる。だけど、なぜだか知らないけど、多くのプログラマがうまく使いこなせていない。うまく使うコツは、無関係の下位問題を積極的に探し出すことだ。

本章では、君がこれから直面するさまざまな状況に対して、この技法を適用した例をいくつか紹介していこう。

10.1 入門的な例:findClosestLocation()

以下にJavaScriptのコードがある。このコードの高レベルの目標は「与えられた地点から最も近い場所を見つける」ことだ(斜体のところで難しい幾何学の計算が出てきてるけど怖がらないで)。 ...

Get リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.