問題タブ [anti-patterns]
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#アンチパターン
簡単に言うと、 Javaのアンチパターンは不可欠なリソースだと思います。初心者からプロまで。私はまだC#用にこのようなものを見つけていません。それで、私はこの質問をコミュニティwikiとして開き、これに関する知識を共有するようにみんなを招待します。私はC#を初めて使用するので、これに強く興味がありますが、いくつかのアンチパターンから始めることはできません:/
これが私がC#に特に当てはまり、他の言語には当てはまらないと思う答えです。
これらをコピーして貼り付けただけです!これらについてもコメントを見てみることを検討してください。
投げNullReferenceException
間違った例外をスローする:
プロパティとパブリック変数
クラスのパブリック変数(代わりにプロパティを使用してください)。
クラスが単純なデータ転送オブジェクトでない限り。
ブール値が単なる慣例ではなく、実際の型であることを理解していない
または、さらに良い
C
このような構造は、ブール値の概念が単なる慣例であった開発者や開発者によってよく使用されC++
ます(0 == false、その他はtrue)。これは、C#または実際のブール値を持つ他の言語では必要ありません(または望ましくありません)。
使用するusing()
using
必要に応じて利用しない:
python - Python: "..%(var)s.." % locals() を使用していますか?
私はこのパターン (またはアンチパターン) を発見し、とても満足しています。
私はそれが非常に機敏だと感じます:
時々私はそのいとこを使用します:
人為的なタプルとカウント パラメーターを作成し、タプル内で %s の一致する位置を保持する必要はありません。
あなたはそれが好きですか?使いますか/使いますか? はい/いいえ、説明してください。
javascript - jQuery(アンチ)パターン:文字列操作によるセレクターの構築
文字列操作(分割、検索、置換、連結、+、結合)を使用してセレクターを構築していることに気付くことがよくあります。
良いか悪いか?
javascript - JavaScript の組み込みプロトタイプを変更するのはアンチパターンですか?
この投稿Object
から、 JavaScript で のプロトタイプを変更することはアンチパターンであることを理解しています。ただし、他の「組み込み」プロトタイプを変更することはアンチパターンであると広く考えられているかどうか、興味がありました。
たとえば、コンテキストの画像データを取得し、ピクセルを特定の色に設定し、画像データを元に戻すという義務を抽象化するために、setPixel(x,y,color)
関数を追加したいとします。CanvasRenderingContext2D
私はこのコードをテストしていませんが、アイデアはわかります。「ベストプラクティス」に対してこのようなものはありますか?
language-agnostic - 依存性注入のベストプラクティスとアンチパターン
私は依存性注入に比較的熟練していないので、DIを使用するときにそれぞれ使用するベストプラクティスとアンチパターンを学びたいと思います。
design-patterns - 疑わしい悪意のあるパターンのリスト
コードを分解して分析することで、ウイルス対策プロジェクトを行っています。悪意の疑いのあるパターンコードのリストが必要なので、疑わしいものとそうでないものを観察できますか?
したがって、疑わしいパターンのみのリストが必要です。
c# - プロパティの getter アクセスでオブジェクトの状態 (初期化など) を変更できるのはいつですか?
(プロキシ設定を除く!)
基本クラスでの初期化は、そうではない継承クラスからのデータに依存していたため、ほとんどすべてのプロパティゲッターで条件付き初期化を実行するクラスの問題のより良いパターンに関する質問をここに書くのに時間を費やしました建設で入手可能。
質問を書いているときに、継承者の構築を初期化する方が良いという結論に達しました。これには、すべての継承クラスが親の初期化メソッドを呼び出す必要がありますが、次の理由から、そのほうがよいと思います。
- すべての新しいプロパティ getter/setter の基本クラスで初期化することを覚えておく必要はありません。
- デバッグ中に誤って初期化をトリガーすることはありません (ここで私の質問を参照してください)
プロパティ ゲッターで状態を変更するコードを使用したことがある場合、それは絶対に正当化できると思いますか? そのような場合の例を挙げていただけますか?(または、パターンを説明することさえできますか?)
プロパティアクセスまで初期化を実行したくないプロキシアクセスしか考えられませんでした...
ファクトリ/静的メソッドを使用して初期化することを誰かが提案しました-それは実際には良い考えです(構造が単純な場合、継承するクラス間で均一でない場合は少し難しいです)が、返信を送信する前に回答が削除されました. 残念な。
design-patterns - 貧血ドメイン モデルとドメイン モデルの比較
SO でこのアンチパターンとそれに関する多くの懸念について読んだ後、再び混乱しています。
ドメイン モデルがあり、データ転送オブジェクトに永続化する必要があるデータをキャプチャする場合、ドメイン モデルはデータのラッパーになりますか? その場合、貧血ドメイン モデルを使用します。しかし、そのラッパーに十分なドメイン ロジックを追加すると、どの時点で実際のドメイン モデルになるのでしょうか?
ドメイン モデルで永続化する必要があるものをキャプチャすることは、優れたプラクティスに違反し、貧血ドメイン モデルのアンチパターンを作成するという印象を受けます。しかし、リレーショナル DB を使用する場合、オブジェクトの状態を構成する部分を特定して保存することを避ける方法はありません。
私は概念についてかなり混乱しているので、私が書いていることが意味をなすかどうかはわかりません. 気軽に質問してください。
design-patterns - 設計パターンがソフトウェアを悪化させるのはいつですか?
設計パターンがソフトウェアを悪化させるのはいつですか?
GUI とロジックの間でファサード パターンを使用するプログラムを見たことがあります。彼らは、これを介してオブジェクトを転送することはできないと考えていたため、コーディングが困難なプリミティブ型のみが使用されました。
design-patterns - シングルトンインゴー
goプログラミング言語でSingletonデザインパターンをどのように実装しますか?