タグ付けされた質問 「naming-standards」

12
ローカル変数(employeeCount、firstNameなど)の最初の単語に小文字を使用する理由は何ですか
すべての変数に適切な大文字小文字を使用しているため、他のプログラマーから多くの批判を受けています。たとえば、典型的なプログラマーはemployeeCount変数名に使用しEmployeeCountますが、私はを使用します。voidメソッド、returnメソッド、変数、プロパティ、定数など、すべてに適切な大文字小文字を使用します。Javascriptでもこの規則に従います。最後の1つは、人々のジミーを本当に擦ります。 この「非標準」の大文字と小文字の規則に従わない理由として挙げられる典型的な理由は、プロパティとvoidメソッドのために完全な適切なケースを予約する必要があるためです。値を返すローカル変数とメソッドには、のような小文字の最初の単語が必要int employeeCount = getEmployeeCount()です。 しかし、その理由はわかりません。 これに疑問を投げかけると、それが標準であるというarbitrary意的な答えを得るだけのようですです。答えが何であれ、それは通常、次のように常に要約されます。それに従うだけです。。任意の答えは決して私にとって十分ではありません。 Excel 97マクロをOffice IDEでプログラミングした初期の頃から、何かがローカル変数またはプロパティであるかどうかを判断するための大文字と小文字の規則は必要ありませんでした。これは、非常に直感的な命名規則を常に使用してきたためです。たとえば、GetNuggetCount()どこかに移動してすべてのナゲットのカウントを取得する方法を明確に提案しています。 SetNuggetCount(x)ナゲットのカウントに新しい値を割り当てることをお勧めします。 NuggetCountすべて単独で、単に値を保持しているプロパティまたはローカル変数を提案します。最後に、「ああ、それが問題だ。財産か変数か、それはどっち?」と言いたくなるかもしれません。それに対して、「本当に重要なのか?」と返信します。 tl; dr ;:変数または戻りメソッドの最初の単語に小文字を使用する客観的、論理的、非任意の理由は何ですか? 編集: MainMaの場合 このコードを回答の最初のコードサンプルに置き換えて、引数がどの程度維持されるかを確認します。 public void ComputeMetrics() { const int MaxSnapshots = 20; var Snapshots = this.LiveMeasurements.IsEnabled ? this.GrabSnapshots(MaxSnapshots, this.cache) : this.LoadFromMemoryStorage(); if (!Snapshots.Any()) { this.Report(LogMessage.SnapshotsAreEmpty); return; } var MeasurementCount = Measurements.Count(); this.Chart.Initialize((count + 1) * …

1
定数をすべて大文字で命名するための歴史は何ですか?
すべて大文字の定数の命名規則の背後にある歴史は何ですか? 私の直感では、Cプリプロセッサから始めました。人々は、プリプロセッサマクロをすべて大文字で命名するプラクティスを開発しました。私の信念は、この慣行はその後誤解され、非プリプロセッサ定数(enums、const変数)にも適用されるように野放しにされたというものです。 プリプロセッサマクロにすべて大文字の名前を付けると、本当に便利に思えます。一般的な定数の命名は、それほどではありません(マクロ名と衝突する場合は逆効果です)。 私は基地を離れていますか?定数を大文字にする慣行はCよりも前でしたか?

8
C#-フィールドのプレフィックスが推奨されないのはなぜですか?
昔、私たちはハンガリー語表記をしていました。これは今ではpasséと見なされており、ほとんどの場合はもう使用していませんが、m_メンバーフィールドを示すためにプレフィックスを使用することはまだあります。 私にとって、他の誰かのコードを読んでいると、私はこれを見る: count = 3; 私はそれcountがその関数のローカル変数であると仮定し、関数の他の場所で使用される何かをしています。私がこれを見たら: m_count = 3; オブジェクトの状態を更新していることにすぐに気付きます。 マイクロソフトのスタイルガイドラインでは、それが物事を行う間違った方法であると述べています。関数内で定義された一時変数とまったく同じ非公開フィールドに名前を付けることになっています。いいえm_、単純なアンダースコアですらありません。 はい、独自のコーディングスタイルを定義することはできますが、その後、さまざまな静的コード分析ツールに取り組み、物事のやり方が問題ないことを説得する必要があります。 マイクロソフトのスタイルに変更できてうれしいですが、なぜそうなっているのかを知りたいです。 変数が関数ローカルであるかメンバーであるかを判断できるのはなぜ悪いと考えられるのですか? PSこれは、C#のフィールドとメソッドの前にある「this」キーワードに関して現在考えられているベストプラクティスと非常に似ていますか?、しかし私は聞いてm_いないthis. PPSまた、Microsoftがパラメーター、ローカル変数、およびプライベートフィールドに同じ名前の命名規則を付けた理由を参照してください。

5
アップロードされた画像に名前を付けるためのベストプラクティスは何ですか?
ユーザーがプロフィール写真をアップロードできるフォームがWebアプリケーションにあるとします。 ファイルサイズ、サイズなどに関する要件はほとんどありませんが、ユーザーが画像をアップロードするときに、システム上でどのように名前を付ける必要がありますか?一貫性があり、一意である必要があると思います。 多分GUID? a5c627bedc3c44b7ae7c06a44fb3fcf8.jpg タイムスタンプ? 129899740140465735.jpg ハッシュ?例:md5 b1a9acaf295cf14ffbc5b6538294562c.jpg これを行うための標準的な方法または推奨される方法はありますか?

3
ソフトウェア開発における環境命名基準?
私のプロジェクトは現在、環境の命名の問題に悩まされています。異なる環境では、どの環境に名前を付けるべきか、名前が何を指定するかについて異なる仮定を持っているため、それらを議論するときに混乱を引き起こしています。私は少し研究をしましたが、そこに標準は見つかりませんでした。 用語には、「ローカル」、「サンド」、「開発」、「テスト」、「ユーザー」、「QA」、「ステージング」、および「製品」が含まれます(さらに、さまざまな人々が尋ねたものもあります) 意見だけを探しているわけではありませんが、「誰もが」持っているものがあれば、それを受け入れます-非公式であっても、何らかの権限によって高度な定義を見つけようとしています。 現在使用している環境は次のとおりです。 開発者のPCの環境 開発者が自己テストにコードを直接アップロードする共有環境 QA担当者が標準と機能をテストする共有環境 完成したQAチェック済みコードがプロジェクトリクエスターによって承認される共有環境 最終チェックとして、および展開の準備として最終環境をミラーリングする環境 コードが使用されている最終環境 私はそれらを何と呼ぶか知っていますが、これには何らかの標準がありますか?前もって感謝します。

3
標準型とユーザー定義型を構文的に区別する意味は何ですか?
ここでは特にC ++とBjarne Stroustrupの命名規則に言及しますが、原則として、人々はあちこちで他の言語にも多少似たルールを使用しているのを見てきました。 そのため、基本的な考え方は、コードを読み取りながら標準タイプとユーザー定義タイプを区別できるようにすることです。たとえば、Bjarne Stroustrupは、 タイプの最初の大文字(例:SquareおよびGraph) それを考慮して C ++言語と標準ライブラリは大文字を使用しません 上記の目標を達成できます。 しかし、なぜそうする必要があるのでしょうか?標準型とユーザー定義型を区別する目的は何ですか? 私はそのことに関するBjarne Stroustrupの推論を見つけることができませんでした。さらに、私自身は正反対に考えています。:DI知っています、「Stroustrupに異議を唱えるのは誰ですか?」しかし、listen、たとえば演算子のオーバーロードなどのC ++言語機能の束は、ユーザー定義型に標準型と同様のレベルの構文サポートを許可する目的に役立ちます。そして、これはすべて異なる命名規則に困惑しています... PS言うまでもなく、1つの単語でクラスに名前を付けるのに十分ではなく、アンダースコアで区切られた大文字で始まる単語はあまりにも異質に見えます。

2
Haskellのように、Scala OptionタイプがMaybeと呼ばれないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 Haskellのように、Scala OptionタイプがMaybeと呼ばれないのはなぜですか? 多分私にはもっと「意味論的」になりますが、Optionには私が知らない別の動作があるかもしれません。 ScalaのOptionがMaybeと呼ばれなかった特別な理由はありますか?

2
Pythonで値を返す関数に名前を付けるにはどうすればよいですか?
Pythonで関数の名前を選択することについて混乱しています。時々 、Pythonは組み込み関数ですが不可欠のような:print機能と文字列の方法find。時々、それらは次のようなものではありません:lenその名前はcalculate_len、たとえばなどの命令型でtypeはなく、find_typeです。 これprintは、使用しない値(つまりNone)を返し、何かをする(つまり、画面に文字列を表示する)ため、その名前は必須です。 ただしlen、使用する値を返し、何かを実行します(つまり、シーケンスまたはマッピングに存在するアイテムの数を計算します)。その名前は必須ではありません。一方、find文字列メソッド(as len)は、使用する値を返し、何かを実行します。その名前は必須です。 この質問をしたのは、Caesar暗号を使用して文字列を暗号化および復号化するスクリプトをレビューに追加したことです。レビューアは次のように言った: ただの直感:関数は何かをします。したがって、関数の適切な名前は必須rotate_letterですrotated_letter。代わりにを使用します。 rotated_letter数字で回転した文字を表す1文字の文字列を返します。私はrotated_letterそれが値を返すのでrandint、ランダムモジュールの関数のように使用しましたが、そうではありませんgenerate_randint。 したがって、この場合、使用する値を返す関数にどのように名前を付ける必要がありますか?名前を必須にするべきか、それとも名詞にするべきか。他の場合では、次のような、それを行う方法は明らかですブール関数のような、is_evenそしてis_palindrome我々は同じようにそれを作るはい/いいえ質問し、また機能だけで行うと戻り未使用の値(つまり、Noneなど)、printおよびlistメソッドsort。

4
メソッド名での接続詞の使用が悪い命名規則なのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私のチームでは、数人のソフトウェアアーキテクトと緊密に連携しています。彼らは私たちのプロジェクトのすべての設計決定を承認し、コードレビューなどを行います。 私たちのプロジェクトは、主にSymfony 2フレームワークを使用してPHPで実装されたバックエンド機能で構成されています。そのため、構文的には、コード、命名規則、およびプロジェクト構造は、Javaがどのように見えるかとほぼ同じに見えます(Symfony 2はそのような構造を推奨しています)。Java固有の規則もこのケースに適用されるため(可能であれば)、これについて言及しています。 最近、彼らは私が非常に奇妙だと思うことを提案しました:すべてのメソッドはgetEntityOrNull、例えば、setValueOrExceptionなどの名前に接続詞を持つべきです このような命名規則は私にとって非常に間違っているように感じますが、具体的な議論や、これに特に挑戦するオンラインの記事/ページを思い付くことができません。 私が思いついた唯一のものは: そのような情報は次のように、メソッドの注釈中に存在すべきです@returnか@throws メソッド名に接続詞(「and」、「or」など)を使用すると、通常、単一責任原則が適切に尊重されないことが示唆されます。 この命名規則に対する他の具体的な議論は何ですか?

2
アンダースコアで変数/メンバーを開始すると、コンパイラが困惑することがありますか?
私は高校以来、このような変数を定義することを教えられてきました。 int _a; または int __a; アンダースコアで始まる変数を使用して一時変数に名前を付けるコンパイラーを最終的に困惑させるので、悪い慣習を検討する必要があります。 私の知る限り、これが名前の最後にアンダースコアを移動することを好む理由です: int a_; ただし、アンダースコア開始変数を使用するコードがたくさん見られます。そして、そのコードはVisual Studio 2010とg ++ 4.xの両方でかなりうまくビルドされます。 だから私は疑問に思う:これは最近の問題ではないのですか?最新のコンパイラは命名規則について賢いですか?

2
数字で始まる文字列を表す適切な名前付け
Windowsのいくつかのカメラメタデータを見るFile Propertiesと、(さらにいくつかの)2つのProperties名前付き焦点距離と35mm焦点距離があります。 私はこれら2つを利用するソフトウェアを開発していますProperties。これまでのところ、最初のProperty名前FocalLengthを作成しましたが、他の名前の適切な名前を見つけることができません。 私が考えている_35MmFocalLengthかThirtyFiveMmFocalLength、私はより良い提案があるかもしれないと思います。 何か案は?

1
ブール値を返すメソッドは、質問またはアサーションの後に名前を付ける必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 多くの命名規則では、ブール値を返すメソッド(述語メソッドとも呼ばれる)は、質問の後に名前を付けることを推奨しています。私の質問は、メソッドがアサーションにちなんで名付けられるべきだという意味ではないのか? わずかな違いかもしれませんが、場合によっては別の名前になります。 質問:is_pixel_transparent(...) アサーション:pixel_is_transparent(...) 時々、これは違いがなく、フレージングは​​同じです: 質問:end_of_file(...) アサーション:end_of_file(...) さらに、ほとんどの場合、人々が「質問」と呼ぶものは実際にはアサーションです。 key_exists(...)->これは問題ではありません。これは主張です。 使用例:if(key_exists(...))... array_contains_element(...)->これは問題ではありません。これはアサーションです。使用例:if(array_contains_element(...))... だから、質問を言い換えると、質問をするとき、誰もが主張を意味するのですか?

1
非抽象クラスに明確な言葉はありますか?
私のプロジェクトには主に抽象クラスがあり、それらを使用/継承している他のクラスがいくつかあります。ドキュメンテーションを書いているとき、その一部がこれらの非抽象クラスの動作に関するものであると指定したいのですが、この単語をばかげて使用していることがわかりました。 それはクラスだと言えますが、抽象クラスもクラスです。だから私は非抽象クラスの明示的な単語/同義語があるのだろうかと思っていましたか? SEOの更新: 非抽象クラスの一般的な名前は何ですか?

1
スクリプト言語のネイティブ拡張-名前の衝突を回避し、他の人の名前空間を混乱させる
小さなスクリプト言語を開発し、最初のネイティブライブラリバインディングの作成を開始しました。これは、スクリプト言語のネイティブ拡張を書いているのは事実上初めてなので、概念的な問題に遭遇しました。 この言語から使用できるように、一般的なライブラリのグルーコードを書きたいと思います。私が書いたエンジンの設計により、これはstruct、仮想マシン、および関数ポインタ。 したがって、ネイティブバインディングは実際には単なるグローバル配列変数であり、ここで明らかに(できれば適切な)名前を付ける必要があります。Cでは、myscript_parse_source()またはのように、関数名の前にカスタムプレフィックスを付加することにより、自分の関数を「名前空間」に配置するのが慣用的myscript_run_bytecode()です。カスタム名は、理想的には、それが属しているライブラリの名前を表すものとします。ここで混乱が生じます。 のバインディングを書いているとしましょうlibcURL。この場合、次のように拡張ライブラリを呼び出すのが合理的curl_myscript_bindingです。 MYSCRIPT_API const MyScriptExtFunc curl_myscript_lib[10]; しかし、これはcurl名前空間と衝突します。(私はそれを呼び出すことさえ考えましたcurlmyscript_libが、残念ながらlibcURLはcurl_プレフィックスのみを使用していません-パブリックAPIにはCURLCODE_*やなどのマクロが含まれているCURLOPT_*ため、これにより名前空間も乱雑になると思います。) もう1つのオプションはmyscript_curl_lib、それをとして宣言することですが、バインディングを作成するのが私だけである場合にのみ有効です(自分の名前空間で何をしているのかわかっているため)。他のコントリビューターが独自のネイティブバインディングを追加し始めるとすぐに、myscript名前空間が乱雑になります。(私はいくつかの調査を行いましたが、たとえば、Perl cURLバインディングはこのパターンに従っているようです。それについて私が何を考えるべきかわかりません...) では、変数に名前を付けるにはどうすればよいでしょうか。従うべき一般的なガイドラインはありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.