26

C# と Java では、クラス名、メソッド名、ローカル変数などにほぼすべての文字を使用できます。ASCII 以外の文字を使用して、貧弱なエディターや分析ツールの境界をテストし、一部の人にとって読みにくくするのは悪い習慣ですか?それとも、アメリカの傲慢さが唯一の反論なのだろうか?

4

11 に答える 11

35

私は英語に固執します。なぜなら、通常誰がそのコードに取り組んでいるかわからないという理由と、ビルド/テスト/バグ追跡の進行に使用されるサードパーティ ツールに問題がある可能性があるからです。ドイツ語以外のキーボードで äöüß と入力することは単なる PITA であり、ソフトウェア開発に携わる者は誰でも英語を話す必要があると私は信じていますが、それは英語を母国語としない私の傲慢さかもしれません。

あなたが「アメリカの傲慢」と呼ぶのは、プログラムが国際変数名を使用するかどうかではなく、プログラムが「Währung」と「Wahrung」を同じ単語と見なす場合です。

于 2008-09-14T20:38:19.530 に答える
14

誰がコードベースで作業しているかに完全に依存していると思います。

共通言語を共有する少数の開発者グループがあり、その言語を話さない人がコードで作業する必要がない場合は、好きな文字を使用してください。

さまざまな文化や言語の人々がコードで作業する必要がある場合は、世界中のほぼすべての人にとって共通の分母であるため、英語に固執するのがおそらく最善です.

于 2008-09-14T20:31:55.850 に答える
13

あなたのビジネスが英語を話さない人であり、ドメイン駆動設計に何かがあると思う場合、別の側面があります。開発者として、翻訳のオーバーヘッドなしでビジネスと同じドメイン言語を使用するにはどうすればよいでしょうか?

これは、英語とノルウェー語などの言語間の翻訳だけでなく、異なる単語間の翻訳も意味します。エンティティ クラスとサービスには、ビジネスとまったく同じ言葉を使用する必要があります。

ただ屈服して母国語を使うほうが簡単だとわかりました。コードで同じ単語を使用するようになったので、ドメインの専門家と簡単に会話できます。そして、ハンガリー語表記のないコードに慣れたのと同じように、しばらくするとそれに慣れます。

于 2008-09-16T06:25:21.250 に答える
9

私は開発チームで働いていましたが、命名規則 (さらに言えば、その他のコーディング規則) を喜んで一掃してくれました。信じられないかもしれませんが、コード内の ä と ö に対処しなければならないことが、私が辞職する要因でした。私はフィンランド人ですが、フィンランド語のキーボードでは中かっこや角かっこを書くのが面倒なので、US キーボード設定でコードを書くことを好みます (中かっこには右 alt と 7 と 0 を試してください)。

だから私はアスキー文字に固執すると言います。

于 2008-09-14T20:55:59.380 に答える
4

ギリシャ文字を英語の名前に置き換えるよりも読みやすいことがわかったため、非ASCII識別子を使用した例を次に示します。キーボードにθまたはφがありませんが(コピーアンドペーストに依存していました)。

ただし、これらはすべてローカル変数です。非ASCII識別子をパブリックインターフェイスから除外します。

于 2009-09-11T23:54:49.553 に答える
3

場合によります:

  • あなたのチームは、ASCII の使用を必要とする既存の標準に準拠していますか?
  • あなたのコードが再利用されたり、母国語を話さない人に読まれたりすることはありますか?
  • オンラインでヘルプを求める必要があり、コード サンプルをそのままコピー アンド ペーストできないというシナリオを想定していますか?
  • ツール スイート全体がコード エンコーディングをサポートしていると確信していますか?

上記のいずれかに「はい」と答えた場合は、ASCII のみを使用してください。そうでない場合は、自己責任で進めてください。

于 2008-09-14T20:34:56.183 に答える
2

他の前提条件を通過した場合、追加の(IMHOより重要な)1つがあります-記号を入力するのはどれほど難しいですか。

私の通常の en-us キーボードで文字 ç を入力する唯一の方法は、alt を押しながらテンキーで 0227 を押すか、コピーして貼り付けることです。

これは、すばやく入力する上で大きな障害になります。強制されない限り、このような些細なことでコーディングを遅くしたくはありません。国際キーボードはこれを軽減するかもしれませんが、国際キーボードなどを備えていないラップトップでコーディングする必要がある場合はどうなりますか?

于 2008-09-14T20:42:34.530 に答える
2

if問題の一部は、Java/C# 言語とそのライブラリが、や などの英語の単語に基づいていることtoString()です。個人的には、コードを読みながら英語以外の言語と英語を切り替えたくありません。

ただし、データベース、UI、ビジネス ロジック (メタファーを含む) が既に英語以外の言語である場合は、すべてのメソッド名と変数を英語に翻訳する必要はありません。

于 2008-09-14T20:34:48.620 に答える
1

開発チームの誰かがASCIIのみをサポートするSDKを使用している場合、またはコードをオープンソースにしたい場合は、多くの問題が発生する可能性があるため、ASCII文字に固執します。個人的には、言語を話せない人をプロジェクトに連れてくるつもりがなくても、事業を営んでいて、事業を営んでいる人は自分の事業を拡大してほしいと思うので、そうはしません。 、これはこの時代において国境を越えることを意味します。私の意見では、英語は領域の言語であり、変数に別の言語で名前を付けたとしても、プログラミングで非ASCII文字を使用する意味はほとんどありません。UTF8であるデータを処理している場合は、それを処理する言語に任せてください。私のiPhoneプログラム(電話とサーバーの間に大量のユーザーデータが入る)はUTF8を完全にサポートしていますが、ソースコードにUTF8が含まれていません。このような大きなワームの缶を開けても、ほとんどメリットがないようです。

于 2010-07-06T10:10:53.463 に答える
0

非 ASCII 文字を使用することには、別の危険があります。許可される文字は、メソッドCharacter.isJavaIdentifierStart(int)およびCharacter.isJavaIdentifierPart(int)に関して定義されており、Unicode に関して定義されています。ただし、使用される Unicode の正確なバージョンは、 java.lang.Characterのドキュメントで指定されているように、Java プラットフォームのバージョンによって異なります。

文字プロパティは Unicode バージョンごとにわずかに変化するため、あるバージョンの Java では有効であるが、次のバージョンでは無効な識別子を持つ可能性はあります (おそらくほとんどありません)。

于 2013-08-28T22:49:19.333 に答える