続 atsushifxの七転八倒

ウツ、発達障害の闘病記とIT関係のつれずれを書いていきます

Re: <a href="http://d.hatena.ne.jp/dachii/20041109#p1">後輩に伝えること。</a>

  • なにはなくてもInterfaceを使うこと。Interfaceの目的は仕様と実装を分ける。仕様と実装が分かれていれば、コンポーネントの再利用と保守性が高まる。その結果、一番うれしいことはテストがしやすくなる。ただし、太ったInterfaceには注意すること。Interfaceは多重継承できるので、適切な粒度のInterfaceを心がけること。
  • オブジェクト指向以前に、基本は凝縮度を高めて、結合度を下げること。おそらくシンプルに作るという言葉がしっくりくる。
  • 抽象化はやたらめったら行うものではない。もっとも変化がある部分に使う

以下略

オブジェクト指向を行う上でのプラクティスですね。
参考にします。
ボクの場合、プログラミングを行う上での原則はこうですね。

  • 一つのメソッドでやることは一つ。
  • メソッドで行うことを明確に。一言で説明できるのが一番。
  • とにかく分割して統合。同じ処理は一つにまとめる、似たような処理も何とかしてまとめる。
  • オブジェクトは自分のすべきことを知っている。逆にいえば、わからないことは別のオブジェクトに任せるべきこと。
  • 一番重要なのはインタフェース、クラス間でどのように情報を受け渡すべきかを真っ先にかつ注意深く考える

プラクティスを教えるのは大事ですが、その元の原則、フィロソフィ、考え方を教えるほうが大事だと思います。
ただ、言葉で教えてわかるものじゃなくて実際にプログラミングして覚えるしかない気がするのがちょっと残念な部分かも。