問題タブ [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.
java - これはパターンですか、悪い考えですか、それとも改善する方法を知っていますか?
このようなクラス階層がある場合: パッケージ ツリー は、オブジェクトの作成に役立つクラスを持つことをお勧めしますか? Ei 作成可能な各クラスに対応するメソッドを持つクラス (メソッド equals() は、たとえば CompareCriteria を返します)。私が見る利点は、複雑な継承構造が隠され、依存関係が減少することです。
python - Python でのコンストラクターの特殊化
クラス階層とコンストラクターは関連しています。子クラスからのパラメーターは、親に渡す必要があります。
したがって、Python では、次のようになります。
多数の子クラスと多数のパラメーターがあると想像してください。新しいパラメータを追加するのは非常に面倒です。
もちろん、名前付きパラメーターを完全に省略して *args と **kwargs を使用することもできますが、それではメソッド宣言があいまいになります。
Python (2.6) でこれをエレガントに処理するためのパターンはありますか?
「エレガントに」とは、パラメーターの出現回数を減らしたいという意味です。a、b、c、ka、kb、kc はすべて、Child コンストラクター、Parent への super() 呼び出し、および Parent コンストラクターで 3 回出現します。
理想的には、親のinitのパラメーターを一度指定し、子のinitでは追加のパラメーターのみを指定したいと思います。
私はこのようなことをしたいと思います:
残念ながら、4、5、6 が kd、ke、kf に割り当てられるため、これは機能しません。
上記を達成するためのエレガントなpythonパターンはありますか?
java - 「疑似 typedef アンチパターン」の正当な理由はありますか?
Map<Long,Map<Integer,String>>
クラスで内部的に使用する比較的複雑なジェネリック型 (など) があります。(外部からの可視性はありません。これは単なる実装の詳細です。) これを typedef で隠したいのですが、Java にはそのような機能がありません。
昨日、私は次のイディオムを再発見し、それがアンチパターンと見なされていることを知ってがっかりしました。
型が隠され、ライブラリ API の一部を形成していない場合、これに対する正当な理由はありますか?
design-patterns - グローバル定数はアンチパターンですか?
定数を保持するためだけにクラスを作成するのは悪い設計だといつも思っていました。しかし最近、私はそれをグーグルで調べてみましたが、定数としてインターフェースを持つことはアンチパターンとしては悪いことだけを発見しました-定数のクラスを使用することについては言及されていません。
定数のクラスは実際にはグローバル変数とそれほど変わらないので、私はそれに反対し、そのようなクラスをリファクタリングする傾向があると私は考えています。コンテキストがまったくないデータのクラスを作成します。これらの定数は、実際に使用するものと結び付けて、コンテキストと意味を与え、クラス内にカプセル化する方がはるかに優れています。
他の人はどう思いますか?
ruby-on-rails - Ruby on Rails のアンチパターン
最も一般的なRuby on Railsのアンチパターンとその回避方法は?
ruby - なぜ「rubygemsを要求するのは間違っている」のですか?
この投稿によると、rubygemsを要求することはアンチパターンです。
議論はこれに要約されるようです:
ライブラリを使用したり、アプリをデプロイしたり、テストを実行したりするときは、rubygemsを使用したくない場合があります。コードに「rubygems」が必要な場合は、その決定を下す私の能力を削除します。私はrubygemsを必要としないことはできませんが、そもそもそれを必要とすることはできません。
しかし、コードのライブラリを作成して他の人と共有するときに「必要な」Rubyライブラリについて同じ議論をすることはできませんか?
java - データ転送オブジェクト(DTO)がアンチパターンであるのはなぜですか?
最近、データ転送オブジェクト(DTO)はアンチパターンだと言う人を耳にしました。
なんで?選択肢は何ですか?
git - Git を使用する際の一般的なアンチパターンは何ですか?
Git の初心者として、私は Git を Subversion のように使用していることに気付きました。たとえば、常にマスターで作業し、変更をプルする前にローカルでコミットしないなどです。これにより、回避可能な手動マージの状況が発生することがよくあります。Git の使用に関するその他の一般的なアンチパターンは何ですか?
language-agnostic - 関数を過度に一般化した名前? これはアンチパターンですか?
関数に引数を渡して関数の動作を選択するための名前は?
例えば:
対:
anti-patterns - このアンチパターンをどのように呼びますか?
データベースにビットフィールドのあるテーブルがあり、そのフィールドをアクティブと呼びましょう
アプリケーションに可変ブール値がある場合は、それをNotActiveと呼びます。
テーブルからフィールドを取得するたびに、アプリケーションで変数の意味を切り替えます。
別の例は、 Enable__yes__noという名前のデータベースのビットフィールドと、実行するコードです。
ベストプラクティスは、同じ名前と同じ意味を維持することですが、上記のパターン、どのようにそれを呼び出すのですか?