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

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

一回限りの 4

nullに対する好悪

JavaScriptが大変 3」で書きました通り、私にとって、

でした。

ですので、「nullが無い方が普通の記述となるコンテキスト」で、最終的に置き換えようとする事に対して、べつに特段の好悪感情は持ちません。

年柄年中、「nullかどうか」最初に判定しないと行けないというのは、確かに不合理です。

 

 

ユニットテストJUnitは?

こちらに関しては、

  • 実際に、技術的焚書もたらす事になる
  • すなわち、「ユニットテストが有る方が普通の記述となるコンテキスト」が作れず、状況にそぐわず、
  • れをすべきだとした人間、作ろうとしない・作れない状況になる

ので、好きでは無いです。

 

 

何が引っ掛かるのか?

ユニットテストJUnitは、「開放閉鎖の原則(開放/閉鎖原則 Wikipedia 日本語版)」と密接な関係にあると思います。

「開放閉鎖の原則」を成り立たせる様な仕組みが作れる状況で、「ユニットテストが有る方が普通の記述となるコンテキスト」を使えるのです。

 

(今度、Copilot Proを止めて、Cursor Pro(有料版では一番安価なプラン)にしたのですが)Cursor Proに、

  •  計算に必要な入力値の個数、種類が変わる際に、開放閉鎖の原則を維持することは可能ですか?

と聞いた所、

  • 計算機アプリを例題として、
  • (ソフトウエアの大きい方の枠組みである)「戦略パターン」を使った実例

が回答されました。

拡張性、柔軟性、保守性、テスタビリティのいずれにも秀でたやり方だというのです。

しかし惜しむらくは、anyの多様だと思います。もちろん、それを回避し、型をきちんとする手段も有るのは存じていますが、かなりの手間となります。

これではまるで、

  • 年柄年中、「nullかどうか」最初に判定しないと行けない

のと同等か、それより酷い状況となります。

ユニットテスト無い方が普通の記述となるコンテキスト」で、最終的に置き換えたくなる状況だと思います。

 

 

ユニットテストJUnit、ひいては開放閉鎖の原則

そもそも「開放閉鎖の原則」など、継承の濫用となり、もはやモダンと言うに値しないやり方かも知れません。

そうなると、ユニットテストJUnitも、それと同じ運命となり、まだ在来のテストの方がまし、となっているのが現状かも知れません。

 

それが有効な、特定の状況は有るかも知れませんが、

圧倒的大多数の場合、nullと同等かそれ以上の理由で、

  • 「一回限りの」の状況に対処するには、在来のテストの方が適していた

のかも知れません。

 

 

結論

これからも「一回限りの」事象に対する「技術的焚書」でプログラミングが嫌いになる人は存在し続けることでしょう。