嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

責務と入出力のずれ 1

どの様な話?

関数は、

  1.  得やすい自然な値の入力
  2.  変換1
  3.  責務(その世界の支配的な少数の前提)の実装
  4.  変換2
  5.  欲しい自然な値の出力

と言う構成を取ると思います。

そうなると、

  • 外から見た責務と実際の責務にずれが生じる
  • 何を以て単一の責務というのか解らなくなる(外から見た? 実際の?)

と思います。

それを解決するために、

1つの関数で無く、複数の関数をまとめて、1つのクラスにした場合、

  • クラス内で終始する複数の責務が同じクラス内に出来てしまう。

と思います。

一番自然なのは、

一番自然なのは、

  • 複数の責務がクラス内に有っても良い
  • それら全ての責務が1つのクラス内で終始していさえすれば良い
    (utilsクラスなんてのも、一理有ると思います。)

だと思います。1つのクラスを1つの責務のみに強制するのは不合理だと思います。

結論

不当に厳しい「1つのクラスに1つの責務のみ」という不自然な制約を課せれる事で、これからも「責務と入出力のずれ」により、プログラミングが嫌いになる人は存在し続けることでしょう。