エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

カプセル化と関数と名前づけ

註:ここでの関数はC言語の関数のことです。

オブジェクト指向のこころ」を読みながら。同書でカプセル化を「あらゆる種類の隠蔽」と説明しています。それをふまえて。仕事の現場で、最近思ったのが「関数ってのもカプセル化なんだな」と。
手続きのまとまりを隠蔽して、その仕様(機能)だけを見えるようにしている。そうすることでより抽象的なレベルでのプログラミングができるようになってゆく。
そうした場合、実装は隠されるわけですから仕様(機能)を表現するためには名前を使うことになるわけで。自分的には「名前、大事!」と腑に落ちることになるわけです。自分では腑に落ちても、仕事でなかなかそれが分かってもらえなくて、キーッ!となるわけです(自分の説明の悪さは棚に上げておきます)。
この辺の話をうまく説明した書籍とかないもんでしょうか、ねぇ。


デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)