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

17
明確にするためのコーディング標準:コードのすべての行をコメントしますか?
私は、命に関わるソフトウェアを製造する店で働いており、コードを読みやすくして潜在的に命を救うことを意図したコメントルールに対処しました。私の経験では、この要件はチェックリストにチェックを入れるのは頭の痛い雑用になり、理解可能なコードを書くことに集中し続けるのに役立ちません。また、ピアレビューアが、コードを理解しやすくする方法について、より有意義な会話をすることを妨げます。 また、コメントのない学生コードを評価し、それらを無視するためにマークダウンする必要がある理由を確認しました。 適切な名前を使用し、構造をシンプルにし、機能を短くし、モジュールに焦点を当てると、コメントを最小限に抑えることができるほど十分にコードを理解しやすくなります。 また、コメントは、コードが方法ではなく、コードが実行する理由を説明する必要があることも理解しています。 このすべてを考えると、このアイデアをキャプチャする良いコーディング標準を書くことさえ可能ですか?ピアレビューに関連するものの、「42行目にコメントするのを忘れた」以上の有用なメモを生成する、気まぐれなチェックリストアクティビティにならないもの。 このルールがチェックリストの行として扱われる場合に必要となる種類のコードの例: /* Display an error message */ function display_error_message( $error_message ) { /* Display the error message */ echo $error_message; /* Exit the application */ exit(); } /* -------------------------------------------------------------------- */ /* Check if the configuration file does not exist, then display an error */ /* …

2
Pythonファイルの命名規則?
PEP-8 https://www.python.org/dev/peps/pep-0008/#package-and-module-namesのこの部分を見ました これがモジュール/クラス/パッケージのファイル名を参照しているかどうかはわかりません。 それぞれの例が1つある場合、ファイル名はすべて小文字にし、必要に応じてアンダースコアを使用する必要がありますか?または、他の何か?

8
命名の問題:「ISomething」の名前を「Something」に変更する必要がありますか?[閉まっている]
Clean Codeの名前に関するボブおじさんの章では、主にハンガリーの表記法に関して、名前のエンコーディングを避けることを推奨しています。またI、インターフェイスからプレフィックスを削除することについて具体的に言及していますが、この例は示していません。 以下を想定してみましょう: インターフェイスの使用法は、主に依存性注入によりテスト容易性を実現することです 多くの場合、これは単一の実装者と単一のインターフェースを持つことにつながります それで、例えば、これらの2つは何と命名されるべきでしょうか?ParserそしてConcreteParser?ParserそしてParserImplementation? public interface IParser { string Parse(string content); string Parse(FileInfo path); } public class Parser : IParser { // Implementations } または、このような単一実装の場合、この提案を無視する必要がありますか?

1
Swiftプロトコルの命名規則[終了]
主にC#のバックグラウンドから来て、私は動作を定義する実装のないオブジェクトを記述するために「インターフェース」という用語を使用することに慣れています。C#ではIEnumerable、などのように、インターフェイス名の先頭に「I」を付けます。 もちろん、コンセプトは異なる言語で異なる名前を持っています。Swiftでは、同じ概念が「プロトコル」と呼ばれます。プロトコルを開発しているとき、プロトコルとそれを実装するクラスの名前がよく似ています。これまでのところ、C#で「I」を使用するのと同じ方法で、これらのオブジェクトに「プロトコル」という単語を追加していますEnumerableProtocol。 迅速なプロトコルの命名規則についての考えはありますか?


9
タスクを実行し、ステータスとしてブール値を返すメソッドの名前を付ける方法は?
方法がある場合 bool DoStuff() { try { // doing stuff... return true; } catch (SomeSpecificException ex) { return false; } } むしろ呼ばれるべきIsStuffDone()ですか? ユーザーは両方の名前を誤って解釈する可能性があります。名前がDoStuff()理由である場合、ブール値を返しますか?名前がIsStuffDone()メソッドの場合、メソッドがタスクを実行するのか、結果のみをチェックするのかは明確ではありません。 この場合の規則はありますか?または、これは欠陥と見なされるため、代替アプローチですか?たとえば、C#などの出力パラメーターを持つ言語では、ブールステータス変数を1つとしてメソッドに渡すことができ、メソッドの戻り値の型はになりますvoid。 編集:私の特定の問題では、メソッドはインターフェイス実装の一部であるため、例外処理を呼び出し元に直接委任することはできません。したがって、呼び出し側は、異なる実装のすべての例外を処理することはできません。これらの例外に精通していません。ただし、呼び出し元はStuffHasNotBeenDoneForSomeReasonException、npintiのanswerおよびcommentで提案されたようなカスタム例外を処理できます。

3
Readme.txtとREADME.txt
私はGithubでプロジェクトを分岐し、変更などを行いました。これにより、オープンソースプロジェクトでほとんどREADME.txtが表示され、編集したファイルはReadme.txtでした。これはある種の標準化ですか、それともそのままにしておくべきですか?

2
ソフトウェアがWin32名を使用するのはなぜですか?
ソフトウェア/ライブラリがWindowsプラットフォームをサポートしている場合、ほとんどの場合、ディレクトリと変数の名前はwin32。これは、C / C ++プロジェクトで最も一般的です。MinGWプロジェクトのターゲットトリプルでさえ使用しwin32ます。これには理由がありますか?WindowsやMicrosoft Windowsのような適切な名前を使用しないのはなぜですか?命名の選択に法的な障害がありますか? この質問はAPIに関するものではなく、使用中の命名規則に関するものです。ライブラリが他のオペレーティングシステムをサポートする場合、多くの場合、のような固有の名前linux、freebsdまたは必要な特別なサポートを使用します。しかし、Windowsの場合、それは多くの場合省略されてwin32います。

2
XMLHttpRequestが命名規則に従っていないように見えるのはなぜですか?
私は最近JavaScriptでXMLHttpRequestオブジェクトを操作してきましたが、この名前の大文字と小文字が意味をなさないことに気づかずにはいられませんでした。「XML」はすべて大文字ですが、「Http」は大文字ではないのはなぜですか?両方とも頭字語です! 名前が次のいずれかであると、より意味があります。 XmlHttpRequest (PascalCase、JavaScriptのクラス名のベストプラクティス) xmlHttpRequest (camelCase、クラス用ではないが一般的) XMLHTTPRequest (頭字語のキャップ、プログラミングではめったに使用されない?) 何らかの理由があるに違いないと確信しているし、誰もこれを疑問視しなかったからといって、今ではそれが石になっているとは思わない。私が知らない別の命名規則はありますか?

2
DBテーブル名は単数形であるがRESTfulリソースは複数形である必要があると慣習で規定されているのはなぜですか?
少なくともSQLでは、データベーステーブル名は単数形である必要があるという、かなり確立された規則です。この質問と議論をSELECT * FROM user;参照してください。 また、RESTful APIリソース名は複数にする必要があるという確立された規則です。GET /users/123そして、これをPOST /users見てください。 最も単純なデータベースベースのAPIでは、URLのリソースの名前はテーブルになり、URLのデータ要素と要求/応答本文はDBの列に直接マップされます。概念的には、この理論的なAPIを介してデータを操作することと、SQLを介して直接操作することとの間に違いはありません。そして、そのため、間の命名規則の違いuserとはusers私には意味がありません。 概念的に、REST APIとSQLが同じことをしているときに、複数形の違いをどのように正当化できますか?

6
C#のPascalケーシングメソッド名の背後にある哲学/理由は何ですか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 私はちょうどC#を学び始めています。Java、C ++、Objective-Cのバックグラウンドから来ると、C#のPascalのケースはメソッド名がかなりユニークで、最初は慣れるのが少し難しいと思います。この背後にある理由と哲学は何ですか? 私はそれがC#プロパティのためだと推測しています。メソッド名がインスタンス変数とまったく同じになるObjective-Cとは異なり、C#の場合はそうではありません。プロパティを使用する目標の1つは(プロパティをサポートするほとんどの言語の場合と同様)、プロパティを変数やメソッドとまったく区別できないものにすることです。したがって、C#で「int x」を使用すると、対応するプロパティがXになります。プロパティとメソッドを区別できないようにするため、推測するすべてのメソッド名も大文字で始まることが予想されます。(これは、これまでC#について知っていたことに基づいた私の仮説であり、まだ学習中です)。私はこの好奇心の強いガイドラインがどのように生まれたのか知りたいと思っています( (編集:Pascal-casingとは、PascalCaseを意味します(基本的にはcamelCaseですが、大文字で始まります。ほとんどの言語では、メソッド名は通常小文字で始まります)。

3
「プラス」と「マイナス」は適切なメソッド名ですか?
Java SE 8には、時刻、インスタントLocalDate、LocalTimeおよびLocalDateTimeクラスを紹介するクラスを導入するための新しいメカニズムが付属しています。そのようなインスタントを操作するために、一連のメソッドが提供されます:LocalDate.plusDays(...)などLocalDate.minusDays(...)。 メソッドは、実際には実行される操作であり、アクションを実行するものであるため、良いプラクティスは、メソッドの目的を説明する動詞にちなんでメソッドに名前を付けることだと常に考えてきました。あなたのようなクラスを検討している場合だけに言及し、StringBuilder例えば、メソッドの名前はappend、insert、delete... これが、私にとって、の代わりにメソッドplusDaysを命名するように聞こえない理由です。非常に迷惑なのは私だけですか?どう思いますか?sumDaysminusDayssubtractDays 私が考えることができる唯一の理由は、日付が不変オブジェクトであるためplusDays、元のオブジェクトに日を追加するのではなく、新しいプロパティで新しい日を作成することですが、それは非常に微妙です。

2
静的mainメソッドを持つJavaクラスの命名規則?
コンストラクターではなく、なぜJavaおよびC#の静的メインメソッドに対するgnatの答えを読んだ後ですか?彼の答えは、静的なmainメソッドを持つJavaクラスの目的は、define a program entry pointそれ自体がプログラムそのものではないことを意味すると考えています。 これを行うためのより良い方法があるかもしれませんが、私は通常、次のような単純なことを行う静的なmainメソッドを持つクラスを持っています: public class MenuLauncher { public static void main(String[] args) { Menu menu = new Menu(); menu.run(); } } 上記のコードは、静的メインを持つクラスが、独立した非静的オブジェクト内に含まれるプログラムロジックを起動または起動する以上のことをしないOOPのベストプラクティスでしょうか。結局、mainは静的なので、MenuLauncherクラス自体は非常に制限されませんか?mainは開始点であるため、エントリポイントになること以外のクラスの目的はありません。 mainメソッドを含み、プログラムのエントリポイントになる目的を果たすクラスに一般的に使用されるJava命名規則はありますか?

1
あなたのコードで複数形タンタムを扱うための標準は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 複数形と単数形が同じ変数を使用する場合、どのように名前を付けますか?そこに標準はありますか? 例えば: Series[] series // Plural Series series // Singular 詳細: 具体的に言うと、シリーズのコレクションは(JSONフォーマットのため)シリーズと呼ばれる必要がありますSeries s。コレクションに追加される単数形のシリーズに名前を付けることを検討してください。 次のように: List<Series> series = new List<Series>(); Series s; while (someBool) { s = new Series(); s.Name = "Name"; while (anotherBool) { s.AddValue(someValue); } series.Add(s); }

7
「SomeClass」や「SomeClassInfo」など、「Info」という接尾辞を持つクラスの命名の背後にある考え方は何ですか?
私は物理デバイスを扱うプロジェクトに取り組んでおり、このプロジェクトのいくつかのクラスに適切な名前を付ける方法として混乱しています。 実際のデバイス(センサーとレシーバー)を考慮することと、ソフトウェアでそれらを表現することは別のことであるため、「Info」という接尾辞の名前パターンでクラスに名前を付けることを考えています。 たとえば、a Sensorは実際のセンサーを表すクラスですが(実際に動作するデバイスに実際に接続されている場合)、SensorInfoそのようなセンサーの特性のみを表すために使用されます。たとえば、ファイルの保存時に、をシリアル化するのではSensorInfoなく、ファイルヘッダーにをシリアル化しますSensor。これは意味がありません。 しかし、今私は混乱しています。なぜなら、オブジェクトのライフサイクルには、どちらを使用するべきか、どのように別のものを取得するか、または両方のバリアントを実際に1つのクラスのみに折りたたむかどうかを判断できない中間点があるためです。 また、あまりにも一般的なEmployeeクラスの例は、明らかに実在の人物の表現にすぎませんがEmployeeInfo、私の知る限り、クラスに名前を付けることを提案する人はいません。 私が使用している言語は.NETです。この命名パターンは、これらのクラスの例として、フレームワーク全体で共通しているようです。 DirectoryおよびDirectoryInfoクラス; FileおよびFileInfoクラス; ConnectionInfoクラス(対応するConnectionクラスなし); DeviceInfoクラス(対応するDeviceクラスなし); だから私の質問は次のとおりです。この命名パターンを使用することについて共通の根拠がありますか?名前のペア(ThingとThingInfo)を使用するのが理にかなっている場合ThingInfoや、Thingクラスが存在しない、またはクラスが存在しない他の場合がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.