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

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

16
他のブロックはコードの複雑さを増しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 これは非常に単純化された例です。これは必ずしも言語固有の質問ではありません。関数を作成できる他の多くの方法、およびそれに加えられる変更を無視してください。。色はユニークなタイプです string CanLeaveWithoutUmbrella() { if(sky.Color.Equals(Color.Blue)) { return "Yes you can"; } else { return "No you can't"; } } 私が出会った多くの人々、ReSharper、およびこの男(コメントから、しばらくの間これを尋ねようとしていることを思い出した)は、コードをリファクタリングして、elseこれを残すブロックを削除することをお勧めします。 (私は大多数が言ったことを思い出せない、そうでなければ尋ねなかったかもしれない) string CanLeaveWithoutUmbrella() { if(sky.Color.Equals(Color.Blue)) { return "Yes you can"; } return "No you can't"; } 質問:elseブロックを含めないことで複雑さが増しますか? 私はelse、両方のブロックのコードが直接関係しているという事実を述べることにより、意図がより直接的に述べられているという印象を受けています。 さらに、特に後日コードを変更した後は、ロジックの微妙な間違いを防ぐことができます。 私の単純化された例のこのバリエーションを取り上げます(orこれは意図的に単純化された例であるため、演算子を無視します)。 bool CanLeaveWithoutUmbrella() { if(sky.Color != Color.Blue) { …

3
「状態」または「ステータス」?変数名に「状態」という単語を含めるべき場合と、変数名に「状態」という単語を含める必要がある場合 [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 コードとコードに関連する議論を読んで、「状態」と「状態」という言葉が同じ意味で使われているのをよく目にしますが、次の傾向があるようです。 変数が何かが特定の状態にあることを示す値を保持している場合、その変数の名前には「状態」という単語またはその省略形が含まれていることがよくあります。 ただし、関数の戻り値がそのような状態を示すのに役立つ場合、その値を「ステータスコード」と呼ぶ傾向があります。そして、その値が変数に格納されると、この変数は一般に「ステータス」または類似の名前が付けられます。 単独では大丈夫だと思いますが、前述の変数が実際にはまったく同じである場合、英語(または人間の言語全般)の複雑な複雑さを含む選択を行う必要があります。 2つのあいまいさを解消する際の一般的なコーディング標準または慣習は何ですか?それとも、この2つのうちの1つを常に避けるべきですか? このenglish.stackexchangeの質問も関連があると思います。


9
技術的な専門知識なしで開発プロジェクトをリードする方法
私は自分のキャリア全体にわたって実践的な開発者であり、コードを扱うことが大好きです。私は常に、特定の技術に関する専門知識がほとんどまたはまったくないチームリーダーにleadしているが、特定の実装を主張しています。 今、私は見ているガラスの向こう側にいることに気づきました。私はC#で実装されるファットクライアントの主な開発者ですが、私の専門はJava Webアプリケーションの構築です。どの言語でもデザインパターンとオブジェクト指向パラダイムを活用できることは知っていますが、コーディング標準、プロジェクトライフサイクルツール、リリース/配布手順に関しては私は迷っています。1〜2か月以内に基本を習得できることは間違いありませんが、時間とともにしか収集できない特定の経験があります。 どうすればよいですか?開発中に嫌っていたプロジェクトリーダーにならないようにするにはどうすればよいですか?

13
繰り返しコードを入力しやすくするための#defineの適切な使用ですか?
コーディングを簡素化するために#defineを使用して完全なコード行を定義することは、プログラミングの実践として良いか悪いかについて意見はありますか?たとえば、大量の単語を一緒に印刷する必要がある場合、イライラするタイピングを取得します << " " << coutステートメントの単語間にスペースを挿入します。私はただできる #define pSpace << " " << そしてタイプ cout << word1 pSpace word2 << endl; 私にとっては、これはコードの明快さを加減せず、入力を少し簡単にすることもありません。通常デバッグのために、タイピングがはるかに簡単になると思う他のケースがあります。 これについて何か考えはありますか? 編集:すべての素晴らしい答えをありがとう!この質問は、繰り返しタイピングを何度も行った後に私に届いたものですが、使用する他の混乱の少ないマクロがあるとは思いもしませんでした。すべての答えを読みたくない人にとって、最良の代替案は、IDEのマクロを使用して、繰り返し入力を減らすことです。

8
「編集者」インラインコメントは、改訂管理を使用するショップの標準ですか?
私たちのショップの上級開発者は、コードが変更されるたびに、責任のあるプログラマーが自分が何をしたかを示すインラインコメントを追加する必要があると主張しています。これらのコメントは通常次のようになります// YYYY-MM-DD <User ID> Added this IF block per bug 1234. リビジョン管理にはTFSを使用しますが、この種のコメントは、インラインノイズよりもチェックインメモとしてはるかに適切であると思われます。TFSでは、チェックインを1つ以上のバグに関連付けることもできます。古い、よく変更されるクラスファイルの一部は、コメントとLOCの比率が1:1に近いように見えます。私の目には、これらのコメントによりコードの読み取りとゼロ値の追加が難しくなります。 これは他のショップでの標準的な(または少なくとも一般的な)慣行ですか?

10
コーディング標準に関するプロジェクトリーダーとの不一致[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた3年前。 そのため、私は過去1年間、プロジェクトリーダーと共に新しいプロジェクトに取り組んでいます。 最初は、別のgitリポジトリにある独自のサブプロジェクトがありましたが、彼のコードとのやり取りはほとんどなかったので、コードのにおいは気にしませんでした。約6か月後、プロジェクトでより大きな役割を担っていたため、彼のコードの機能を維持および追加し始めました。 私は両方のサブプロジェクト(チームが成長しようとしています。彼はまだ私の上にいます)の主任開発者です。 中括弧、大文字の関数、二重引用符の使用法(二重および単一の隠しロジック付き)、===を使用しない、巨大な関数を持つ巨大なクラスはありません。一番下の行は、より良いかもしれません。 通知/警告をオフにするPHPのオプションへの依存。コードには、変数と配列キーの未使用の使用法がたくさんあります。変数はifの内部で定義されます。 上記の2つの問題に対する議論: 人々にコーディングスタイルを強制したくない。 より短い/より効率的なコードに適した言語機能とみなされます。 いくつかのルールが必要であり、コードは防御的である必要があると思います。PHPStormのデフォルト設定をフォーマットに使用し、中括弧とコミュニティで受け入れられている命名規則を使用することを申し出ました。 私は両方のプロジェクトを切り離せないので、同じガイドラインを使用するように調整したいと思います。 私は間違っていますか?個人的な好みを課しますか?

5
一部の技術が「標準」であるとはどういう意味ですか?
私はJava EE 7を学び始めましたが、この「標準」という用語に頻繁に出くわしますが、その意味がわかりません。 したがって、たとえば、この本からの引用は次のとおりです。 W3C標準に依存するSOAPおよびWS- *スタックとは異なり、RESTには標準がなく、設計原則を備えたアーキテクチャのスタイルにすぎません。RESTアプリケーションは、他の多くの標準に大きく依存しています:HTTP、URI、URL ... 私はそれが何を意味するのかについていくつかの考えを持っていますが、私にはわかりません。 私が出会った最も良い説明はここからの定義です。

6
呼び出し元の入力パラメーターの検証:コードの重複?
関数の入力パラメーターを検証するのに最適な場所はどこですか:呼び出し元または関数自体ですか? コーディングスタイルを改善したいので、この問題のベストプラクティスまたはいくつかのルールを見つけようとします。いつ、何がより良い。 私の以前のプロジェクトでは、関数内のすべての入力パラメーターをチェックして処理していました(たとえば、nullでない場合)。ここで、入力パラメーターの検証は呼び出し側の責任であることをいくつかの回答とPragmatic Programmerの本で読みました。 つまり、関数を呼び出す前に入力パラメーターを検証する必要があるということです。関数が呼び出されるすべての場所。そして、それは1つの質問を提起します:それは、関数が呼び出されるすべての場所でチェック条件の複製を作成しませんか? null条件だけに興味はありませんが、入力変数(sqrt関数への負の値、ゼロ除算、状態と郵便番号の間違った組み合わせ、またはその他)の検証に興味があります 入力条件をチェックする場所を決定する方法はありますか? 私はいくつかの議論について考えています: 無効な変数の処理が異なる場合、呼び出し側で検証するのが適切です(たとえば、sqrt()関数-場合によっては複素数を処理したいので、呼び出し側で条件を処理します) チェック条件がすべての呼び出し元で同じ場合、重複を避けるために関数内でチェックすることをお勧めします 呼び出し元の入力パラメーターの検証は、このパラメーターを使用して多くの関数を呼び出す前に1回だけ行われます。したがって、各関数のパラメーターの検証は効果的ではありません 適切なソリューションは、特定のケースに依存します この質問が他の質問と重複していないことを願っています。この問題を検索し、同様の質問を見つけましたが、彼らは正確にこのケースに言及していません。

7
CおよびC ++では、equivalency(==)が必要な場所で、assignment(=)の偶発的な使用を防ぐことができる方法は何ですか?
CおよびC ++では、重大なエラーを伴う次のコードを書くのは非常に簡単です。 char responseChar = getchar(); int confirmExit = 'y' == tolower(responseChar); if (confirmExit = 1) { exit(0); } エラーは、ifステートメントが次のようになっている必要があることです。 if (confirmExit == 1) コーディングされているように、confirmExit変数の割り当てが発生し、confirmExit式の結果として使用されるため、毎回終了します。 この種のエラーを防ぐ良い方法はありますか?

10
プログラマーを雇うという決定にとって、優れたコーディングスタイルはどれほど重要ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 学生としても、テストに合格した(していない)プログラマーのコードを確認するよう求められます(Androidでフィボナッチ数のリストを作成します)。 私はコーディングスタイルに非常に厳しいのですが、誰かが使用した「ブロック」スタイルについて読んだだけです(コメントを読んでください!)。 私の立場では、この種のスタイルを使用している人を雇わないことをお勧めします。このコードは、私の会社で使用されているコーディングスタイルとはまったく逆です。 コーディングスタイルとその欠如に対処する方法を探している間、私は1つのことについて興味があります。深刻なトラブル 会社で使用されているコーディングスタイルを採用していますか? お願い:これはコーディングスタイル全般についての議論ではなく、どちらの方がよいでしょう。誰かを雇うという決定のためのコーディングスタイルの重要性についてです! 詳しくは: 私は決定を下す人ではなく、コードに基づいて意見を述べるだけです。その男は、ソフトスキルをチェックするものすべての私たちの頭でインタビューを渡す必要があります。彼がこれに合格した場合、彼は私たちの小さなスキルテストに合格する必要があります。私はイエスかノーと言う立場にありません。レビューでコーディングスタイルがどれほど重要かを知りたいだけです...

2
Javaインターフェイスのすべてのメソッド宣言がパブリック抽象ではないため、これらの修飾子を使用してメソッドを宣言する必要がありますか?
Java 8以降、defaultメソッドがインターフェイスに導入されました。事実上、これはのすべてのメソッドがであるとinterfaceは限らないことを意味しますabstract。 Java 9(おそらく)以降、privateメソッドは許可されます。これは、のすべてのメソッドがであるとinterfaceは限らないことを意味しますpublic abstract。 「Javaインターフェイスのメソッドは、publicアクセス修飾子を付けて、または付けずに宣言する必要がありますか?」という質問 スタックオーバーフローで/programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-mで尋ねられました そこでは、ほとんどの回答はpublic abstract使用すべきではないと主張しました。なぜなら、のメソッドはinterface以外のものではないからですpublic abstract。もはやそうではありません。 インターフェースのこれらの新しい機能をpublic abstract考慮して、Javaインターフェースメソッドの宣言でキーワードを使用する必要がありますか? 私の特定の環境では、経験豊富なソフトウェアエンジニアがJavaを経験していない人がいて、Javaコードを時々読んでいます。public abstractキーワードを省略すると、インターフェースがこれらのキーワードを使用するためのさまざまなルールを持つようになった経緯に詳しくない人にとっては、さらなる混乱点が生じると思います。

3
コマンドラインアプリケーションで色を使用するのが適切な場合
現在、私はCでコマンドラインアプリケーションを呼び出していbtcwatchます。これには、-Cビットコインの現在の価格とで事前に保存された価格を比較する引数として受け取ることができるオプションがあります-S。このオプションの出力例は次のとおりです。 $ btcwatch -vC # -v = verbose buy: UP $ 32.000000 USD (100.000000 -> 132.000000) sell: UP $ 16.000000 USD (100.000000 -> 116.000000) ジレンマは、文字列UPまたはDOWN文字列に色を使用するかどうか(それぞれ緑と赤)です。私が知っているほとんどのコマンドラインアプリケーション(gitを除く)は、出力の色から離れています。以下のための私の願望ではbtcwatch(の使用を見て、非常に「標準」であることをgetopt色がこのような状況では場違いに見える場合のMakefile、など)を、私はわかりません。

3
誰かが私にC#のコーディング規約を説明できますか?
私は最近Unity3Dを使い始め、主にC#でスクリプトを書き始めました。私は通常Javaでプログラミングしているので、違いはそれほど大きくありませんが、正しいコースにいることを確認するためにクラッシュコースを参照しました。 ただし、C#に対する私の最大の好奇心は、メソッド名の最初の文字を大文字にすることです(たとえば、Java:getPrime()C#:GetPrime()aka:Pascal Case?)。これには正当な理由がありますか?私はクラッシュコースのページから、明らかに。たとえば、Javaが使用します。 注:言語には独自のコーディング規約があることは理解していますが(Pythonの方法はすべて小文字で、この質問にも当てはまります)、なぜ標準に正式化されないのか理解できませんでした。

7
チーム内のさまざまなプログラミングスタイルに対処する方法
小規模な開発チーム(開発者3人のみ)があり、最近、新しいチームメンバーを獲得しました。彼は賢いコーダーですが、彼のコーディングスタイルは私たちのものとはまったく異なります。既存のコードベースには、ほとんどが読み取り可能で、クリーンで保守可能なコードが含まれていますが、新しいチームメンバーは多くのファイルをすばやく変更し、,いハックとショートカットを導入し、あらゆる場所で定義を使用し、間違った場所に関数を追加します。 私の質問は、他の人が以前にそのような状況を経験したことがあるかどうか、そして誰かが彼と話す方法に関するヒントを持っているかどうかです。

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