2019-06-05

anond:20190604104819

もうちょっとかみ砕いて説明したほうがよさそうだな。

好みのプログラミング言語があればそっちに合わせるから言ってくれ。ここは適当な感じで書いておく。

値を決めるのがcaller側でもいいなら、hasXXX、isXXXで当然bool値を返してそのbool値をもとにAかBを設定する。

if hasXXX(x) { r = A } else { r = B }

みたいな感じ。

値を決めるのがcallee側なら、initializeとかnewとかがいいだろうね。

r := module.New(x)

そんでもって、

package module

func New(x) returnType { if hasXXX(x) { return A } else { return B }}

みたいな感じ。

どちらがいいかカプセル化観点から決まると思う。callee側のモジュールに強く依存したデータを返すなら、callee側で値を決める。そこに何のデータが入っているかcallerは関知せず、callee側のモジュールけがそのデータ操作できる。

別にcaller側でも作れるようなデータなら、caller側でやる。

さらに言っておくと、関数名を何にするかはその言語でのお作法とかコーディング規約(不文律的な規約も含む)とかで決まるような気もする。何もなしで決めるならこうするよって例だけれど、すでに似たようなことをしているほかの関数があるなら、それに従うほうがいいだろうね。そいつらがcalculateならcalculateにしたほうがわかりやすいだろうし。

記事への反応 -
  • プログラム書いてて、何かの値を A か B か決める、みたいなメソッドの名前ってみんなどう付けてる? 算出する、みたいなやつは calculate_xxx ってしてるけど、パラメータに応じてどっち...

    • new とか initialize とか? 条件を満たすとA、満たさないとBならisXXXとかhasXXXとかもあると思うし。 AやBはcaller側で決めるか、callee側で決めるか。AやBに今後増えるようなバリエーションがあ...

      • > 条件を満たすとA、満たさないとBならisXXXとかhasXXXとかもあると思うし。 確かにそうなんですが、isXXX とか hasXXX は bool 値を返すイメージがあるので、条件を判定した結果、bool 値で...

        • もうちょっとかみ砕いて説明したほうがよさそうだな。 好みのプログラミング言語があればそっちに合わせるから言ってくれ。ここは適当な感じで書いておく。 値を決めるのがcaller側で...

        • 特定の値を返してそれどうするの? ブコメでも数件指摘されているように、具体例を上げた方が良いよ。 (中身もhogehogeとかじゃなく、伝票情報から小包サイズを決める等)

    • xxx_est_décédé

    • SIer なら、まずリードに仕様に載ってない新しい関数の必要性を説明します。 それから関数作成が認められたら、リードがエクセルを叩いて関数番号を決定します。 K3_B3458_S1298 みたいな...

    • とりあえず、kettei_xxx にしておいて後で良い名前を思いついたらIDEで一括置換。 文字数の少なさならfix_xxxでどう?

    • identify determine classify tag attribute assign 関数の定義自体が多少日本語的で難しいかも

    • "何かの値を A か B か決める" ってのがまずもって意味不明だ。判定するのか、セットするのか、他のことを意味するのか...

      • item.isTabemono() ? item.setChikaFloor(1) : item.setAboveGroundItem(1); みたいなクソプロパティ感

    • ジャッジドレッド?

    • そのメソッドが何をするものかを「日本語」で書く エディタで英語に一発翻訳 あとでいい名前が思いついたときに一括置換

    • 引数に名前を渡すと性別が返ってくる、みたいな感じだとすると getGenderでええんちゃう 判断:judgeでもいいかしら

    • decide determine と decide でググるとニュアンス的にも選ぶって感じらしいよ

    • メソッド何か値を返却してるなら名前は自ずと決まるんじゃねえの? 計算して値を返すならcalculateやらcompute どっかから取ってきたり検索したりするならgetでもsearch いろいろとワーワー...

    • 「何かの値をAかBか決める」ってのがいまいち分からんけど。 何らかのパラメータから「何かの値」をGetしてるんじゃないの?

      • たとえばグラボのチップ名を読み出して、それに応じてグラフィック設定の初期値をLow/Medium/Highいずれかに決めるという処理があるとする この場合getするのはあくまでチップ名までだ...

        • ああそういうことか と思って手元の手ごろなソースを見てみたら判定用の関数なんて組まずに その例でいうとグラボ名をgetしてそのままメインのロジックで判定してからそれぞれのサブ...

    • EnsureHoge()みたいな? でも大抵、判定基準の値のセッターに判定処理をいれてしまうなー。

    • 命名に悩むということはそもそもメソッドの粒度が間違っているのかもしれない

    • 単純な分岐処理だったら、関数の戻り値について「何を」「何処から」取得するかによって俺は決めてるなぁ。 コード内に直接記述、または定数化されてる値を返す場合は「get」 オブジ...

    • ジャッジメントですの!

    • Switch_何かの値、かな。

    • その決定した結果である「何か」を取得するメソッドにする。パラメータに応じて名前を決定するならgetName(param1)とか。

    • selectXXXとか?(SQL並感) judgeもありだなぁ

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん