とにかく責務をしっかり考える新人
kijitoranekoです。こんにちは。
ホッピーさんが力作書いてくれましたね。どうもありがとうございます。VB6書くときの参考にします。積極的には書きませんがw
VB6の場合、言語仕様としては継承やインターフェースなどはないようですが、その辺を学習するときのコストのお話を書きます。
MVCとかありますよね。最近はMVWですかw
サービス層とかドメイン層とかモデル層とかデータ・アクセス層とかプレゼンテーション層とか。この抽象的な概念の話はとても大事です。私も馬鹿なりに知ってはいます。そんなことは。ただ、これら概念も具体的なもの(言語仕様としてのインターフェース、言語仕様としての名前空間パッケージ管理等々)を作りながらの経験との相互的なものから得られる知見が重要ですね。「どちらも」結局これですね。
それで、その具体的なものをまずはじめに考えるときの話なのですが、初学者にはインターフェースとか抽象クラスとか教える前に、まずは関数切り出しレベルにいる状態からクラスの責務というものをきちんと考えるという段階を教えていくのが一番いいのではないかと思っています。とりあえずクラスとは責務を具体化するデータ(フィールド)とデータ操作(メソッド)の塊であるということをとにかく徹底的に考えて実践していってもらう。この時に名前付けも相当に気をつけてもらう。
そんなことをやっているうちにそれら具体的なクラスの協調作用やクラスの単体テスト(ユニットテスト)をうまく機能させるためには具体的な言語仕様やライブラリやフレームワークが必要なんだねということに気づいていくのではないかと思います。
いきなりオブジェクト指向の本質とは、拡張やインターフェースを使用したポリモーフィズムだとかはやめたほうがいいです。もちろんそれは本質かもしれません。そうなんでしょう。
しかし、いい加減にそういう方向での初心者の学習コストは極めて高いということに気づきましょう。クラスに切り出す徹底はとても具体的な戦略として新人教育などで効果があると思います。というか、これからの新人教育はそれしかない。何度も言うけれど、if elseの違いとかforループの違いとかクライアントとしてのAPIの使用方法とか、どうでもいい話です。「調査コスト低ッ!」ってことは別に教えてもらわなくていい。実際に私が新人研修とかで教えてもらいたかったのは、そんなことではありませんでした。誰も教えてくれなかったから、ある程度自分で調べた。日本のSIに今だに全く根付かないオブジェクト指向だとかの考えを広めるための実践的な方法はそういうことではないかな。知ろうとしないSIerは糞であるなんていくらでも言えるし、単なる愚痴にしかならない。効率化しましょう!無視ですか?知らない?知ると困る?政治?死ねばいいのに。とかなるわけですよ。
わからないことは気持ちが悪いと思う感覚がない人はプロフェッショナルという意識持ってないのですかね。
お金もらっているのだから。プロなんですよ。イチローもプロ。私もプロ。あなたもプロ。
頑張ります。ではまた。
最近のコメント