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

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

ただいまの
回答率

90.53%

  • Windows

    1681questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • Git

    1598questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • ASP.NET

    611questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

  • SourceTree

    172questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

変数名に日本語を使用するのは有りか

解決済

回答 12

投稿

  • 評価
  • クリップ 1
  • VIEW 5,159

kpiyohiko

score 608

いつもお世話になります。

現在、ASP.NETを使用した環境で開発をしています。
ふと気になったのですが、
変数名に日本語を使用するのはありなんでしょうか。
ずっとJavaやC、AndroidやSwiftで開発をしていたので違和感しかありません。

例えば、勤怠管理システムを開発しているとして
int 出勤状況
int 有給日数
のような変数名に日本語を利用することは開発として向いているのでしょうか。

全角文字を使用すると、全角スペースの悪夢や変換が面倒、
検索がしにくいといった不便なことがたくさんあると思います。

皆様のご意見をお伺いしたいです。
よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 12

checkベストアンサー

+11

自分で作る時はまず使いませんが、場合によっては使ってもいいと思います。
業務によっては専門用語的なものを変数で表さないといけない場合があります。
英語の変数にするために一生懸命辞書を引っ張った結果、やたら長ったらしい変数名になったり、その労力の割には他者が見たときにまったく意味がわからなかったり。
逆に長いからと省略すると更に意味がわからなくなったり、他の似たような変数と区別がつかなくなったり。
そのようなことが頻繁に発生するような業務であれば、あえて日本語を使うメリットはあると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/20 15:09

    ありがとうございます。
    確かにその通りですね。
    難しい業務系のシステムでしたら、日本語やむなしなのかもしれません。
    ありがとうございました。

    キャンセル

+7

シンプルにチーム内文化として統一出来るならありだし、統一出来なきゃ無しですね。

タイプし辛いので個人的には勘弁して欲しいのですが、
最近の開発現場ではutf-8で統一されていて当たり前でしょうし、他の予約語と衝突しない日本語変数は検索し易いまでありそうなので、障壁自体はそんなにないかと思います。


因みに似たような題材の面白い記事をどっかで見かけたような…みつけました
日本語変数名で後悔 - Ognacの雑感

あぁ。それなのに、漢字を認識しない外人開発者がプロジェクトに参画してきました。

これには草、結局どうしたのか気になりますね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+5

こんにちは。

おっしゃる通り本質的でないトラブルに悩みそうですし、他のコンパイラへの移植も厳しくなるので、私が決定権を持てる時は使わないです。意見を言える時は反対意見を述べるだろうと思います。
プロジェクトや会社の方針として、それらのトラブルのノウハウを積んで日本語による可読性の改善を狙うのはありと思いますので、拒否はしないと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

個人的には、変数名を日本語にするメリットはあまり感じません。
何よりタイピングする際の入力切替が面倒ですし。。
ただ、子供向けのプログラミング学習等では効果があるかもしれません。
また、変数名を短くできるメリットもあるかもしれませんね。
ちなみにSwiftも変数名に日本語を利用できますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

特別な理由が無い限りしません。
変数名ではないですが、クラスのプロパティなんかには使ったことがあります。

理由とコストが優れているのであれば日本語を使ってもいいのではないでしょうか。
僕は汎用性の無いCSV入出力ツール作成時なんかに、日本語名のプロパティを使うことがあります。

名称を変換する設定を生真面目にしてもいいんですが、CSVの場合取り込んだデータを実際のモデルに変換する必要があることが多いので、余分なレイヤーを1枚挟むことが確定しています。

外部出力関係は日本語のプロパティとかなり相性が良い分野の一つと僕は考えています。
法廷帳票等の既定フォーマットの英語名考える労力も馬鹿らしいですし、出力物とコードの対比が一目瞭然です。
日本語のプロパティを持つモデルに値を入れることでむしろ明瞭になります。
Excel、CSV、PDF、このあたりは日本語名を直接使います。

