ソフトウェアエンジニアリングでは、アンチパターンは一般的なソフトウェア設計エラーです。その名前は、これらのエラーがソフトウェアの設計段階で、特に英語でデザインパターンと呼ばれる設計パターンの欠如または不適切な使用によって発生したという事実に由来しています。
アンチパターンは、多くの場合、ソフトウェアの過度の遅さ、生産コストやメンテナンスコストの高さ、異常な動作、バグの存在によって特徴付けられます。
GreyPattern (利点または欠点が明確に確立されていない) もあります。
一部のアンチボス
逆抽象化
逆の抽象化は、開発者が必要とする機能を提供できるにもかかわらず、それを使用する開発者が必要とする機能を提供しないインターフェイスを備えたソフトウェアオブジェクトを構築するときに発生します。このインターフェイスは、より複雑な機能のみを提供します。その結果、オブジェクトのユーザーは、単純な動作をプログラムするために、オブジェクトが提供する複雑な関数を使用する必要があります。
例: 浮動小数点計算のみを実行するオブジェクトがあり、このオブジェクトを使用して整数の計算を実行する必要があります。
リモートアクション
離れた場所でのアクションは、グローバル変数の過剰な使用やオブジェクト間の相互依存性の増加によって特徴付けられます。
ボートアンカー
ボートのアンカーは未使用のコンポーネントですが、政治的理由により、このコードは後で使用されると考えてソフトウェア内に残されています。

アクティブな待機中
アクティブ待機とは、条件をテストして最終的に検証され、コード部分が続行できるようになるまで、命令が 1 つだけ含まれるループを指します。このアンチパターンは、アクティブな待機ループを「解放」できるように変数を変更する必要がある別のプロセスであるため、並行プログラミングでは一般的です。待機プロセスはマシン時間を消費し、無駄であるため、待機がアクティブになります。イベント駆動型プログラミングまたはシグナルの使用により、この悪い手法を取り除くことができます。
行き詰まりと飢餓
これらは、ソフトウェアの同時実行部分の不適切な設計 (スレッド使用時など) によって引き起こされる一般的なエラーです。これらは、複数のコードが 1 つ以上のリソースを同時に使用する必要があり、リソース割り当て戦略に欠陥があるか存在しない場合に表示されます。これにより、パフォーマンスが低下したり、「クラッシュ」が発生したりすることがあります。
コピー/ペーストエラー
検証せずにコードを複製すると、不整合が発生します。最良の解決策は、やはり共通領域を複製するのではなく因数分解することです。
スパゲッティプログラミング
これはスパゲッティの皿のイメージを指します。他のすべてのコンポーネントの機能を変更せずにソフトウェアの一部を変更することは不可能です。
ラザニア料理
スパゲッティ プログラミングに例えると、ラザニア皿は、下位層に介入する可能性がなく、互いに重なり合う複数の層で構築されたソフトウェアを指します。

四角い車輪の再発明
役に立たない車輪の再発明と同様に、四角い車輪は、既存の解決策の再発明が不十分であるか、したがって存在しない悪い解決策を再発明するという事実を指します。
溶岩流
溶岩流は、まだ未熟なコードが本番環境に投入されるときに発生し、溶岩が強制的に固まって変更ができなくなります。
インターフェースのオーバーロード
インターフェイスのオーバーロードとは、複数のボタンが同じ効果を持つ Web ユーザー インターフェイス設計の一般的な手法を指します。
御神体
神聖なオブジェクトは、あまりにも多くの重要な機能を提供するソフトウェアのコンポーネントです。これは分割統治の逆です。

