私は他の人のためにいくつかのライブラリを管理しています。彼らのそれぞれのためのカップルのリリースを行った後、私は彼らをもう一度やり直す必要があった場合、私は別のやり方があります。メンテナンス - いつ変更するかの問題のバランスをとる
質問は次のとおりです。 私たちはすべて、ジレンマに直面していると思います。メンテナンス活動の有用性と変化の破壊的効果とのバランスをとる方法。
明らかにバグについては、変更が不可欠です。そこにジレンマはありません。 新しい機能については、それはユーティリティと複雑さの問題です。私はその質問に対処するのが楽しいです。
バグ修正と新機能の間のファジースペースです。 1つの例は、フレームワーク設計ガイドラインまたはCLS準拠に準拠するためのメンテナンスです。ある図書館では、CLS準拠を考えずに書いたので、人々はそれを求めました。その結果、私はintを交換するためにインターフェイスを変更しなければなりませんでした。それは(ほとんどの人にとって)少しの利益のために破壊的な変化です。
別の問題:FxCopへの準拠。 FxCopを幸せにするために、いくつかのメソッドのparam名を変更する必要がありました。しかし、これらの変更は実際に反射を使用する人々に影響します。タイプは変更されず、パラメータの名前だけが変更されました。
私が今扱っている問題は、フレームワーク設計ガイドラインです。イベントに関するガイドラインによると、イベントは2つの引数(オブジェクトソース、EventArgs e)で署名する必要があります。しかし、私はFramework Designコースでその日を欠席しました;)。私のライブラリのイベントは現在、EventArgsの引数は1つだけです。
新しいイベントをライブラリに追加しています。 新しいイベントは、フレームワーク設計ガイドラインに従うべきですか?または図書館に既に設置されているパターン? 新しいイベントのデザインガイドラインを使用する場合は、既存のイベントを変更してデザインガイドラインも遵守する必要がありますか? もしそうなら、移行を行う方法は? [Obsolete]属性を使用する必要がありますか?いくつのリリース?
もっと一般的には、バグ修正と新機能の間のこのあいまいな領域のメンテナンスに関する考えに興味があります。
他の人が使っているライティングライブラリの場合は、そうすることはできません。 –