ASP.NETのビューはAttribute使って解決すれば良いですし、ほとんどそんな出番は無いと思いますけどね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

見易さや保守性を考えて日本語を使うという話を時々聞きますが、言語仕様上許されているからと言って安易に使うと思わぬ副作用がありそう・・・という理由で、自分は日本語化反対派です。

自分が気がついた例としては ASP.NET MVC のモデルのプロパティ名、コントローラーのアクションメソッドの引数名があります。

十二分に検証すれば済むかもしれませんが、そもそもが余計な気苦労と不要な手間です。そこまでして日本語を使う理由は全くないと思っています。

詳しくは以下の記事を読んでください。

識別子名に日本語
http://surferonwww.info/BlogEngine/post/2015/03/17/japanese-name-for-identifiers-such-as-variables-methods-and-properties.aspx

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

勉強やサンプル作成で使う分にはアリだと思いますが、
なんとなく格好悪いし不具合の温床になりそうな気がするので私はしないですね。

変数名は基本的にはアルファベットの英語にしますが、
英語にすると逆にわかりづらい場合はアルファベットの日本語にします。
(ドメイン特有の言葉など)

int syukkin_jyokyo
int yukyu_nissu

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

趣味の範疇なら好きなようにすればいいと思いますが、実務においては「なし」という考えが一般的です。理由の一つは質問者さんが書かれていますね。
ほかの理由としては、チーム開発などで外国人が参加していると、たとえ日本語が話せるとしても漢字の読み方までは判らないとなれば難解なコードになってしまいますし、入力できないかもしれません。(日本語が苦手ならより難易度が増すでしょう)。今現在は外国人が参加していないとしても将来どうなるか判りませんよ。

ちなみに、変数名等に日本語が使えるかどうかで言えば、Javaは使えますしVisual C++も使えます(gccは知りません)。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

基本的に関数名や変数名、DBのテーブル名、カラム名は英字(+"_"くらいの記号)で書くように
しています。
仕事始めた当初、日本語の使えないUNIXを使っていた影響かもしれませんが、コメントや
画面表示の文字列以外で日本語を使った経験はありません。

そういえば、大昔に"桐"というDBのようなものを利用したとき、スクリプトの制御文が
日本語だったので、ここでは日本語変数を使ったかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

基本的にメリットはないと思っていますが、テストコードを書く際には日本語もありかなと思います。
新人プログラマが絶対に知っておきたい、日本語変数利用時の作法

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

「変数名に」というご質問ですが、変数名よりもむしろメソッド名・フィールド/プロパティ名の命名だとより日本語が使いやすいです。

どなたかご指摘なさっていますが日本語シンボルの使いにくさは入力時に漢字変換の必要なことです。しかも、入力中は仮名なのでIDEの補完も入りません。生産性は下がります。(ローマ字命名のほうがまだましとも言えます)

ところがメソッド名・フィールド/プロパティ名であれば、IDE上でドット打った途端に候補が並びます。そこから手を離してマウスで選んだり↑↓で選んだりするのかって話ですが、それが好都合な状況というのもあります。

たとえば非技術者に簡単なコードを書いてもらいたい状況があって(例えばテスターにテストケースを書いてもらう)、技術者側からはテストに必要なオブジェクトだけ渡す、テスターはとりあえずドットを打てばそのオブジェクトのやれること一覧が得られるので「〇〇なはず」のコードを書き足してテストケースにできる、とかそういうのです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

正直ナシですね >。<

使ったとしても頭は英字にするべきですね。
でも、2バイトにして文字化けした場合には動かなくなった経験があるので正直やめたいですね。

JUNITのメソッドに日本語を利用すると分かりやすいとか言われて真に受けた私が悪かったですがね

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Windows

    1681questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

  • Git

    1598questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • ASP.NET

    611questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

  • SourceTree

    172questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。