テーマ、知りたいこと
boolean型の変数名に〜flgとつける人をどう思いますか?
背景、状況
boolean型の変数名は、is〜、can〜と付けた方が、
その変数が真のとき、どういう状態か分かり易いよと何度も言っているのに、頑なに〜flgと命名する人がいます。
私はこういう人とは一緒に働きたくないと思いますが、みなさんどう思いますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
#1
総合スコア380
投稿2025/01/17 12:03
編集2025/01/17 12:04あなたの意見に同意します
isはわかるけど、hasも使ったことあるけど、canはわかりづらいかな
#3
総合スコア10184
投稿2025/01/18 03:38
もし、それで困ることがあるのであれば、規約やルールとして決めておくべきでしょう。
そうでないのであれば、可読性が低いほうを選ばれたとしても仕方がないと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア1454
投稿2025/01/18 03:55
あなたの意見に同意します。
ただ、isXXXのルールが守られていたとしてもisNotXXXとかの肯定と否定の変数が混在するプログラムは嫌いです。
ところで、isXXXFlgとかはどうなんでしょうね?
頑なに~Flgを付けたい人に対しては、~Flgにしてもいいけどとりあえず接頭辞にisを付けてくれと言えば納得してくれるのかな?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア380
投稿2025/01/18 05:41
編集2025/01/18 06:06例えばクラス名やインスタンスがflagという接尾辞のついたものなら、特におかしく感じない
もしもflag(flg)が人間の直感に合っているなら、ドメイン駆動設計とか宣言型プログラムみたいに、やりたい結果を重視するような文脈であれば、
何らかの処理を示すためのflagとして宣言しているということが構造上わかりやすいんだと思う。
読み手としてはそれがどこから来てどこに行くのかを知りたいという話だから、何とか両立できそうな気もするし逆に相容れないかもしれない。
プログラムは設計図という考えとプログラムは生きているという考えがあると思っていて、
設計図という考えは、1度作ればコンピュータが勝手に複製も実行もしてくれるから(実際の工業に当てはめた考え方)
この設計図の考え方は大きく同意するけど、多分自分みたいな若者は初っ端から大きいプログラムに触れるだとか、古いシステムを改修するだとかの経験から、flgとかいう意味の推測できない方法はやめね?となるのだと思う。
まあ、強いものが強者ではなく、環境の変化に耐えられるものが強者とかいう自分が中学生くらいの頃に聞いた言葉を引用していいのであれば、解決方法は自分がflgになれることな気がする。
まあ、意見としては質問者さんに同意だけど!
それと質問の本質とはズレるけど、flgみたいな略語は表記揺れする未来しか見えないので好きじゃない
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア13926
投稿2025/01/18 06:00
boolean型の変数名に〜flgとつける人をどう思いますか?
構わないと思う。 場合によっては自分でも使う。
その変数が真のとき、どういう状態か分かり易いよと何度も言っているのに、頑なに〜flgと命名する
チームで開発しているのであれば、変数の命名規則はある程度統一していたほうがいい(ここも議論の対象になりそうではある)ので、チームとして意思を統一して、必要であれば明文化すればいいと思う。
ただし、その結果チームとしてその必要は無いという結論になるのであれば、受け入れるべきだし、そうなる可能性は大きいと思う。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
総合スコア85996
投稿2025/01/18 13:43
boolean型の変数名に〜flgとつける
「boolean型」という漠然とした話であれば、強いて言えばシステムハンガリアン記法的で止めた方が良いとは思いますね。私は自分では使いませんが、システムハンガリアンで書いている赤の他人に「絶対止めろ」というまではしないです。
ただ、おそらく、is~
や~flg
が、「~という状態である」という意味を持つ前提での質問でしょうから、その場合はis
の方が肯定であることが明示されるのでそちらが良いかと思います。flg
は~
との関係が明示されていない。接頭辞か接尾辞かはどうでも良いですが、is
だと自然に接頭辞になりますね。
その変数が真のとき、どういう状態か分かり易いよと何度も言っているのに、頑なに〜flgと命名する人がいます。
これの理由はいろいろ考えられます。
① その人が頑固(他人の意見で自分の意見を変える習慣がない)
② 何らかの理由で~flg
の方が良いと思っている
③ ①と②をあわせたようなものですが、あなたの説明がその人から見て納得性がない。そもそも違う考えの人を説得するのは難しいです。相手が「他人の考えを取り入れて自分をより高めよう」という意識を抱いていない限りは、説得者がその道のプロ的な人でないと。別にあなたの説得方法が良くないと言うことではなくて、「他人の考えを取り入れて自分をより高めよう」という意識をもってない人に対しては、私も説得出来ないと思います。
念のために書いておきますが、「~flg
がシステムハンガリアン的なので良くない」というのはそれを使っている人に対しては全く説得力が無いので、言わない方が良いです。
私の書いた範囲で説得に使えるかも知れないのは「is
の方が肯定であることが明示されるが、flg
は~
との関係が明示されていない」くらいですかね。ただおそらくすでに説明されたことだとは思います。
論理型のシステムハンガリアンはどう書くのだろうとWikipediaを見てみるとb
かf
で、例がbDirtyFlag
だったのは笑うところか。
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。