web-dev-qa-db-ja.com

実装中にインターフェースに変更を加えることは許容されますか?

ライブラリ/ APIを初めて作成するときは、通常、システムのさまざまな部分がどのように相互作用するかを考えながら、ホワイトボードまたはルーズリーフにいくつかのアイデアをスケッチすることから始めます。これにより、通常、具体的な実装を開発するときに準拠するインターフェイスが作成されます。

インターフェイスに変更を加える必要があることに気付いたときに、実装の作成の途中で説明します。たとえば、クライアントに実装の詳細を公開しすぎたこと、インターフェイスを簡略化できることに気付きました。

これは悪い習慣ですか?実装のコーディングを開始する前に、インターフェイスがどのように表示されるかを実際に正確に知る必要がありますか?

更新

私の状況では、インターフェースがまだ存在しておらず、初めて作成することを想定しています。したがって、インターフェースが存在するのは初めてであり、私たちはそのインターフェースの最初の実装に取り​​組んでいます。ですから、私の状況では、実装のコーディング中にインターフェイスに変更を加えても大丈夫かどうかを知りたいです。

4
Snoop

はい、それは完全に正常で正常です。システムがどのように機能するか、そしてホワイトボードの段階にいるときにシステムが何をする必要があるかについて、すべてを知ることは実際には正常ではありません。

変更は避けられないため、管理する必要があります。

明確なバージョン管理スキーム(たとえば、(セマンティックバージョニングを検索))があることを確認し、非常に明示的な変更ログを用意し、パブリックAPIの一部であると見なすものを明確に述べます。

たとえば、オプションの引数を関数に追加すると、引数の数が変更されることが予想されない場合、下位互換性が失われる可能性があります。

また、APIの設計に役立つツールもあります。テスト駆動開発はその1つです。

0
abstrus