2016年6月30日

プヨグラミングのできない人はとにかく名前がつけられない

「副作用のあるgetter」とかの話。

{
  :
  ある処理();
  :
}
 
private void ある処理() {
  ある処理;
}

こういうコードがあって、
「ある処理は条件Aの時に呼んじゃだめ」ってバグが出た際に
プヨグラミングのできない人は

{
  :
  if (!条件A) {
    ある処理();
  }
  :
}

こういう感じの方法「だけ」で直すんだけど、僕としてはかならず以下の方法とどっちが良いのかを迷って欲しいのです。

{
  :
  よしなにある処理をする();
  :
}
 
private void よしなにある処理をする() {
  if (条件A) {
    return;
  }
  ある処理;
}

で、このあたりのよしな感を、物理名-論理名の話になぞらえて、

「名前で直接どんな操作をやってるかがわかるもの」を物理メソッド
「名前で何を目的とした処理なのかがわかるもの」を論理メソッド

みたいな呼び方をしてるんだけど、あまり効果的に通じてない気がするので誰か良い名前つけてもらえませんか?