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

コーディング標準またはコーディング規約は、ソフトウェアプロジェクトでのコード生成のプロセスを管理するために設計された一連のルールまたはガイドラインです。それらは通常、業界のベストプラクティスまたは一般に受け入れられている規則に基づいています。これには、命名規則、スタイル、禁止されている機能などが含まれます。

4
自己参照メソッドチェーンに実際の欠点はありますか?
私は最近、特定のプロジェクトの特定のクラスにチェーンのメソッドを実装して、コードの可読性を向上させることを提案しました。「便利なだけでなく、セマンティクスのために流fluentなインターフェイスを実装すべきではない」という回答を得て、提案を打ち切りました。私は、流interfaceなインターフェースを提案しているのではなく、読みやすさとコーディングの快適さを改善するためにメソッド自体を連鎖させる(両方とも混同される可能性があります)と回答しました。 とにかく、これは、おそらく何も返さないはずのメソッド(セッターなど)で常に「this」を返すことで、悪い習慣を負わされる可能性があると考えさせられました。 私の質問は、前の慣習を適用することを悪い習慣や虐待とみなすことができるのか、なぜなのか、ということです。パフォーマンス上の欠点はないと思いますか?

16
2点で長方形を定義する背後にある考え方は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 これが意味をなさないということではありませんが、99%の時間でうまくいきません。 多くの場合、2Dグラフィックスでは、長方形はポイントのペアとして初期化、保存、および操作されます。特定の言語ではなく、 class Rect: p1, p2: point 次のように、長方形を2つのx値と2つのy値として定義する方が理にかなっています。 class Rect xleft, xright: int ytop, ybottom: int 2つのポイントで、ソースコードのどこかでトップのy値を使用したい場合は、rect.p1.y(hmmm、stop and think、p1またはp2)を言う必要がありますが、 4つの値をプレーンデータメンバーとして、明確かつ直接的なものにします。rect.ytop(思考は不要です!)2つのポイントを使用することは、垂直を扱う際に水平を絡ませる必要があることを意味します。独立した要素間には無関係な関係があります。 この2点のアイデアはどのようにして生まれたのですか?裸のx座標とy座標よりも利点がありますか? 追記:この質問は、ウィンドウマネージャーやGUIツールキットなどのXYに配置された四角形のコンテキストに関するものであり、描画および描画アプリの任意の図形のコンテキストではありません。

5
コーディング標準文書の作成
私は、主な仕事がSCADAとPLCであり、他の制御システムのスタッフと一緒に、制御システムの会社で働いています。 ソフトウェア開発は、社内のプロジェクト管理および評価システムを作成する決定が下されるまで、あちこちで少しだけ離れて、会社が実際に行うものではありません。 このプロジェクトは、もともとソフトウェアの人としてここに来た人々によって引き継がれ、私たちはほとんどジュニアです。 プロジェクトは小さなものから始まったので、デザイン、データベースなどのようなものだけをドキュメント化しましたが、コーディング形式/規約については実際には合意しませんでした。 StyleCopを使用してコードを適切に文書化したことを確認しましたが、適切な標準を継続し、今後大きな開発作業が行われる場合は誰でも作業できるように、コーディング規約/プラクティスの公式文書が必要だと感じています良いベースプレートがあります。 そこに問題があります、コーディング規約と標準のための文書をどのように作成するのか分かりません、私が考えることができるのは良いプラクティスと悪いプラクティスの例です(たとえば、変数に名前を付けるときのキャメルケース、ハンガリー語の表記を避けるなど)有能なプログラマー(明らかに)ですが、この種のチャーターはありません。 それにポイントを置くために、私の質問は次のとおりです。良いコーディング標準文書の重要な側面と内容は何ですか?

5
コーディング統合は継続的インテグレーションサーバーによって実施されるべきですか?
コーディング標準/スタイルは、静的分析ツール(例:PMD、StyleCop / FxCop)を実行し、標準に従っていない場合はビルドに失敗する継続的統合サーバーによって実施されるべきですか?ビルドを失敗させるためにどの種類のルールを使用すべきではありませんか?

4
1文字の変数の使用が推奨されていますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 Javaでは1文字の変数の使用が推奨されていますか?コードスニペットまたはチュートリアルでは、よく見かけます。コードを読むのが比較的難しくなり、他のプログラミング言語で使用されているのを見たことがないので、それらの使用が推奨されるとは想像できません!

8
コーディング標準はもう必要ですか?
コーディング標準が非常に役立つことが証明されていることは知っています。ただし、プログラマが好む標準にフォーマットする多くの異なるツールとIDEがあります。コードがきちんと/コメントされている限り(スパゲッティの混乱ではない)、コーディング標準の必要性は見当たりません。 コーディング標準の開発に関する議論はありますか(まだありませんが、作成を検討していました)。

7
C ++に一般的な大文字表記規則はありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私はPythonとJavaで多くの仕事をしており、両方の言語には識別子で大文字を使用する方法に関するかなり一般的な(普遍的ではない)規則があります:PascalCaseクラス名とALL_CAPS「グローバル」定数の両方で使用しますが、他の識別子には多くのJavaコードが使用するのmixedCaseに対し、多くのPythonコードはを使用しunderscore_delimitersます。特定の大文字と小文字を強制する言語やライブラリはないことは知っていますが、使用している言語の標準的な規則に従うと、コードがはるかに読みやすくなることがわかりました。 今、私はC ++でプロジェクトを開始していますが、同じアイデアを適用したいと思います。大文字と小文字の区別について知っておくべき最も一般的な規則はありますか?

