しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

YAGNIの精神でクラスの共通化をする

下記事を読んで思った事を書いてみます。

クラスはトップダウンよりボトムアップがいいと思う

クラスの共通化は本当に必要になった時に行う

特に新規開発の初期段階では極力共通化はしないようにしています。
共通化をするのは開発も落ち着いてきて、利用するクラスが出揃ってきた事に行います。

序盤に共通化するとクラスの肥大化が起こりやすい

序盤に共通化しない理由としてはクラスの肥大化が起きやすいからです。

共通のクラスがあると、ついつい使いまわせそうなメソッドを共通クラスに書きがちです。
しかしその共通クラスを継承するクラスが増えてくると追加したメソッドの多くが一部のクラスでしか使われなくなります。
かと言って共通クラスのメソッドを個別のメソッドに戻す事はめんどくさいし戻さなくても動くのでそのまま共通クラスが肥大していくことが多くあります。

このように序盤にはどのメソッドを共通化するかが難しく、クラスが肥大化しがちなので開発後半に適切に共通化していくほうが良いかと思います。

そもそも共通クラスは後から入る人に優しくない

個人的にはそもそも共通クラスはないに越した事がないと思っています。
適切なものなら良いのですが、やり過ぎると後から入った人にとってどこを触ればどこに影響が出るか分からない辛いものになりがちです。
共通化は必要だと思えた時に初めて共通化するのが宜しいかと思います。