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

コーディングスタイルは、ソースコードの読みやすさと理解に役立つ一連のガイドラインです。

12
Javascriptからセミコロンを削除/削除する最近のシフトはなぜですか?
Javascriptからセミコロンを省略することは最近流行しているようです。数年前、Javascriptではセミコロンはオプションであり、投稿の要点は不要であるため気にしないほうがよいと強調したブログ投稿がありました。広く引用されているこの投稿では、それらを使用しないという説得力のある理由は示されていません。ただ、それらを除外しても副作用はほとんどありません。 GitHubでさえ、セミコロンなしの時流に飛びついて、内部で開発されたコードを省略する必要があり、メンテナーによるzepto.jsプロジェクトへの最近のコミットにより、すべてのセミコロンがコードベースから削除されました。彼の主な理由は次のとおりです。 彼のチームの好みの問題です。 タイピングが少ない それらを除外する他の正当な理由はありますか? 率直に言って、私はそれらを省略する理由は見当たらず、それらを消去するためにコードに戻る理由は確かにありません。また、(年の)推奨されるプラクティスに反します。これは、「カーゴカルト」の議論を実際に購入するものではありません。では、なぜ最近のセミコロン嫌いなのでしょうか?迫り来る不足はありますか?または、これは最新のJavascriptの流行ですか?

6
単一引用符と二重引用符[閉じた]
Javaのバックグラウンドから来てPythonを書く仕事を始めたばかりで、他の開発者''は二重引用符()ではなく一重引用符("")を使用して文字列を引用する傾向があることに気付きました。例えば: line1 = 'This is how strings typically look.' line2 = "Not like this." これには、個人的な好み以外に特別な理由がありますか?これは文字列を引用する適切な方法ですか?特に、私が知りたいのは、このスタイルのコーディングを推進する何らかの標準または受け入れられたベストプラクティスがあるかどうかです。

30
あなたが従わなければならなかった最悪のコーディング標準?[閉まっている]
次のようなコーディング標準に取り組む必要がありましたか? 生産性が大幅に低下しましたか? 元々は正当な理由で含まれていましたが、元の懸念が無関係になってからずっと保持されていましたか? リストに載っていたので、それらをすべて覚えることは不可能でしたか? 著者は、優れたコーディングの実践を奨励するのではなく、単に彼らのマークを残そうとしていると思わせましたか? なぜ含まれているのか分かりませんか? もしそうなら、あなたの最も好きではないルールとその理由は何ですか? ここにいくつかの例

10
可能な場合、除算を乗算に置き換えるのは良い習慣ですか?
条件チェックなどの除算が必要なときはいつでも、除算の式を乗算にリファクタリングしたいと思います。たとえば: 元のバージョン: if(newValue / oldValue >= SOME_CONSTANT) 新しいバージョン: if(newValue >= oldValue * SOME_CONSTANT) 回避できると思うから: ゼロ除算 オーバーフローoldValueが非常に小さい場合 そうですか?この習慣に問題はありますか?

10
「if elif else」ステートメントが事実上テーブル形式ではないのはなぜですか?
if i>0 : return sqrt(i) elif i==0: return 0 else : return 1j * sqrt(-i) VS if i>0: return sqrt(i) elif i==0: return 0 else: return 1j * sqrt(-i) 上記の例を考えると、コードベースに最初のスタイルがほとんど見られない理由がわかりません。私には、コードを表形式に変換して、必要なものを明確に示します。最初の列は事実上無視できます。2列目は状態を示し、3列目は必要な出力を示します。少なくとも私には、簡単で読みやすいようです。それでも、この単純なケース/スイッチの状況は、拡張されたタブインデント形式で常に表示されます。何故ですか?人々は2番目の形式をより読みやすいと感じていますか? これが問題になる唯一のケースは、コードが変更されて長くなる場合です。その場合、コードを長いインデントされた形式にリファクタリングすることは完全に合理的だと思います。いつもそれがいつも行われていた方法だからという理由だけで、誰もが2番目の方法でそれをしますか?悪魔の擁護者である私は、if / elseステートメントの複雑さに応じて2つの異なる形式を見つけて混乱する別の理由があると思いますか?どんな洞察もいただければ幸いです。

