C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 日本語の使用について


(過去ログ 125 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■74223 / inTopicNo.1)  日本語の使用について
  
□投稿者/ ainax (7回)-(2014/12/09(Tue) 11:28:06)

分類:[ASP.NET (C#)] 

コードに日本語を使用するということについて教えて頂ければと思いご質問させて頂きました。

今は1人でプログラムを組んでおりますが、いずれは他の人にメンテナンス等を
お願いすることも考えております。

現在は、 asp.net を c# で Entityframework を使いプログラムを作っており、
コードに日本語使おうかと考えております。(特に model のプロパティで日本語を使えたらと思っています。)

もちろんクラス名や関数名にも使いたいと考えおりますが、
話を聞くと、コードが分かりやすくなる代わりにコードを書きにくいといった話も聞きます。

実際に日本語でコードお書きになった方がいらっしゃいましたら、ご意見を頂けないでしょうか?
(実際に日本語を使った際に面倒だった点等、教えて頂けたら幸いです。)


引用返信 編集キー/
■74225 / inTopicNo.2)  Re[1]: 日本語の使用について
□投稿者/ WebSurfer (418回)-(2014/12/09(Tue) 11:53:12)
No74223 (ainax さん) に返信

「c#」「変数名」「日本語」などをキーワードにググるといろいろな意見が書かれた
記事が見つかると思います。

個人的には、日本語の使用は反対派です。日本語が混じると逆に読みにくいし、開発
チーム/保守チームに日本語が読めない人が入ったりするとどうしようもなくなるなど
の問題もあるので。

引用返信 編集キー/
■74231 / inTopicNo.3)  Re[2]: 日本語の使用について
□投稿者/ ぶなっぷ (19回)-(2014/12/09(Tue) 12:37:41)
2014/12/09(Tue) 12:37:57 編集(投稿者)
私の場合、
コードそのものについては一長一短があり賛成でも反対でもないのですが、
せっっかくのIntelliSenceの機能が一部死んでしまうので、その意味で反対
です。

たとえば、
  int Price;
なら、
  Pri
ぐらいまで打ち込めばIntelliSenceの選択肢にPriceがでてきます。

でも、
  int 価格:
なら、ローマ字変換だとして、
  kak
まで打ちこんでも日本語変換を確定していないのでIntelliSenceの選択肢は
でてきません。
  価
で変換を確定すれば選択肢がでますが、変換を確定しているのでIMEが変な
学習をしてしまいます(T_T)。

引用返信 編集キー/
■74232 / inTopicNo.4)  Re[1]: 日本語の使用について
□投稿者/ WebSurfer (419回)-(2014/12/09(Tue) 12:42:44)
No74223 (ainax さん) に返信

【追伸】

> 特に model のプロパティで日本語を使えたらと思っています。

ちょっとうっかりしてました。

ASP.NET MVC のモデルのプロパティ名ということですと、単純に見易さとか保守
性の話とは訳が違いますね。

モデルのプロパティ名は html ソースでは name 属性に使われます。name 属性に
を日本語を使って問題ないとは言えない ⇒ 止めた方が無難・・・と言う結論に
なると思います。

引用返信 編集キー/
■74233 / inTopicNo.5)  Re[2]: 日本語の使用について
□投稿者/ ainax (8回)-(2014/12/09(Tue) 14:14:11)
ぶなっぷさん、WebSurferさん レスありがとうございます。

ぶなっぷさんよりご指摘を受けたインテリセンスの問題については、たとえば、接頭語のみ英数字を使い
絞り込めるようにしようかと思っております。(絞り込んだ後は結局十字キーを使う予定なので、数が多いと面倒ですが・・・)

何より日本語の項目をプログラム上では英語にするということを今までやっているのですが、
英語への翻訳が面倒なうえ、翻訳後の英語の変数名で「これなんだっけ?」ってなことが多くそれが解消されることを期待しております。


WebSurferさんよりご指摘を受けた name 属性についてはまったく考えが及びませんでした。
そこで調べてみたのですが、 name 属性の属性値は CDATA (?) のため日本語使用が可能との記述もありました。
name 属性に関しては大丈夫・・・なのかな。

基本的に作成するプログラムの公開範囲は限定的なので、任意の指定したブラウザで動けば問題ないのですが、
name 属性やそれ以外でも致命的な問題がありそうでしょうか?

ちなみに、日本語でプロパティを作った後に、英語に戻す必要が出てきた場合、リファクターの機能を使って
ほぼ一括で名前の変更ができると思っているのですが、その認識で問題ないでしょうか?

# name 属性のご指摘にて、日本語プロパティを使った際のソースを見てみようした途中で思ったのですが、
# 日本語プロパティでモデルを作れば、わざわざ displayname 属性が必要なくなりますね。
# その場合は英数字の接頭語が付けられないけど、ほぼプロパティしか定義しないから問題ないのかな。どうだろう。。。


引用返信 編集キー/
■74234 / inTopicNo.6)  Re[3]: 日本語の使用について
□投稿者/ WebSurfer (420回)-(2014/12/09(Tue) 15:12:39)
No74233 (ainax さん) に返信

> name 属性やそれ以外でも致命的な問題がありそうでしょうか?

例えば、CountryList と Name がモデルで使っているプロパティ名の場合、以下の
ようなビューを書くと、

