プロシージャの名前(上手くいかなかったお話)

物づくりには、「モジュール化」という手法があります。

tech.nikkeibp.co.jp

ざっくり言うと、「標準化した部品の組み合わせで製品を設計する」ことのようで、私は勝手に「レゴブロック」をイメージして理解しています。

歯車の設計にも、「モジュール」が登場します。詳細は割愛しますが、歯車の基準円直径を歯数で割ったものです。歯車の設計において、大変重要なものです。

Excel VBA にも、「モジュール」が登場します。

  • 標準モジュール
  • クラスモジュール
  • などなど

同じ「モジュール」という言葉であっても、分野が違えば競合することはなく、お互い上手く棲み分けることが出来ます。


ところで最初の「モジュール化」では、等比数列を用い選択しうる数を制限することで、無限の組み合わせが発生することを避けようとします。私もこの手法を用いて、業務に登場する「ポンプ吐出量の選択肢」を幾つかに制限することを試みました。例えば、こんな感じです。

  • 10ℓ ⇒ 10ℓ
  • 15ℓ ⇒ 20ℓ
  • 22ℓ ⇒ 20ℓ
  • 28ℓ ⇒ 30ℓ
  • 31ℓ ⇒ 30ℓ

この例では、5種類あったものが3種類に集約されていて、管理のし易さに繋がります。
折角なので、欲しい流量がどこに集約されるか簡単に求めるユーザー定義関数を作成することにしました。関数の名前ですが、日本語で書くならばこんな感じです。

「モジュール化したポンプの吐出量」

引数は、以下の通りです。

  • モジュール化する前の吐出量
  • ルナール数(※シャルル・ルナールさんの名前に由来)

ルナール数は、JISにおいては「標準数」であり、選択肢の「とびとび具合」を決めるものです。R5,R10,R20,R40のように数が増えていき、大きくなるごとに間隔が細かくなっていきます。

RENARD NUMBER


まず関数に、名前を付けてみました。

Public Function CalcDischargeAmountOfModularizedPump(original_discharge_amount As Double, _
                                                    renard_number As Double) As dolube

・・・長い。余りにも長すぎる。これはもう、自分にだけ通じれば良いと割り切ってしまいましょう。

Public Function ModulizedFlow(original_flow As Double, _
                              renard_number As Double) As dolube

直訳すると「モジュール化した流れ」。分からなすぎますね。さらに気になるのが、ルナール数です。

  • renard が「ルナール」と読めない。
  • W(ワット)やA(アンペア)のように、人名由来の単位や数は大文字で始めたい。

などの理由から、個人的には相当気持ち悪いです。かといって、JISの「標準数」に倣い

standard_number

にしてしまうと、もう何のことかわからなくなります。「モジュール数」にすると、歯車のことと勘違いする人がいるかもしれません。悩むところではないのに、悩んでしまう。悩んでいる間にも労務費は発生し、刻一刻と無駄なお金が流れ出てしまいます。さて、どうしたものか・・・。

悩んだ末、たどり着いたのがこちら。

Public Function モジュール流量(元の流量 As Double, ルナール数 As Double) As dolube

今回はついに、工夫することを放棄してしまいました(敗北!)。しかも、日本語になっても分かりにくいというオマケつきで。

やっぱり名づけは難しい、というお話でした(きかんしゃトーマス風)。

参考まで。