10
Javaで文字列を使用しないでください?[閉まっている]
コードにセマンティクスを持たせないためにJavaで文字列を使用することを思いとどまらせるブログエントリを見つけました。代わりにシンラッパークラスを使用することをお勧めします。これは、このエントリが問題を説明するために提供する前後の例です。 public void bookTicket( String name, String firstName, String film, int count, String cinema); public void bookTicket( Name name, FirstName firstName, Film film, Count count, Cinema cinema); プログラミングブログを読んだ私の経験では、90%はナンセンスであるという結論に達しましたが、これが有効なポイントかどうか疑問に思っています。どういうわけか私には正しくないように感じますが、プログラミングのスタイルで何がおかしいのかを正確に特定することはできませんでした。

15
メソッドの引数に名前を付ける変数を定義するのは良い習慣ですか?
読みやすくするために、次のコードのような関数を呼び出すときに一時変数を定義することがよくあります var preventUndo = true; doSomething(preventUndo); これに対するこれの短いバージョンは、 doSomething(true); しかし、コードに戻ったとき、私はしばしば何をtrue指しているのだろうと思います。この種の難問に慣習はありますか?

13
リポジトリでコードフォーマッタを定期的に実行するのは悪い考えでしょうか?
私は、コードをチェックアウトし、その上でコードフォーマッタを実行し、変更があった場合は変更をコミットしてプッシュするcronジョブを作成することを考えています。 オートフォーマッタを使用するほとんどのプロジェクトは、それらをgitフックに入れますが、数時間ごとに自動的に行うと、各開発者がgitフックをインストールする負担がなくなります。 私はまだ誰もがクリーンで適切にフォーマットされたコードを書くことをお勧めします。おそらく、書いたコードが再フォーマットされたときにシステムが開発者に自動的にpingできるようにして、彼らは将来何をすべきかを知っています。

5
CSSやSVGで大量のマジックナンバーを使用できるのはなぜですか?
しばしば、私のようなホットネットワークの質問リスト上の質問を参照、この基本的には「私はCSSでこの任意の形状を描くんか」尋ねます。常に答えは、要求された形状を形成する一見ランダムにハードコードされた値の束を持つCSSまたはSVGデータのブロックです。 これを見ると、「うん!なんとcodeいコードブロックです。私のプロジェクトでこの種のものを見ないことを願っています。」しかし、私はこれらのタイプのQ&Aを非常に頻繁に、多数の賛成票で見ているので、明らかにコミュニティはそれらが悪いとは思わない。 しかし、なぜこれが受け入れられるのでしょうか?私のバックエンドの経験から来ると、これは私には意味がありません。では、なぜCSS / SVGで問題ないのでしょうか?

4
コードの明瞭性が向上する場合、その時点で効果のない関数を呼び出す方が良いでしょうか?
プログラム(iOSアプリ)には3つのビューがあります。一度にアクティブになるのはそのうちの1つだけなので、そのうち2つに対して可視性をオフに設定し、ユーザーがボタンを押したときに可視性を切り替えます。ビューは可視として初期化されるため、メインビューが表示される前にコードで可視性をオフに設定します。 できます [view1 setAlpha:0.0f]; [view2 setAlpha:0.0f]; 2つのビューについてですが、現在は3番目のビュー(アプリの起動時に表示されるはずのビュー)には対応していません。私は [view3 setAlpha:1.0f]; 最初の2つの後、実際には3つのビューがあり、コードを見たときに考えられる2つではないことを明確に保つためだと思います。他のプログラマはどのようにこれを行いますか?それは純粋に好みですか、またはいくつかの規則がありますか? 呼び出しが非常に重い場合は、それが必要でないときに呼び出しを行わない方が明らかに良いですが、私の例のような小さなことについて疑問に思っていました。