10
モジュールの変更/追加中に別の開発者コードを再フォーマットしても大丈夫ですか?
グループ環境で開発し、一部のコードベースで機能を追加または変更しているとき。以前の開発者のコ​​ードを再フォーマットして現在のコーディング標準に合わせるのは不快または失礼と見なされますか?標準が変更され、おそらく変更され続けることを理解していますが、誰かがコードフォーマットを変更して変更した場合、あなたは気分を害するでしょうか? 明確にするために、タブやスペースなどをいじるだけで、ロジックの変更については話していません。 編集:コーディング標準のためにこれを行うだけでなく、コードを読んで最新にするので、重要なアプリケーションの変更を開始する前に実装されたロジックを完全に理解できます。

8
命名規則のガイドラインは注意する価値がありますか?
.Net規則を使用して変数に名前を付けます。 変数とフィールド用のcamelCase(クラスのプライベートフィールドには_camelCaseを使用する傾向があります) メソッド、プロパティ、クラスのPascalCase 私が逸脱する唯一の場所は、実際にJava SCREAMING_CAPSスタイルを好む定数と列挙です。 私の会社のコードベースには、VB6とVBScriptの疑似ハンガリー表記スタイルが散りばめられています。 文字列の場合はsまたはstr Intsの場合はiまたはint dは10進数(または場合によっては2倍) oまたはあらゆる種類のオブジェクトのobj そのコードスタイルが他の人のコードで使用されているのを見たときはいつでも(レガシーフィールドだけでなく、グリーンフィールドコードでも)私はうんざりし、自分でそのスタイルを使用することを拒否します。過去に.Net命名規則を標準化してきましたが、無視されました。ハンガリー語表記で書いている人はそうし続けています。私が好きではない人は自分のスタイルを使い続けています。標準化を行うと(私はそれを押し続けますが、誰も気にしないようです)、それはハンガリーの表記法であり、推奨される方法ではなく、そのようなコードを書くことを余儀なくされることを少し恐れています。 これに関して、モグラ塚から山を作っていますか?コードに説明的な名前ではなく冗長な識別子が散らばっているかどうか気にせず、独自の方法を使い続けて標準になるようにプッシュする必要がありますか?

5
グローバル変数を使用したい場合、上司に言うこと
現在、私はインターンシップに4か月あります。コードをレビューするとき、上司は特定のオブジェクトを1つのアセンブリ内のいくつかの別個のクラスの多くのメソッドに対してローカルに保持していたことを嫌いました。彼は、私が毎回新しいオブジェクトを作成することを嫌い、代わりにどこからでもアクセスできる単一のオブジェクトを作成するように言った。したがって、静的クラス内で静的オブジェクトとして作成し、ここから参照するだけで使用する必要がありました。 私はプロとして4か月しかプログラミングしていないので、これにどう対処しますか?

6
垂直方向の配置:賛成か反対ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 たとえば、垂直に整列されていない: Name: Hamt Version: 0.1.0 Cabal-Version: >= 1.2 License: BSD3 Author: Jason Baker または垂直方向に整列: Name: Hamt Version: 0.1.0 Cabal-Version: >= 1.2 License: BSD3 Author: Jason Baker どちらが好きですか、それはなぜですか?

2
エラー処理の実装方法[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は数年間プロレベルでプログラミングを行ってきましたが、それでもエラー処理を完全に理解していません。私のアプリケーションは正常に動作しますが、エラー処理は専門的なレベルでは実装されておらず、多くの手法の組み合わせです。 エラー処理の背後に構造はありません。プロレベルでどのように実装されているかを学び、理解したいと思います。これは、私が知識を欠いている分野の1つです。 ロジックフローでチェックするために、いつ例外を使用し、成功ステータスを返す必要がありますか?例外を組み合わせてステータスを返すことはできますか? 主にC#でコーディングします。


3
C ++での非オプションポインターと非const参照
では他のC ++の機能、リファレンス引数のGoogleのC ++スタイルガイドでは、私は非const参照は使用してはならないことをお読みください。 参照によって渡されるすべてのパラメーターには、constというラベルを付ける必要があります。 引数として参照を使用する関数呼び出しを見ることは、Cプログラマーにとって完全に混乱することは明らかですが、CとC ++は今では異なる言語です。出力パラメーターが必要な場合、必要な出力パラメーターへのポインターを使用すると、関数本体全体がスキップされる可能性があり、関数の実装がより複雑になります(関数の循環的な複雑さと深さが正式に増加します)。 C ++コードをできるだけ簡単に理解/保守できるようにしたいので、コーディングスタイルガイドを読むことに興味があります。しかし、チームのベストプラクティスを適応させるには、スタイルガイド要素の背後にある理論的根拠を理解することが重要な要素だと思います。 非const参照は本当に悪いですか?それらを禁止するのはGoogle固有のものだけですか、それとも一般に受け入れられているルールですか?出力パラメーターをポインターとして実装するための余分な労力を正当化するものは何ですか?

6
Javascriptの命名規則
私はJavaのバックグラウンドで、JavaScriptを初めて使用しています。次の例のように、単一文字のパラメーター名を使用する多くのJavaScriptメソッドに気付きました。 doSomething(a,b,c) 好きではありませんが、仲間のJavaScript開発者が、これはファイルサイズを小さくするために行われ、JavaScriptファイルをブラウザーに転送する必要があることに気付きました。 それから私は別の開発者と話をしていることに気づきました。Firefoxがページをより速くロードするために変数名を切り捨てる方法を教えてくれました。これはWebブラウザーの標準的なプラクティスですか? JavaScriptでプログラミングする際に従うべきベストプラクティスの命名変換は何ですか?識別子の長さは重要ですか?その場合、どの程度ですか?

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