ずっとWEBアプリ用のライトウェイトなスクリプトをコーディングする仕事をしてきてるわけだけど、前職の先輩が言ってた。
「こういうライトウェイトなスクリプトはファイル一つ一つがクラスのようなものだ」と。
つまり・・・
そのファイルをコピーして使うのが継承すること。
どのファイルをちょっと書き換えるのがオーバーライドすること。
プロパティ(メンバ)はできるだけ別ファイルで定義する。
「できるだけコードを改変せずに」なんて考えない。
カプセル化なんてしない。フルオープンがいい。
逆に、気軽に書き換えて、それが簡単に管理できるようにする。
ライトウェイトなんだからコーディングから機動性を奪ったら長所が消える。
多態性(ポリモーフィズム)なんてしらん。ライトウェイトに所以する機動性で十分だ。
スパゲティになるのはアフォが何も考えずにコーディングするからスパゲティになるのであって、シッカリした管理の元に、統一されたポリシーをコーダー全員が共有してコーディングすれば、スパゲティになんかならない、と。
これって十分オブジェクト指向だ。
すべてこの考えを踏襲しているかというと、そういうわけじゃないけど、ほぼこの思想は俺のコードに受け継がれている。
だから、俺の書くコード量は多いけど、ほとんどがコピペだ。コピペすることを前提書かれたコードだから信頼性も高い。
継承してオーバラードして・・・カプセル化してるから何してるかわからない・・なんてないからコード量は多いけど非常にシンプルで読みやすい。
さらに、本棚を整理するようにコードも整理できるから、さらに読みやすい。つまりバグが少ない。
javaとかCとかからもってきた概念を用途の違うライトウェイト言語に適用しようとするからややこしいんだよ。