18
他の人のコードの作業[終了]
コーディングの経験はほとんどありません。作業を始めた後は、ほとんどの場合、他の人のコードに取り組み、既存の機能に新しい機能を追加するか、既存の機能を変更します。実際のコードを書いた人は、私の会社ではもう機能しません。私は彼のコードを理解し、自分の仕事をするのに苦労しています。コードを変更しようとするたびに、何らかの形で作業機能を台無しにしています。他の人のコードを操作する際に注意すべきことは何ですか?

16
boolean_variable == falseよりも!boolean_variableを使用する理由
この質問に対するコメント:メソッドがfalseを返すかどうかを確認する:結果を一時変数に割り当てるか、メソッド呼び出しを条件に直接入れますか?条件をテストするときの!boolean代わりに使用する必要があると述べていますboolean == false。どうして?私にとってboolean == falseは、英語ではもっと自然で、より明確です。これが単なるスタイルの問題である場合は謝罪しますが、この好みに他の理由があるかどうか疑問に思っていましたか!boolean?

12
変数を再利用する必要がありますか?
変数を再利用する必要がありますか? 私は多くのベストプラクティスがあなたがそれをするべきではないと言うことを知っていますが、後で、異なる開発者がコードをデバッグしていて、似たような3つの変数を持っているとき、唯一の違いはそれらがコードの異なる場所で作成されることです混乱した。単体テストは、この好例です。 しかし、私はないのベストプラクティスは、それに対して、ほとんどの時間であることを知っています。例えば、彼らはメソッドのパラメーターを「オーバーライドしない」と言います。 ベストプラクティスは、以前の変数をnullにすることに対してです(Javaにはnull、変数に代入するときに警告を出すSonarがあります。Java6 以降、ガベージコレクターを呼び出すためにそれを行う必要はありません。どの警告がオフになります;ほとんどの場合、デフォルトはオンです。)

17
ブロックifの単一ステートメント-中括弧またはno?[閉まっている]
どちらが良い/より一般的に受け入れられていますか? この: if(condition) { statement; } または: if(condition) statement; 私は最初のものを好む傾向があります。実際にifブロックに属するものを簡単に伝えることができ、他の人が後で括弧を追加する(または忘れてバグを作成する)のを防ぎ、すべてのifステートメントを作成するためです中括弧のあるものとないものの代わりに均一。ただし、2番目のものはまだ構文的に正しく、間違いなくよりコンパクトです。どちらがより一般的に他の人に好まれているかを知りたいのですが。

9
可読性と保守性、ネストされた関数呼び出しを記述する特別な場合
ネストされた関数呼び出しのコーディングスタイルは次のとおりです。 var result_h1 = H1(b1); var result_h2 = H2(b2); var result_g1 = G1(result_h1, result_h2); var result_g2 = G2(c1); var a = F(result_g1, result_g2); 私は最近、次のコーディングスタイルが非常に使用されている部門に変更しました。 var a = F(G1(H1(b1), H2(b2)), G2(c1)); コーディングの私の方法の結果、クラッシュする機能の場合、Visual Studioは対応するダンプを開き、問題が発生した行を示すことができます(特にアクセス違反が心配です)。 最初の方法でプログラムされた同じ問題によるクラッシュの場合、どの関数がクラッシュを引き起こしたかを知ることができないのではないかと心配しています。 一方、1行に追加する処理が多いほど、1ページに表示されるロジックが多くなり、読みやすくなります。 私の恐怖は正しいのですか、それとも一般的には商業環境で好まれる何かが欠けていますか?可読性または保守性? 関連するかどうかはわかりませんが、C ++(STL)/ C#で作業しています。

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