トップページ⇒tech
8コメント6KB

バグパターン仕様書スレ Ver.1.00

■ このスレッドは過去ログ倉庫に格納されています
0001バグ退散NGNG
デザインパターンに対抗してバグパターンってありかも?
デザインパターンのようにできるだけ抽象化した表現で
書き込もう。
究極の目的はソースからバグパターンを検出するソフトを
作成すること。このスレがその仕様書になる。
ツッコミも歓迎!!!。

例)
・データ不整合パターン
複数の変数を参照して処理を行う場合、その変数の間に不整合が
ある時発生するバグパターン。
例えばDBで複数のテーブルを更新してコミットをするのはこのパターンを
回避するためだし、マルチスレッドで他スレッドのグローバル変数を
複数参照する時、割り込みによって一瞬だけ変数に不整合が起きてしまい
運悪くその一瞬に参照してしまって起きるバグなど。

・非カプセル化処理パターン
ある一定の目的をもった処理を、複数のモジュールにまたがって行い、
どこかで処理を変更した時、他のモジュールとの関連に異常が起きる
バグパターン。
修正変更するプログラマが他のモジュールでも関連した処理を
行っていることを知らずに目先のバグを解消するためだけの変更を
自モジュールにすると発生するバグ。

・全コード未確認パターン
コーディングレベルではなくデバッグレベルのバグパターン。
コードの全ての組み合わせをチェックすることは現実的には
不可能だが、最低限すべてのコードを通過させるテストパターンを
実行させなければならない。が、プログラマーの怠慢で実行されず
バグ未発見のまま、運用で発見されるバグ。
0002デフォルトの名無しさんNGNG
1が長いスレは駄スレ
0003デフォルトの名無しさんNGNG
・クソスレパターン
0004デフォルトの名無しさんNGNG
【名前】
 コレクション処理のスケーラビリティ欠落パターン
【現象】
 データ数が少ない時は極めて良好に動作するが、
データ数が極限まで増えた時に、動作が極めて遅くなり、
しかも致命的欠点として度々指摘されるにもかかわらず、
一向に改善されないパターン。主に、担当プログラマの、
スケーラビリティや計算複雑性に関する知識の欠落により
発生する。

【対応】
・プログラマを再教育する。
・プログラマを切り替える。
・クラス設計の見直し。
 ・コレクション・クラスとデータ要素クラスの作業分担の変更。
 ・例えば、コレクション操作では、
  データ要素クラスのメソッドを個別コールせずに、
  コレクション・クラスのメソッド内に
  要素クラスのメソッドを局所インライン展開するよーな感じに、
  最適化する。
 ・アプリ側コードも、多数のデータを扱う可能性がある場面では、
  要素クラスのメソッドを個別に呼び出さずに、
  あらかじめ最適化した、コレクション・クラスのメソッドを呼び出す。
00054NGNG
追加
・適切なアルゴリズムの選択 (は言うまでも無い)
・不適切な能力のプログラマを配属してしまう、
 組織内機構の改善 (ができればいいんだが)
 
0006デフォルトの名無しさんNGNG
>>1

アンチパターンとはどう違うんや?
0007デフォルトの名無しさんNGNG
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ(^_^;)白ベリ
0008デフォルトの名無しさんNGNG
Javaコードの診断 +site:ibm.com でぐぐれ。
http://www.google.co.jp/search?q=Java%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%A8%BA%E6%96%AD+%2Bsite%3Aibm.com
■ このスレッドは過去ログ倉庫に格納されています