質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

Q&A

解決済

9回答

3893閲覧

”赤と青”という表現を変数名に落とし込むとき、アンドの部分をどう表現しますか?

退会済みユーザー

退会済みユーザー

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

0グッド

0クリップ

投稿2016/10/07 04:58

編集2016/10/07 06:01

たとえば 赤と青 を変数にする場合、
単純に命名すると

redAndBlue
red_and_blue

などになるかと思うのですが、
andの部分が冗長に感じます。

かと言って

redBlue
red_blue

だと意味が変わってきてしまいます。

redNblue

のようにandをN一文字で略す方法があるらしく、
(なんかプログラミングの文脈ではないのですが若い人達が使ってますよね)
一般的であるなら取り入れたいと思っています。

もしくは、プログラミングにおいて一般的にandをこう略す、
みたいなのがありましたら教えていただきたいです。

宜しくお願い致します。


追記
”赤と青”という例えが悪かったです。申し訳ございません。
”AとB”に置き換えてみてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答9

0

ベストアンサー

(命名だけを問題にして、かつ、その選択肢の中から選ぶなら)
RedAndBlue、または、red_and_blueの方を選択します。
一方、redNblueは、推奨できません隠語的だからです。

なるべく多くの人間に通じる普遍的な言葉を選んでください。

かりに、たまたま職場で「N」でANDを表すのが流行ってたとしても、
たとえば数年後に人が入れ替わってたら、保守のさまたげになります。

こういう略語の誤解の極端なケースでは、色だとすら判明しない場合もあります。

書いた側から見ると、「赤と青」だと知ってるから略したくなりますが、
読む側から見ると、「readNotrue」とか、何かの略と錯覚するかもしれません。


そもそも、「少しでも短く略したい」という方針も推奨できません。

タイプ数を減らしたい気持ちは分からなくもないのですが、
現代では短さより可読性の高さを優先するのが、筋の良い命名法です。

『リーダブルコード』でも、字数よりも理解にかかる時間を短くせよ
という主旨のことが書いてあったと思います。

じゃあ、どこまでも長くなってもいいかというと、それも微妙ですが、
すくなくともANDをNに略すのは過剰です。

もし、redNblueにするくらいなら、red_blueの方が、
誤読の余地が減るので、二択ならこっちの方が良いと思います。

投稿2016/10/07 08:29

編集2016/10/07 11:27
LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 00:59

仰る通りです。肝に銘じておきます。。
guest

0

質問文通りで回答すると、私はred_and_blue推しです。
次点でredNblueですかね。

&&は大抵の言語においてANDとして評価されるので、
プログラマに読ませる前提ならば変数を分けて&&を使っても良いでしょう。

未来の自分や他人に読ませる事を考えると、長くても読める方が無難です。
意味が変わってしまっているワードとか最悪ですね。
隠語チックになっても洒落てて受けれられそうなものは候補としてふさわしいと思います。


どんな名前がふさわしいかは状況次第ですね。
「青と赤を両方持っているオブジェクト」なのか、オブジェクトが赤もしくは青のどちらかならばTrueになっているのか。

状態変数は基本的に少なければ少ない程良いので、
「○○かつ○○」という変数を作らざるを得ない状況は避けた方が良さそうに思えます。
「青と赤を両方持っているオブジェクト」の際に変数を作る事を避けた例を作ってみました。

JavaScript

1var miyabi = new User(['red', 'blue']); 2if (miyabi.has_item('red') && miyabi.has_item('blue')) { 3 console.log('なんと赤青両方持っている'); 4} else { 5 console.log('流石に赤青両方持ってはいなかった'); 6} 7 8// 以下if内別解 9miyabi.has_red() && miyabi.has_blue() // 青と赤の意味合いの強さ次第では専用のメソッド2つ作る価値はありそうです 10miyabi.is_in_possession_of(['red', 'blue']) // ちょっとカッコつけすぎですかね?

投稿2016/10/07 05:47

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 00:58

こちらの説明が不足していたにもかかわらず、ご丁寧な回答いただきありがとうございます。 >長くても読めること これを心がけます。。
guest

0

