今回は「関数」の続きの話で、
プログラミングにおける大事な考え方の話です。
関数によって「処理を別の部品にすることができる」と説明しました。
つまり、関数でやっていることは、処理の「部品化」ということになります。
そこで、「部品化」において重要なことについて書いていきます。
「部品化」の基本となること
前回、「関数」は特定のファイル内に置いて、
複数のファイルから呼び出すようにできると書きました。
もし、色んな所から共通で使う処理を関数にした場合、
色んな場所で使えてとても便利です。
こういうのは「共通処理」と呼ばれ、
プログラミングでよくある構造です。
プログラミングの中にある処理には「共通で使いたいもの」と
「個別で使いたいもの」があります。
そして、「共通で使いたいもの」だった場合は、
それを想定した作りにしておかないといけません。
言い換えると、処理を「部品」にした後は、
「共通で使える部品」なのか、「特定の画面でしか使えない部品」なのかを判断し、
「共通で使える部品」の場合は「どこからでも参照できる場所」に置く必要があります。
多様な処理がある中で、
どこまでが共通で使えて、どこまでが個別で使えるのか・・・
プログラミングにおいて、それは常に考えていかなければならないし、
より大きなシステムを作ろうとするほど、
「もっとも綺麗な構造」を目指して作っていく必要があります。
「樹」のイメージを使ってみるなど
「もっとも綺麗な構造」を目指して開発していくにおいて
自分の好きな考え方は、
「樹」をイメージしてみることです。
例えば、末端にあたる「個別の処理」は、樹で言うと「葉」とか「実」にあたるし、
それと繋がった部分は「枝」にあたります。
もっと言うと、「アウトプット処理」は「実」や「花」だと言えるし、
「インプット処理」が「葉」だと捉えるのもアリです。
そんでもって、どこからでも参照できる処理は「茎」や「根本」に近いものであり、
全体の基幹となる処理ほど「根本」に近いものだと言えます。
枝:個別処理
茎とか根本:共通処理
さらに、ちゃんとした仕事で開発するシステムになると、
データベースにアクセスするということも必要になります。
データベースアクセス処理を「根から下の部分でやってる処理」と捉えた場合、
「根」の一つ一つの末端部分は個別で必要なデータベースアクセス処理があり、
「根本」にはデータベースアクセスにおける共通処理がある・・・と捉えることができます。
根本:データベースアクセスにおける共通処理
これはちょっとした空想ですが、
もしかすると、植物は常に優れた仕組みで出来ているのかもしれません。
植物とコンピューターの関係を考えると・・・何か植物から学べるものがあったりして?
「フレームワーク」というビジネスワード
プログラマーやシステムエンジニアの世界では「フレームワーク」という言葉が出てきます。
これはソフトウェア開発業に限らず、ビジネス全般で使われるもので、
「枠組み」や「構造」と和訳できるものです。
何か大きなものを作る場合は、より効率の良い構造・・・すなわち「フレームワーク」が必要になります。
先ほど説明した「樹」の構造も、いわば「フレームワーク」のようなものです。
プログラミングをやっていくにおいて、
「もっとも綺麗な構造」を目指して作っていくべきだと先ほど書きましたが、
これは言い換えると、「より優れたフレームワーク」を思いつく必要があるということです。
そんでもって、「フレームワークを作る」というスキルは、
プログラマーに限らす、さまざまなビジネスでも必要なスキルとなります。
ここでより高度なことができる人ほど優秀とされるようです。
以上のような「フレームワーク」を意識するということは、
ソフトウェアを作る時だけでなく、
コンピューターを設計するにおいても必要な考え方だったりするし、
もっと言うと、この世にあるありとあらゆるシステム(例えば「宗教」とかでも)
を作るにおいても必要な考え方です。
- 関数でやってることは「処理の部品化」と言える
- プログラミングをしていくにおいて「部品」の扱いは重要で、
「共通で使える部品」なのか「特定の画面でしか使えない部品」なのかを区別し、
綺麗な構造を目指していくべき - 「もっとも綺麗な構造」を目指して開発していくにおいて「樹」の比喩が使える
・画面:実や葉
・個別の処理:枝
・共通の処理:茎や根本
・インプット処理:葉
・アウトプット処理:実や花
・データベースアクセス処理:根から下 - 「フレームワーク」とは「枠組み」や「構造」と和訳できるもので、
ソフトウェア開発において「より優れたフレームワーク」を思いつく必要がある - 「フレームワーク」を使った考え方は、
ソフトウェア開発だけでなく、ビジネス全般で使われる
次の記事
コメント