問題タブ [coding-style]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C の戻り値を括弧で囲む
ANSI C コードでは、単一の戻り値が括弧で囲まれていることがよくあります。
このような:-
これらの場合、戻り値の周りに () を使用するのはなぜですか? 何か案は?その理由はわかりません。
c# - コードのリファクタリング: いつ何をするか?
.NET を使い始めて以来、ヘルパー クラスまたは部分クラスを作成して、コードを配置し、独自の小さなコンテナーなどに格納するようにしています。
私が知りたいのは、可能な限りクリーンで洗練されたコードを作成するためのベスト プラクティスです。
明らかにきれいなコードは主観的なものですが、ポリモーフィズム、継承、インターフェイス、クラスなどの (使用方法ではなく) いつ使用するか、およびクラスをより適切に設計する方法 (単に「 DatabaseHelper」、コードのこの悪い習慣は wiki のにおいがすると考える人もいました)。
この種の意思決定に役立つリソースはありますか?
私は CS やソフトウェア エンジニアリングのコースを開始したことすらなく、実際の教育リソースはかなり限られていることを心に留めておいてください。
.net - try ブロックのコストが高いのはなぜですか?
try catch ブロックは高価なので、できれば避けるべきだというアドバイスを聞いたことがあります。
私の質問は、具体的には .NET プラットフォームに関するものです: try ブロックはなぜ高価なのですか?
回答の要約:
この問題には明らかに 2 つの陣営があります。try ブロックは高価であると言う陣営と、「たぶんほんの少し」という陣営です。
try ブロックが高価であると言う人は、通常、コール スタックを巻き戻すことの「コストが高い」と述べています。個人的には、特に例外ハンドラがここに保存される方法について読んだ後では、その議論には納得できません。
Jon Skeet は、「たぶんほんの少し」の陣営に属しており、例外とパフォーマンスに関する 2 つの記事を書いています。
私が非常に興味深いと思った記事が 1 つあります。その記事では、try ブロックの「その他の」パフォーマンスへの影響 (必ずしもメモリや CPU の消費とは限りません) について説明していました。Peter Ritchie は、try ブロック内のコードが最適化されていないことを発見したと述べています。彼の調査結果については、こちらで読むことができます。
最後に、CLR に例外を実装した人物によるこの問題に関するブログ エントリがあります。ここで Chris Brumme の記事をご覧ください。
coding-style - IF ブロックに何を入れ、ELSE ブロックに何を入れますか?
これはマイナーなスタイルの質問ですが、コードに追加した読みやすさはすべて重要です。
あなたが持っている場合:
その方が良いか、次のようにするかをどのように判断しますか。
私のヒューリスティックは次のとおりです。
- 条件をポジティブに保ちます(読むときの暗算が少なくなります)
- 最も一般的なパスを最初のブロックに入れる
.net - #region ディレクティブは .NET で本当に役に立ちますか?
(C# と VB.NET の両方で) #region が散らばる多くのコードを維持した後、この構造はプログラマーにとって単なる「作業」の束にすぎないように思えます。やっかいなことをコードに入れるのは仕事であり、コードを検索して読むのは非常に面倒です。
利点は何ですか?なぜコーダーはこれを自分のコードに入れるのに余計な苦労をするのでしょうか。
私を信者にしてください!
c# - イベント宣言に匿名の空のデリゲートを追加することの欠点はありますか?
私はこのイディオムについていくつかの言及を見てきました(SOを含む):
利点は明らかです。イベントを発生させる前に null をチェックする必要がなくなります。
ただし、欠点がある場合は理解したいと思っています。 たとえば、広く使用されていて、メンテナンスの手間がかからないほど十分に透過的なものですか? 空のイベント サブスクライバー呼び出しのパフォーマンス ヒットはかなりありますか?
visual-studio - 例外が別のプロジェクトにある場合
Visual Studioソリューションを構築するとき、さまざまなコンポーネントが異なるプロジェクトに含まれるように構築する傾向があります(ほとんどの人がそうすると思いますが)、ユーザー定義の例外がたくさんある傾向があります。
問題は、これらの例外を(たとえば)モデルクラスとは別のプロジェクトに含める必要があるかどうかです。
私はそれらをモデルのサブ名前空間に配置し、モデルプロジェクト内のディレクトリに整理する傾向があります。しかし、それらはすべて一緒に別のプロジェクトに含まれるべきですか?
java - .toArray(new MyClass [0])または.toArray(new MyClass [myList.size()])?
私がArrayListを持っていると仮定します
そして、toArrayを呼び出したいのですが、使用するパフォーマンス上の理由はありますか
以上
?
冗長性が少ないので、2番目のスタイルを好みます。コンパイラーは、空の配列が実際に作成されないことを確認すると思いましたが、それが本当かどうか疑問に思っていました。
もちろん、99%の場合、どちらの場合も違いはありませんが、通常のコードと最適化された内部ループの間で一貫したスタイルを維持したいと思います...
database - データベースのフィールド名にメジャーをコード化する
たとえば、「高さ」など、異なる単位で表示される可能性があるが、1 つのみで保存される測定値であるデータベースのフィールドに関する質問があります。
「パターン単位」はどこに記載すればよいですか。もちろん、ドキュメンテーションなどでは...しかし、誰もドキュメンテーションを読んでおらず、自己文書化されたものが望ましいことは誰もが知っています。
実用的な観点から、データベース フィールド (たとえば、height_cm など) にコーディングすることについてどう思いますか?
これは一見奇妙に思えますが、さまざまな人が直接データベースを扱っており、「パターン単位」が決して変わらない場合、間違いを避けることが実際的であることがわかります。
どう思いますか?
c++ - ゲッターとセッター、または関数のどちらがより適切ですか?
代替関数名が API をより明確にする場合、ゲッターとセッターの「getMyValue()」および「setMyValue()」パターンを放棄することは適切ですか?
たとえば、C++ に次のクラスがあるとします。
次のように「mIsVisible」を取得/設定する関数を追加できます。
}
ただし、代わりに次の方法を使用することも同様に可能です。
簡単に言えば、単一の「setVisible(bool)」メソッドと、「show()」と「hide()」メソッドのペアのどちらが良いですか? 慣習はありますか、それとも純粋に主観的なものですか?