chameleon_pos twitter vivouac youtube
弱小IT社長のひとりごと
~この国の若きITエンジニア達へ~

【第62回】その機能は「一言で言える」か?

2024-08-05

ソフトウェアのプログラムは「内部構造」を持ちます。

 

古くは「階層化されたモジュール構造」、近年では「オブジェクトモデル」などと言われるものです。

 

この構造の設計のことを「内部設計」とか「詳細設計」と呼びます。

 

で、ですね。

 

結構難しいのですこれが。

 

この設計に失敗すると、とても脆弱な品質の悪いプログラムになります。

ちょっとした仕様追加や仕様変更でも、色々なところに手を入れざるを得なくなり、バグ発生の要因にもなります。

 

反対に、センスある人がうまく設計すると、とても品質の良いプログラムになり、メンテナンスも容易です。

 

どうやったらうまく設計できるか。

 

簡単な正解はなかなか見つからないのですが、ひとつだけ、私が当社の技術者に常日頃から言っていることがあります。

 

「『そのオブジェクト/モジュールはどういう機能を持つものですか?』という質問に、一言で答えられるような設計をしよう」

 

ということです。

 

「オブジェクト/モジュール」が上位に行けば行くほど、その一言は「抽象化」され、下位に行くほど「具体化」されます。

いわゆる「オブジェクト指向」の基本ですね。

 

どちらにしても「一言で言えること」が大切で、あまり良くない設計になればなるほど、説明がだんだんと複雑になっていく傾向があります。

 

「○○が××の場合は△△を■■するための処理をして、それ以外の場合は似たような処理だけど◇◇を□□しない処理を行うモジュールです」

 

とか、ね。

 

反対に、良い設計の場合は、

「○○を△△するモジュールです」とか、

「××するための機能を持つオブジェクトです」などと、本当に一言で説明できることが多いです。

 

さあ、今まさにクラス設計とか共通モジュールを作成しようとしている若きITエンジニアの皆さん。

 

その機能、一言で説明できますか?