オブジェクト指向、Javaの「研修」
それまではHOLONでパッケージ品をカスタマイズしてたけど、1年半前くらいに必要になってJava研修に行かされたのを思い出した。
そのときのカリキュラムは
- 基礎編として環境構築、簡単なプログラミング。ifとかmainとか。
- 継承するとどっちのメソッドが動くのかとか。
- 次にオブジェクト指向とは…で例によって自動車の例えとか。
それまでの経験から、要件定義や画面・帳票設計は(マガリナリにも)できなくはない。そして、この研修が終わればクラス設計からコードに落とせなくもない*1。そう、何が抜けてるって、要件をクラス設計に落とせないわけ。だって、小学生が見てもクラス設計に落とせそうな例を持ってきて「オブジェクトはこうやって決めていくんです」って言われても、現実の業務にどうやって使えってのさ。
そりゃ動くものはできるよ。「空のコンストラクタ読んで唯一のpublicメソッドの中でUPDATE文吐いてDB更新しながらマスタをSELECTしつつHTMLを直接Writerに出力してreturn void。」なんて、実にCOBOL臭のするソースが出来上がるわけだ。いや、確かに誇張表現はあるけど、かなりこれに近いですよ。
ちなみに、「何か疑問に思ったことがあれば何でも聞いてください」とご親切にメールまで教えて下さったんだけど、一回もメールしたことはないし、しようと思ったこともない。メールアドレスはメモすらしませんでした。すいません。
OOPを理解している人が一人もいない平均的な開発現場にいる人達は,たとえ本人にどれほど素質と情熱があろうとも,適切な助言一つもらうことが出来ず,カビの生えた古い知識しか持っていない時代遅れの老人達に振り回され続けるしかありません.
http://d.hatena.ne.jp/JavaBlack/20070831/p6
仕事でJava触り出して一年以上経ちましたが、周りを見ても本当にそう。というか、今だから理解できたのかもしれないけど。
細かいことでも議論して、ソースレビューしあって、「どうすべき」まで行かなくとも「他にどうできるのか」のアイデアを皆で出し合いながら進めていく…のが一番かなぁと思っているところです。
*1:この研修を終わらなくても、十分に出来ると思うんだけどね。