前提
AおよびBというフラグを持つ機能があり、AかつBでなければ実行しない処理が存在する場合について質問です。
実現したいこと
AかつBの判定を実施する関数名として適切な表現を教えていただきたいです。
真偽値を返却し、キャメルケースで記述しています。
Aだけ、またはBだけを判定する関数は IsA() / IsB() としています。
今後Cというフラグが追加されるかもしれないので、IsAandB() というような関数名ではなく、「実行可能なフラグが指定されているか」という汎用的な関数名を検討しています。
試したこと
IsExist~() という関数名では意味が異なるという指摘をいただいており、英語や一般的な関数名に疎いので質問をさせていただきました。
補足情報
Isで始まる必要はないので、英語として自然な変数名も検討していただきたいです。
お手数をおかけいたしますが、何卒よろしくお願い致します。
具体的に何を判定する関数なんですか?
A と B を判定するという情報しか与えられないのであればそういう名前にするしか仕方ないと思いますが。
isAllTrueとか...あ、isじゃないか。
executable が正解な気がする…。というか、どのレベルで物事を考えるかによる、というか。
例えば、自動車が走るには
・故障してない
・ガソリンが入ってる
という二つの条件があるとします。この際、isAandB に相当するのは「故障してなくてガソリンも入ってる」になりますが、これだと条件が具体的すぎて汎用性がないですよね。
で、例えば電気自動車も含めることにすると、ガソリンの代わりに
・充電してある
という条件が必要になります。そして、呼び出す側はガソリン車か電気自動車かによって「故障してなくてガソリンも入ってる」または「故障してなくて充電もしてある」を使い分ける必要が出てきます。
それは面倒だし、条件が変われば呼び出し側のコードを全部修正する必要があってバグの元になります。それよりも、シンプルに「走行可能である」という関数名にすると良いのでは。
質問や回答ありがとうございます。
A,Bの具体名を明かすのは差し障りがありそうなので、控えさせていただければと思います。
近い例ですと、あるコンテンツが読み込めるかの判定として「ブック形式か」と「日本語で書かれているか」というフラグがあったとしたとき、IsBookTypeAndJapanese() では汎用性がないという指摘を受けております。
(hoshi-takanoriさんのコメントと同じ指摘です)
皆様からご意見としていただいている executable ですが、この単語を使用する場合は ExecutableRead() というような関数名になるのでしょうか。
恥ずかしながら英語の知識がまったく無く、文法的な正しさを調査する方法が思いついておりません。
恐れ入りますが、英語として誤りがある場合や、もっとよい関数名がある場合は教えていただきたいです。
よろしくお願いします。
canReadBook ですかね。
そのフラグ群を実際に誰が立てるのかわかりませんが,フラグ立てが実施のための下準備の作業みたいな雰囲気であれば
isReadyToExecute
みたいな感じのはダメですかね?
それは既に回答にある executable と変わらないのでは?
何が実行できるのかを具体的に入れたいですね。
(「実施可能か?」と「実施するための準備が整ったか?」とでは微妙にニュアンスが違うかな?とか思ったのだけど,そこに何か価値があるか?と言われると自分でもよくわからない.)
質問を誤解してました。
「ブック形式かつ日本語で書かれているか」
「読み込めるか」
という意味レベルの質問ではなく、英語の質問だったんですね。
とりあえず、executable という単語は execute (実行する) という動詞の後に able という接尾辞をつけることで「実行できる」という意味になりますが、助動詞 can を使って canExecute という形にした方が分かりやすいし、canRead のように別の動詞にも応用しやすいでしょうね。
そして、英語が苦手なのは仕方ないとして、意味レベルで悩んでるのか、それとも英語で困ってるのかを他の人が分かるように、関数などの名前に自信がないなら
// 「読み込める」という意味の関数名にしたい
とかコメント書いたら良いかも…。
皆様、回答やご指摘ありがとうございました。
hoshi-takanoriさんのおっしゃる通り、基本的な英語の知識と、関数名の付け方に慣れていないという2点のせいで理解しづらい質問をしてしまったと思います。
無事解決致しましたので、完了致します。
回答5件
あなたの回答
tips
プレビュー