web-dev-qa-db-ja.com

ソフトウェアで必要な回避策に対処する方法は?

コンピュータプログラム間でデータを交換するための詳細な仕様があっても、古いバージョンのプログラムによって生成されたデータが仕様に100%準拠していないか、実装方法をほとんど知らない古いあいまいな機能を使用している可能性があります。その結果、企業はソフトウェアをテストするために「奇妙な標本」のライブラリを保持する必要があります。

優れたソフトウェア設計では、これらの癖は「抽象化レイヤー」と呼ばれるライブラリの小さなレイヤーに限定することができます。ただし、ほとんどの抽象化レイヤーは、(高レベルのソフトウェアが低レベルのソフトウェアの不安定な部分に接触するのを防ぐために)あまりにも多くの機能を遮断します。

不安定な部分を完全に隠すことができない場合があります。そのような必要な回避策に対処するための戦略は何ですか?

((私の貧弱な言語スキルをご容赦ください。)

3
rwong

良いドキュメント。

コードコメントは、ハッキングがそこに置かれた理由と、それを維持する必要がある理由を次の開発者に伝えるのに大いに役立ちます。

うまくいけば、理由は健全です。ある時点で、十分な技術的負債が発生した場合は、リファクタリングを検討する必要があります。

1
Robert Harvey

ユニット/統合テストを使用して、これらの「機能」を特定できます(それらができない削除できない場合)。同様に、同じ種類のテストで、問題のライブラリを消費するコードをテストして、それらがmis-動作のコントラクトを満たしていることを確認できます。

1
Steven Evers

データファイルの場合は、新しい形式への変換を行うトランスレータモジュールまたは別のプログラムを作成することを検討してください。そのモジュールに古い->新しい形式の知識を埋め込み、現在のコードをクリーンに保ちます。

1
Alex

不安定な部分を完全に隠すことができない場合があります。そのような必要な回避策に対処するための戦略は何ですか?

ソフトウェアは今後も進化し続けることを認識することが重要です。あいまいな回避策の1つの層は許容できますが、構築を開始すると実際の問題が発生します回避策の上に回避策があります。したがってリファクタリング回避策の層が進む前に絶対に必要です1を超えます。もちろん、そもそもきれいにやったほうがいいのですが、現実の世界ではそうはいきません。

1
Joonas Pulakka