プログラミング考察

#コードの読みやすさと汎用性
#抽象度のバランス

高速にプログラミングするためには、『読みやすさ』と『汎用性』、 この両方のバランスが重要である。

汎用性の高さを優先した場合、例えばC++ならvoidポインタなど、 とても汎用性が高くなんにでも利用できてしまう。C++のマクロなどを使うと、 めちゃくちゃ楽にコードが書ける。 が、しかしそれをした場合、気づくと自分しか読めないコードになっていく。 (数ヶ月たつと自分でさえ読めなくなる可能性がある)

逆に読みやすさを優先した場合、「このクラスではこれを行います」と固定の処理を 各クラスに書いていき、なんのクラスが何を意味しているかはわかりやすくなるが、 それぞれが個別に処理を書いているので、複数のクラスが同じような処理を行っている 状態が発生する。(修正があった場合に同じ処理のところをすべて直さないといけないのでめんどくさい)

そこで継承、インターフェイスなどを利用し、何をしたいのかはベースとなるクラスが抽象的に表現し、 継承先でそれぞれの役割を実装する。継承やインターフェイスは『読みやすさ』と『汎用性』を両立させるような役割をしている。

これが抽象度のバランスである。

汎用性を高くするためにベースクラスで抽象化して汎用的な処理を記述し、 読みやすさとして継承を行い、そのクラスの役割を実装する。