質問するログイン新規登録

意見交換

6回答

518閲覧

変数・関数の命名、あなたのこだわりを教えてください!

teratail-talk

総合スコア8

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

命名規則

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

0グッド

0クリップ

投稿2026/04/19 23:00

0

0

🖊️テーマ

コードを書く時間の半分は命名に悩んでいる、なんて話もあるほど、命名はプログラマーの永遠の課題です。

  • btnidx など、省略形はOK?
  • get / fetch / find / retrieve など、使い分けてる?
  • bool変数の接頭辞はどうしている?
  • どれくらいの長さを心がけている?

など、あなたの命名のこだわり・流儀を教えてください!

👤運営メンバーの回答

運営メンバーのこだわりは「否定形の命名を避ける」でした!

isNotEmptydisableAutoSave のような否定形は条件分岐で二重否定になりやすく、

JavaScript

1if (!isNotEmpty){ 2... 3}

のようなコードを生んでしまうため、なるべく肯定形( isEmpty / autoSaveEnabled )に寄せるようにしているとのことです。

〜teratailトーク!とは?〜

詳細を公式ブログで公開しています。ぜひお読みください。
「teratailトーク!」スタート🎉 気軽に意見交換しよう!

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

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

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

回答6

#1

otn

総合スコア86623

投稿2026/04/21 11:01

こだわりの話ではないですが、isNotEmpty isEmptyについて言うと、「空である」ということ自体が「中身が入ってない」という否定的な意味なので、そこから考え直した方がいいケースもあるかと思います(例えばif(isEmpty)よりif(!isEmpty)が多いケース)。もちろん、文脈によっては「空である」で良いケースも多いと思いますが。

「このケースで中身があることを簡潔な英単語で表すのが難しいので、論理を逆にしてEmptyを使いました」という状況はありそうな気もするので、AIに『プログラミングでの変数名の相談です。「部屋に人が1人以上いる」ときに真、「部屋に人が誰もいない」時に偽となるような変数の変数名をいくつか考えて示してください。』と聞いてみるといくつかよさそうなものがあります。

「否定を意味する語を含ませるのは避ける」こと自体には賛成です。

#2

ymmr

総合スコア149

投稿2026/04/21 13:45

「こだわり」となると程度によってはかえって可読性を下げそうですが、自分が大事にしているのは誰が読んでもわかるようにしていて、リーダブルコードに書いてあるようなことを意識するようにはしています。

例えば、

  • 読み手に意味が伝わるように、必要な情報を含めるようにする
    • 例:{dataresultではなく、userListorderTotal`のように中身が分かる名前にする
  • スコープに応じて名前の長さを調整する
    • 短い関数内であればuserで十分だが、広いスコープでは currentUser のように補足する
  • 汎用的な命名は使用しない(tmpなど)
  • 冗長な命名は避ける
    • 例:accountRepo.getAccount()のような重複は避け、accountRepo.get()のように文脈で意味が通る形にする
  • 一般的に使われる英語を使い、独自用語を避ける

などですね。

#3

mingos

総合スコア4334

投稿2026/04/21 15:21

仕事ではプロジェクトの規則があるのでそれが優先されます。
個人開発とかそういう縛りがないのであれば、
言語やフレームワークの慣習をまず調べてそれに合わせる事。
可能な限りその文化で一般的であるようにする事ですかね。
どんな言語、フレームワークでも同じ命名規則というわけには行かないためです。

一例を出すと、C++/C#などではisEmpty, IsEmptyなどが良く例に出ますが、
Rubyなら empty? などメソッド名に?が使える言語なので逆にis_emptyは一般的ではないなどの違いがあります。

#4

a.com

総合スコア923

投稿2026/04/22 01:09

編集2026/04/22 01:10

こだわりではありませんが、同じプロジェクト内ではクラス名・公開関数名はユニークにしています。
パッケージが異なっていてもクラス名が同じだと、検索時に不便だからです。

#5

u2025

総合スコア244

投稿2026/04/22 13:15

btnやidxがその言語やDBでのフレームワークなら付けるのに否定的ではありませんが、基本的に言うと自分で略語を考えてつける人はxxxxだと思います。
まあ優秀な人がそうしてたらいいと思うのでしょうけど、ほとんどの人が無能な人だと思うので無能な人がそれやり出したらやりたい放題になっちゃうので。
もし、母語話者なら百歩譲って許せますけど、その人はグローバルなソースコードを書く気がない人なんだなとは思いますかね。

同じプロジェクト内ではクラス名・公開関数名はユニークにしています。

これを見て思いましたが、いいアイデアだと思います。
しないですが、せめて業務で使う用語は設計書(日本語)と英単語を1:1でドキュメント化したいですね。

isNotEmpty や disableAutoSave のような否定形は条件分岐で二重否定になりやすく、
〜中略〜
のようなコードを生んでしまうため、なるべく肯定形( isEmpty / autoSaveEnabled )に寄せるようにしているとのことです。

これは気にしないですね。
むしろ関数が多いとどれを使ったらいいのか分かんなくなるってクレームが出るのと、そのクレームがごもっともだと思うので、数行の文脈を意識して関数名を付けるってことはあんまりないかも?って思いました。
(あとどうでもいいけど、Empty, Blank, isset, isFull, exists、とか大量にあっても結局このプロジェクトではこれ使ってればOKみたいにせんと、余計なこと考えてコード書かないと行けないので英単語の問題とか関係なくなると思う笑
って思ったけどこれ変数名の話か。変数名ならなんでもいいですね〜
真剣に考えるとなんだろう?これは課題としたい笑)

まあもうひとつ、条件式は中間値記法を使っている以上インデントや論理関係が直感的によく分からんのでそれなりのこだわりはありますし、コメントはできるだけ直観的なものをつけることを意識します。
(他の人が書いたコードを読む時にいちばん地獄なのは、ここが投げっぱなしだったりバグってたりするところですね)

どれくらいの長さを心がけている?

冗長で説明的な名前は基本的にいいと思います。
3文字でも20文字でも、意味の無いとか意味の分からないレベルのものでも長い方を好みますね。
他の人がどうしてるのか知りませんが。
短いと余計にノイズなこと、多くない?

#6

u2025

総合スコア244

投稿2026/04/22 13:24

変数名ならなんでもいいですね〜
真剣に考えるとなんだろう?これは課題としたい笑

自分なら isNotEmpty や disableAutoSave、どっちでも定義する時にコメントで
xxxなとき、空になる
xxxなとき、オートセーブがオフになってる
とかつけるかな。

xxxの状態を変数名に反映するか、その変数そのもののフラグ、Enum的な状態(例えばEmpty)を変数名に反映するから状況によって分かんないけど、直感的には後者な気がする。

それが二重否定だったら確かに気持ち悪いかも?とは思うが、普段から意識してるって程ではないかな。

ってか今思ったけど、この空とかもそうだけど全部Enumかなんかでリストアップして定義しておくべきじゃない?
変数名未定義、変数がnull, 変数が空文字とか、リストアップすべきじゃないか?

もっと言ったらメソッド(かプロパティ)に持つべきだよな。
やっぱりオブジェクト指向って神だわ。

ていうか、フロー考えてる時に変数名何にしよう?とか非本質的な思考を挟まないと行けないとしたらその状況がクソだわ

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問