プログラミング入門 ⑬「部品化」という考え方で重要なこと

プログラミング入門

今回は「関数」の続きの話で、
プログラミングにおける大事な考え方の話です。

関数によって「処理を別の部品にすることができる」と説明しました。
つまり、関数でやっていることは、処理の「部品化」ということになります。

そこで、「部品化」において重要なことについて書いていきます。

「部品化」の基本となること

前回、「関数」は特定のファイル内に置いて、
複数のファイルから呼び出すようにできると書きました。

もし、色んな所から共通で使う処理を関数にした場合、
色んな場所で使えてとても便利です。

こういうのは「共通処理」と呼ばれ、
プログラミングでよくある構造です。

プログラミングの中にある処理には「共通で使いたいもの」と
「個別で使いたいもの」があります。
そして、「共通で使いたいもの」だった場合は、
それを想定した作りにしておかないといけません。

言い換えると、処理を「部品」にした後は、
「共通で使える部品」なのか、「特定の画面でしか使えない部品」なのかを判断し、
「共通で使える部品」の場合は「どこからでも参照できる場所」に置く必要があります。

多様な処理がある中で、
どこまでが共通で使えて、どこまでが個別で使えるのか・・・
プログラミングにおいて、それは常に考えていかなければならないし、
より大きなシステムを作ろうとするほど、
「もっとも綺麗な構造」を目指して作っていく必要があります。

「樹」のイメージを使ってみるなど

「もっとも綺麗な構造」を目指して開発していくにおいて
自分の好きな考え方は、
「樹」をイメージしてみることです。

例えば、末端にあたる「個別の処理」は、樹で言うと「葉」とか「実」にあたるし、
それと繋がった部分は「枝」にあたります。
もっと言うと、「アウトプット処理」は「実」や「花」だと言えるし、
「インプット処理」が「葉」だと捉えるのもアリです。

そんでもって、どこからでも参照できる処理は「茎」「根本」に近いものであり、
全体の基幹となる処理ほど「根本」に近いものだと言えます。

葉とか実:画面
枝:個別処理
茎とか根本:共通処理

さらに、ちゃんとした仕事で開発するシステムになると、
データベースにアクセスするということも必要になります。

データベースアクセス処理を「根から下の部分でやってる処理」と捉えた場合、
「根」の一つ一つの末端部分は個別で必要なデータベースアクセス処理があり、
「根本」にはデータベースアクセスにおける共通処理がある・・・と捉えることができます。

根:データベースアクセス
根本:データベースアクセスにおける共通処理

これはちょっとした空想ですが、
もしかすると、植物は常に優れた仕組みで出来ているのかもしれません。
植物とコンピューターの関係を考えると・・・何か植物から学べるものがあったりして?

「フレームワーク」というビジネスワード

プログラマーやシステムエンジニアの世界では「フレームワーク」という言葉が出てきます。
これはソフトウェア開発業に限らず、ビジネス全般で使われるもので、
「枠組み」「構造」と和訳できるものです。

何か大きなものを作る場合は、より効率の良い構造・・・すなわち「フレームワーク」が必要になります。
先ほど説明した「樹」の構造も、いわば「フレームワーク」のようなものです。

プログラミングをやっていくにおいて、
「もっとも綺麗な構造」を目指して作っていくべきだと先ほど書きましたが、
これは言い換えると、「より優れたフレームワーク」を思いつく必要があるということです。

そんでもって、「フレームワークを作る」というスキルは、
プログラマーに限らす、さまざまなビジネスでも必要なスキルとなります。
ここでより高度なことができる人ほど優秀とされるようです。

以上のような「フレームワーク」を意識するということは、
ソフトウェアを作る時だけでなく、
コンピューターを設計するにおいても必要な考え方だったりするし、
もっと言うと、この世にあるありとあらゆるシステム(例えば「宗教」とかでも)
を作るにおいても必要な考え方です。
 

まとめ
  • 関数でやってることは「処理の部品化」と言える
  • プログラミングをしていくにおいて「部品」の扱いは重要で、
    「共通で使える部品」なのか「特定の画面でしか使えない部品」なのかを区別し、
    綺麗な構造を目指していくべき
  • 「もっとも綺麗な構造」を目指して開発していくにおいて「樹」の比喩が使える
    ・画面:実や葉
    ・個別の処理:枝
    ・共通の処理:茎や根本
    ・インプット処理:葉
    ・アウトプット処理:実や花
    ・データベースアクセス処理:根から下
  • 「フレームワーク」とは「枠組み」や「構造」と和訳できるもので、
    ソフトウェア開発において「より優れたフレームワーク」を思いつく必要がある
  • 「フレームワーク」を使った考え方は、
    ソフトウェア開発だけでなく、ビジネス全般で使われる

 

プログラミング入門 ⑭自由入力電卓を作る
さて、Javasciptによるプログラミング入門は そろそろ一旦、締めにしたいと思います。 最後に、これまでの総括としてまた「1+1は?」を応用して、 計算プログラムを作っていくことにします。 「1-1は?」ができるものを作る 以...

コメント