どのようにきれいにメインのコードから後方互換性のためのコードを分離していますか?

StackOverflow https://stackoverflow.com/questions/2245871

質問

私が何に興味の戦略の人々は、アプリケーションのメインコードから下位互換性を維持するために必要だすべてcruftyロジックを分離するために出ています。言い換えれば、そのタスクのためにはっきりと分離された別のソースファイル以外には下位互換性の問題がなかったかのようにあなたが近づくあなたのコードの外観を有することに来るような戦略でます。

あなたのアプリケーションではなく、1つの巨大な鳴らしファイルの解析機能を、特定のファイル形式を読み込む場合は、

たとえば、あなたが最初にそれぞれ癖がどうかを確認するために、ファイルをチェックし、「癖」のエントリ/オブジェクトのリストを、反復あなたのコードを持つことができますそれはそれはに適用されるファイルだし、場合は、その通常のケースロジックの代わりに、独自の解析ロジックを呼び出します。

に関する注意点はOKな戦略ですが、アプリ内のすべての適切な場所で癖のチェックのためにフックを置くために仕事をしなければならない、そしてどのようなチェックは次のようになりますが異なる癖の種類によって異なります、などそれはほとんどのように思えますこのタスクのための定型専用のライブラリがあるはずです。もう一つの問題は、癖がアプリの任意のチャンクに汎用フックとして乱用されていないことを強制する方法です。

役に立ちましたか?

解決

私のいつもの戦略は、新しい実装入力への後方互換性の入力を変換し、この変換されたデータを新しい実装コードを使用する別の何かを持っていることです。

他のヒント

退職は後方互換性機能とまで

この時間枠に依存するであろう。また、あなたが実際に削除するのに十分な規律あるなら、あなたは、もはやそれらの癖を持っている必要がありますお使いのソフトウェアの別のバージョンをリリースするつもりだ数ヶ月で、あなただけの周りの古いコードを保つことができることをかなり確信しています次の開発サイクルのすべての嫌なもの。私は仕事二つの別々のバックエンド・サーバ・コンポーネントを維持することだし、彼らは同時にアップグレードすることはできませんが、彼らは通常、お互いの数週間内とすることができます。これは、それらの間の通信は、バック後方互換性が、唯一のバージョンである必要があり、それぞれのバージョンに私は、以前のバージョンでは後方互換性のために残され、古いコードを削除できることを意味します。

ただし、互換性層は、(Wordのバイナリファイル形式を考える)でも無制限に長時間滞在することがある場合や、

私は、新しい機能や古い機能は対等になるようにコードをリファクタリングしようとします初期化。私は古い形式(または行動)と新しい形式の両方が、システムの要件の一部であり、(しゃれ、意図して古いものを除く)は第二級市民を古いフォーマットには理由がありませんと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top