x*0.10m
を x*税率
にするのも 消費税額(x)
にするのも、名前を付けているという点で同じ。名付ける対象がデータか手続きかという違いはあるし、それを定数で定義するか関数で定義するかという違いもあるけど、static メソッドでアクセスするシングルトンオブジェクトがグローバル変数と同じなのと同じ程度には同じ。■2つあるブコメにもそれぞれ一理はあって、「変更があるものは定数化した方がいい気がします.....」は、それはそう。ただし設定項目の一部であったりしてプログラムとは別のサイクルで変化する場合や、変更が複数箇所に及ぶ場合に当てはまる話であって、同じソースコード上にある現状であれば、定数定義を1か所変更することになるか関数定義を1か所変更することになるかという違いは、どうでもよくない? 「
例がよくない。例示している消費税率はソースの至る所に存在するようになり、定数化しておくと法律が変わり修正が必要なときに修正漏れを抑えることができる。1度しか使わない値を定数化など何でもするはよくない。」というのも、それはそう。当たり前のことをこの記事に対してコメントするのはなぜか。たぶん記事の中の
消費税額
関数を否定はしていなくて、だけど 0.10m
というマジックナンバーを利用する場所が絶対に 消費税額
関数1つにとどまらないだろうことを見越して「例が良くない」と言っているのだと思う。