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

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

なにをやるか、どうやるか

設計や実装でも、なにをやるかとどうやるかの違いを、つまりは目的と手段を、きちんと意識する必要があると思います。言葉にするとあたりまえなのですが、書かれたコードを見ると、そうでもないようです。なにをやるかを置いてけぼりにしているコードが、少なくない。コードを書く人の心理としては、どうやるのかが見えないと不安、というのがあるのかもしれません。あるいは、なにをやるかよりもどうやるかが重要なのかも。さすがにそれはないと、信じたいですが。

コードの中に、直接、どうやるかが見えていると、そこまでの流れを一旦中断し、脇において、それがなにをやっているのかを確認してから、本流に戻る、という思考をわたしはします。だから、そいうプログラムは読むのに疲れます。コードレビューで、ここ分けよう、とか提案しても、「なにをやる関数」という分け方をしないで、「どうやる関数」といった分け方をして。結局思考は中断されるし、どうやるの中身が見えなくなるので、流れを追いかけるのがよけい手間になったりします。