@Html.LabelFor(m => m.CountryList[i].Name)
@Html.EditorFor(m => m.CountryList[i].Name)
@Html.ValidationMessageFor(m => m.CountryList[i].Name)

それから生成される html ソースは以下のようになります。

<label for="CountryList_0__Name">国名</label>
<input class="text-box single-line" 
    data-val="true" data-val-length="国名 は 15 文字以内" 
    data-val-length-max="15" data-val-required="国名 は必須" 
    id="CountryList_0__Name" name="CountryList[0].Name" 
    type="text" value="Italy" />
<span class="field-validation-valid" 
    data-valmsg-for="CountryList[0].Name" 
    data-valmsg-replace="true"></span>

上記の CountryList と Name が日本語になった場合、jQuery ライブラリを使った
クライアント側での検証がうまく動くのか、ブラウザで form が submit されると
き name がどうなるか、サーバー側できちんとモデルバインディングされるか・・
・・が、パッと見た限りでは気がかりですね。

他にも予期しない副作用があるかもしれません。だから止めた方が無難と言ったの
です。

あと、モデルのプロパティ以外で思いつくのはアクションメソッドの引数名です。
これもモデルバインディングに関係します。

他にも思いついてない何かがあるかもしれません。

引用返信 編集キー/
■74235 / inTopicNo.7)  Re[4]: 日本語の使用について
□投稿者/ ainax (9回)-(2014/12/09(Tue) 16:12:39)
No74234 (WebSurfer さん) に返信

うーんなるほど、 jQuery 関係にも波及してしまうのはちょっと心配です。
jQuery は ( というか、 java 全般に ) 詳しくないので分からないところで、変則的なことは確かにしたくないですね。

モデルに日本語を適用するのは諦めた方がよさそうですね。 ( ちょっと残念ですが・・・ )

ただそうなると、 public なメソッドにも日本語を使ってしまうのはまずいですよね。
これも詳しくないのですが、 たしか ajax ってメソッド名を指定して通信を行いますよね?

明らかにビューに関係の無い部分では問題ないのでしょうが、日本語を使いたいのは
まさにビューに関係しているところに集中しているので、そこが使えないのでは
日本語を使う意味が・・・

とりあえず今は日本語については諦めたいと思います。

みなさんありがとうございました。

# たとえば皆さん「出荷日別得意先別商品別税込売上表」なんてのがあったらどうしてるんでしょう?



解決済み
引用返信 編集キー/
■74237 / inTopicNo.8)  Re[5]: 日本語の使用について
□投稿者/ WebSurfer (421回)-(2014/12/09(Tue) 16:57:48)
No74235 (ainax さん) に返信

> public なメソッドにも日本語を使ってしまうのはまずいですよね。
> これも詳しくないのですが、 たしか ajax ってメソッド名を指定して通信を行いますよね?

コントローラーのアクションメソッドのことですか?

それならメソッド名は日本語にしておいても、ActionNameAttribute で英語名を付ければ、
ブラウザから要求をかける際は英語名を使うことができるので問題ないと思います。以下
のようにすれば、Countries で呼べます。

[ActionName("Countries")]
public ActionResult 国リスト取得()
{
return View();
}

でも、やっぱり日本語を使うのは個人的にはお勧めではないです。例えば、Countries で
なら呼べますが Countries では 404 エラーです。違いが分かりますか?
解決済み
引用返信 編集キー/
■74238 / inTopicNo.9)  Re[6]: 日本語の使用について
□投稿者/ ainax (10回)-(2014/12/09(Tue) 18:11:53)
No74237 (WebSurfer さん) に返信

ActionName 属性は初めて知りました。確かにこれを使えればビューとコントローラを分離できそうなので問題ないですね。

となると、メソッド名を考えるのが面倒な時は、これを使ってしまうのもありなのかな?
ビュー側では、Func_A とでもしておき、コントローラでは処理内容に沿った日本語名を付けるといったことができそうですね。

問題点は提示されたように全角問題がありそうですが、これについてはエラーの内容でなんとか読み取れるんじゃないかなと
思っております。英語の場合でもスペルミス自体はあるので同じように調べられるかな・・・?

# うーん、どなたかバリバリ jQuery や Ajax 、 Knockout.js を使って日本語モデルの検証してくれている方っていないですかね。
# 自分でやれって?とりあえずは良い java の本教えて貰うところからですかね。
引用返信 編集キー/
■74239 / inTopicNo.10)  Re[7]: 日本語の使用について
□投稿者/ WebSurfer (422回)-(2014/12/09(Tue) 19:02:28)
No74238 (ainax さん) に返信

> ActionName 属性は初めて知りました。確かにこれを使えればビューとコントローラを分離できそうなので問題ないですね。

どういう意味か分かりませんが、[ActionName("Countries")] という属性をアクションメソッドに
付与したら、それに対応するビューの名前は必ず Countries.cshtml(または Countries.aspx) に
なります。

百聞は一見にしかずということで、ご自分の手を動かしたいろいろやってみることをお勧めします。

> 問題点は提示されたように全角問題がありそうですが、これについてはエラーの内容でなんとか読み取れるんじゃないかなと

その問題で 2 〜 3 日ハマっていた初心者の方がいました。初心者と言っても、仕事でやっていた
プロの人なんですけど。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -