タグ付けされた質問 「anti-patterns」

30
最も一般的なSQLアンチパターンは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 リレーショナルデータベースを扱う私たち全員が、SQLが異なることを学びました(または学び始めました)。望ましい結果を引き出して効率的に行うには、不慣れなパラダイムを習得し、最も身近なプログラミングパターンの一部がここでは機能しないことを発見することを部分的に特徴とする退屈なプロセスを伴います。あなたが見た(またはあなた自身が犯した)一般的なアンチパターンは何ですか?
232 sql  anti-patterns 

30
11000行のC ++ソースファイルをどうするか
プロジェクトにこの巨大な(11000行は巨大ですか?)mainmodule.cppソースファイルがあり、それに触れる必要があるたびに私はうんざりしています。 このファイルは非常に中心的でサイズが大きいため、ますます多くのコードを蓄積し続け、実際に縮小し始めるための良い方法は考えられません。 このファイルは、弊社製品のいくつかの(> 10)メンテナンスバージョンで使用され、積極的に変更されているため、リファクタリングするのは非常に困難です。私がそれを「はじめに」3つのファイルに「単純に」分割するとしたら、メンテナンスバージョンからの変更をマージすることは悪夢になります。また、このような長くて豊富な履歴を持つファイルを分割すると、SCC履歴内の古い変更の追跡とチェックが突然非常に困難になります。 このファイルには基本的に、プログラムの「メインクラス」(メインの内部作業ディスパッチおよび調整)が含まれているため、機能が追加されるたびに、このファイルに影響を与え、ファイルが大きくなるたびに影響を受けます。:-( この状況で何をしますか?SCCワークフローを混乱させることなく、新しい機能を別のソースファイルに移動する方法に関するアイデアはありますか? (ツールに関する注意:でC ++を使用しVisual Studioます。次のように使用AccuRevしSCCますが、SCCここではタイプは特に問題ではないと思います。Araxis Merge実際のファイルの比較とマージに使用します)

30
単体テストアンチパターンカタログ
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 アンチパターン:実際のアンチパターンを単純な悪い習慣、悪い習慣、悪い考えから正式に区別するには、少なくとも2つの重要な要素が存在する必要があります。 最初は有益であるように見えるが、最終的には有益な結果よりも悪い結果をもたらす、繰り返される行動パターン、プロセスまたは構造 明確に文書化され、実際の実践で実証され、再現可能なリファクタリングされたソリューション。 「実際に」一度見たTDDアンチパターンに投票してください。 James Carrによるブログ投稿と テスト駆動開発yahoogroupに関する関連ディスカッション 名前のないものを見つけた場合は、投稿してください。アンチパターンごとに1つの投稿をして、投票が何かにカウントされるようにしてください。 私の既得権は、トップnのサブセットを見つけることです。そうすれば、近い将来、ランチボックスのミーティングで話し合うことができます。

13
アンチパターンとは何ですか?
私はパターンとアンチパターンを研究しています。私はパターンについて明確な考えを持っていますが、アンチパターンを取得していません。WebとWikipediaの定義は私を混乱させます。 誰かがアンチパターンとは何かを簡単な言葉で私に説明できますか?目的は何ですか?彼らは何をしますか?それは悪いことですか、それとも良いことですか?

20
Javaの引数を持つシングルトン
ウィキペディアのシングルトンの記事を読んでいて、この例に出くわしました。 public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {} /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); …

7
ServiceLocatorはアンチパターンですか?
最近、Service Locatorのアンチパターンに関するMark Seemannの記事を読みました。 著者は、ServiceLocatorがアンチパターンである2つの主な理由を指摘しています。 APIの使用に関する問題(これで問題 ありません)クラスがサービスロケーターを使用する場合、ほとんどの場合、クラスにはPARAMETERLESSコンストラクターが1つしかないため、依存関係を確認することは非常に困難です。ServiceLocatorとは対照的に、DIアプローチは、コンストラクターのパラメーターを介して依存関係を明示的に公開するため、IntelliSenseで依存関係を簡単に確認できます。 メンテナンスの問題(これは私を困惑させます) 次の例を考えます サービスロケーターアプローチを採用するクラス'MyType'があります。 public class MyType { public void MyMethod() { var dep1 = Locator.Resolve<IDep1>(); dep1.DoSomething(); } } 次に、クラス 'MyType'に別の依存関係を追加します public class MyType { public void MyMethod() { var dep1 = Locator.Resolve<IDep1>(); dep1.DoSomething(); // new dependency var dep2 = Locator.Resolve<IDep2>(); dep2.DoSomething(); } } そして、ここが私の誤解の始まりです。著者は言う: …


8
2つの文字列を連結するために '+'を使用しない理由は何ですか?
Pythonの一般的なアンチパターン+は、ループで使用する文字列のシーケンスを連結することです。Pythonインタプリタは反復ごとに新しい文字列オブジェクトを作成する必要があるため、これは悪い結果となり、結果として2次時間がかかります。(最近のバージョンのCPythonは明らかにこれを最適化できる場合もありますが、他の実装では最適化できないため、プログラマーはこれに依存することをお勧めしません。)これ''.joinが正しい方法です。 ただし、(ここではStack Overflowを含めて)文字列の連結には決して使用すべきではなく、+常に''.joinまたはフォーマット文字列を使用するように言われたと聞きました。2つの文字列のみを連結しているのに、なぜこれが当てはまるのか理解できません。私の理解が正しければ、二次時間は必要ありません。またa + b、''.join((a, b))またはよりも読みやすく、読みやすくなっています'%s%s' % (a, b)。 +2つの文字列を連結するのに使用するのは良い習慣ですか?または、私が気付いていない問題はありますか?

12
回避する設計パターン[クローズド]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 多くの人が同意しているようです。シングルトンパターンには多くの欠点があり、パターンを完全に回避することを提案する人もいます。ここで素晴らしい議論があります。シングルトンパターンに関するコメントは、その質問に向けてください。 私の質問:他のデザインパターンはありますか?

4
「ログアンドスロー」がアンチパターンと見なされるのはなぜですか?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7年前に閉鎖されました。 この質問を改善する この質問は、周りの議論によって引き起こされました 、私が良い答えを受け取らなかったこの記事。 他の方法で処理できない場合、例外をログに記録してから再スローする(もちろん元のスタックトレースを保持する)のはなぜ悪い考えですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.