赤か青 Red or Blue
になりそうな気がしますが、基本的にはどちらでも良いでしょう。
チームで開発するためネーミングのルールが必要なら、コーディング規約を作って全員に厳守させましょう。

投稿2016/10/07 05:15

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koutan1976

2016/10/07 06:02

すみません、マイナス評価がつけられていたのでコメントしときます。 私もまったく Orlofskyさんと同じ意見です。 赤か青 Red or Blueになりそうですよね。 (どうでもいいですけどw) コーディング規約で決めるってのにも賛成です。 ちなみに うちの規約だと red_and_blue です
退会済みユーザー

退会済みユーザー

2016/10/07 06:22

二つを同時に持つ状態があり得ないのでどちらか一方(or)になる、ということでしょうか。 今回質問した背景としては、お客さんの業務領域の言葉を変数にする必要があり、あまり勝手に変えることも良くなさそうなので直訳した”AとB”のような表現になってしまうのかなと。
koutan1976

2016/10/07 06:50

k-s さん >>二つを同時に持つ状態があり得ないのでどちらか一方(or)になる、ということでしょうか。 変数に入れる値を考えたときに redAndBlue だと赤だけとか青だけの状態はないの?とかON/OFFのフラグ的なものが対象?みたいな考えになりました。 「お客さんの業務領域の言葉を変数にする必要があり」&「AとB」で状況が理解できました。
Orlofsky

2016/10/07 07:19

koutan1976 さん、ありがとうございます。 [日本 and 関西] ならありだけど、[赤 and 青]ってなしだろう、って判断して or にしてみました。わかり易く誤解しにくい文章を書ける能力って簡単に身につくものではありません。 一貫性のあるネーミングはシステムの開発や保守はもちろん、システムの信頼性や寿命に関わる大切なことです。最近はラフな論理設計を渡されて物理設計する時に単価が安過ぎて仕事が雑になってしまう自分が嫌になります。 ↓1社ですが外資系で英語の略語でテーブル設計の一部分に使われていたことがあります。 http://www.berlitz-blog.com/abbreviated-word
guest

0

変数名(メソッド名)を見てもしも「red_and_blue」とか書いてあって、
期待する意味や役割がすぐ思いつくのであればそのまま使うでしょうが、
私ならそれが意味する本来の目的や役割から別の名前をつけます

勝手な憶測ですが、黄色じゃない、赤と青であることを意味もたせたいのであれば、
まず先に黄色じゃないという意味で「not_yellow」などとするかもしれません、という意味です。

投稿2016/10/07 09:28

編集2016/10/07 09:30
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単純に
red_blue
とか
RedBlue

red_and_blue
など
もわかりやすくて有りだと思います。

ご参考まで

投稿2016/10/07 07:53

編集2016/10/11 11:20
Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2016/10/07 09:58

変数名に&が使えるプログラミング言語はあるんですか?
guest

0

赤か青かのどちらかが入るなら
isBlueかisRed でbooleanで持てばいいんじゃないかと
ANDとかORとか変数名に入れるのはやめてほしい

投稿2016/10/07 07:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「赤と青」⇒colorでしょうか。

「姓と名」ならfullnameだし。「日付と時刻」ならdate_timeか、単にdateか、timeか。

・どうしても単語を2つ並べたい
・andを省くと意味不明になる
ということなら、andを書くしかないのは自明だと思います。andをNと書くかどうかは標準化ルールで。

「どうしても単語を2つ並べたい」がファイナルアンサーかどうか吟味すべきだと思います。

投稿2016/10/07 06:44

otn

総合スコア84712

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

個人的には、RED & BLUEはPINKですw
RED & BLUE

投稿2016/10/07 05:57

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/10/07 06:00

真面目に答えると、red_and_blue か RedAndBlue ですね。 冗長かどうか、なんて変数名の選択条件に入りません。
guest

0

赤と青が単純に色のとして欲しい場合ってあんまり無いようにおもえます。

たとえば、日産の販売店の色と、僕の好きな色とか、派手な色とか意味するところを名前にするようにします。

出来ればですけど。。

投稿2016/10/07 05:32

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問