認められたアンチパターンを使用すると、特定のケースで実際に機能することが証明されたことがありますか? アンチパターンを使用して、プロジェクトで問題を解決したり、何らかの利益を得たりしたことがありますか?
6 に答える
「アンチパターン」の概念についての私の理解では、長期的にしか明らかにならない欠点を持つソリューションが含まれているということです。実際、それらの多くに関連する主な危険は、大量のグローバル変数と goto を含むスパゲッティ コードを記述することや、空のcatch
ブロックのブラック ホールに例外を投げ込むことなど、それらが魅力的であるということです。それらは、差し迫った問題に対する適切な解決策を提供します。
追加する編集:そのため、これらのアンチパターンから利益を得ることがあります。誰も二度と触れない使い捨てのコードを書いているというあなたの計算は、完全に間違っている場合があり、保守プログラマーがあなたの遺産と性的衛生を中傷することになりますが、別の場合はあなたが正しく、梱包された下品なシェルスクリプトワイヤーアンドスピットは、意図したとおりに機能し、幸いなことに忘れられます。これにより、適切なものを作成するためのかなりの時間と労力を節約できます。
アンチパターンは、(10 の新しい問題を作成しながら) 特定の問題を解決するという理由だけで、依然として非常に広く使用されています。回避策とも呼ばれます。しかし、彼らはどのように言いますか?その場しのぎほど長く続くものはありません。
実際、物事が最初から正しく行われていれば、私たちは皆失業していたと思います。
私の経験で解決した最大の問題は、新しいアプリケーションを起動することです。
開発チームが新しいアプリケーションの範囲を徹底的に調べた場合、通常、正しいソリューションを実装するためのタイムラインは、経営陣が負担するには多すぎます。したがって、多くの場合、ソリューションの「正確さ」をローンチ日に到達させるのではなく、タイムラインに合わせてコーディングし (ただし、次のリビジョンの「正しい」ソリューションを他の人にコーディングさせます)、本質的に「使い捨て」にします。コード。
ソフトウェアのアンチパターンの 1 つにSoftcodingがあり、これも毎日の WTFで定義されています。ソフトコーディングは、プログラマーがコード内に「あるべき」素材を外部リソースに配置するときに発生します。
私は、ソフトコーディングに苦しんでいると言う人もいるかもしれないソフトウェアを扱っています。外部ファイルがソフトウェアを駆動します。これらの外部ファイルはマイクロ言語です。ソフトウェアで使用する前に、XML にコンパイルする必要があります。このマイクロ言語には独自のツールがあります。
しかし、ソフトコーディングは常に見る人の頭の中にあります。
独自のパーサーを備えたマイクロ言語の素材を使用することで、私の生活が楽になりました。1 つのデータ ソースからさまざまな出力を生成できます。メイン プログラムが使用するバージョンに加えて、情報を HTML、.csv、および顧客が必要とするその他の形式に抽出することができます。他のプログラムはマイクロ言語でコードを生成できるため、自動化が容易になります。
私たちの場合、ソフトコーディングはアンチパターンではなく、有用なパターンです。
Duff's Deviceは、ループスイッチシーケンス(別名For-Case Paradigm)アンチパターンを利用します。
それを法則ではなくパターンと呼ぶのには理由があります。
ほとんどすべての人が、コード内で正確に間違ったことを行った場所の例を少なくとも 1 つ持っており、長期的には「正しい」ことよりも優れていることが判明したと思います。
そして、問題を引き起こすアンチパターンの例のはるかに長いリスト。
無知または怠惰から、魔法のプッシュボタンを何度も使用しましたが、実際にはうまく機能することもあり、適切な MVC の追加の抽象化は必要ないことがわかりました。