-> cocochi

心 ->  形
形 -> 心

心理学は前者、環境論(窓割れ理論)は後者の論理展開を好む。
ここでは、この2つの座視を脇に置いておいて、
心と形が分かれる以前の何かを想定し、話を進める。
ココロ と カタチ が分かれる以前の何かを、仮に「->」とする。
まず、 「->」 がありその後に、ココロ と カタチ があるように記号を配置してみる。

->{|ココロt, カタチt| 
  ふーんふふん
  ココロt+1, カタチt+1
}
  • > の変わりに tddを配置する。再帰を含めた例に
def tdd(こころt, かたちt)
  return  こころt, かたちt if 動作するきれいな かたち?
  こころt+1, かたちt+1 = red こころt, かたちt
  こころt+2, かたちt+2 = green こころt+1, かたちt+1
  こころt+3, かたちt+3 = refactor こころt+2, かたちt+2
  tdd こころt+3, かたちt+3
end

こころ と かたち 順序性には特に意味はない。
引数の順番を入れ替えても良い。

def testing(katachi_t0, kokoro_t0)
  return  katachi_t0, kokoro_t0 if 動作するきれいな かたち?
  katachi_t1, kokoro_t1 = reding katachi_t0, kokoro_t0
  katachi_t2, kokoro_t2 = greening katachi_t2, kokoro_t2
  katachi_t3, kokoro_t3 = refactoring katachi_t2, kokoro_t2
  testing katachi_t3, kokoro_t3
end

継続的に testingが 動作することで、Goodな Code の カタチ と ココロ が産出される, 保持されることになる。

kokoro と katachi の二つの概念が mixin された何かを 仮に、「cocochi」 とする。

def testing(cocochi_t0)
  return  cocochi_t0 if clean_cocochi_t0?
  cocochi_t1 = reding cocochi_t0
  cocochi_t2 = greening cocochi_t1
  cocochi_t3 = refactoring cocochi_t2
  testing cocochi_t3
end

cocochi がよいということはつまり、カタチ が Goodな状態 かつ キモチが Goodな状態 を指す。

  • >( 例えば、testing ) は、その cocoshi よい状態へ向かう、よい状態を保つ 振る舞いとなる