2011年4月14日木曜日

なんちゃってオブジェクト指向から脱却したい。

 
最近、自分がいかに「なんちゃってオブジェクト指向」で作ってきたのか、思い知らされています。
 
 
 

私の歴代ソフト開発言語

まずは、ホビー~仕事まで歴代使ってきたプログラミング言語たちを振り返りますと・・・
8bitパソコン時代
  • BASIC
  • Z80アセンブラ
  • C言語
MS-DOS PC時代
  • Boland C
  • Wtermスクリプト & KTXスクリプト
  • ハンディターミナル用 簡易BASIC
  • レーザープリンタ用スクリプト言語
Windows時代
  • Excel VBA
  • Access VBA
  • VisualBasic 6.0
  • ハンディターミナル用 簡易BASIC
  • VB2008

指向別に分けて、経験年数を見ると
非オブジェクト指向系
手続き型言語 or データ中心言語
22年
なんちゃってオブジェクト指向
3年
しっかりオブジェクト指向
0年

そりゃねー 22年も 非オブジェクト指向のプログラミングをして来て、いきなりオブジェクト指向に頭を切り替えろって、そいつは無茶ってもんです。

 3年前にVB2008の教育に行き、オブジェクト指向っぽいプログラミングをして、ちょっとは出来るようになった なんて、思い込んでいたけど、やっぱり作っていると、なーんかしっくりこないというか、悩むばかり。
 ただ、VB2008はVisualBasic 6.0より、いろいろな面で開発者にやさしいように改善されており、もう過去には戻りたくない感じです。 起動が遅かったり、古いOSで動かないのは困るところですが。

 

 

再始動

そこで、今年の1~3月は大きなプロジェクトも入っていないので、改めて教育をうけてみました。

2月オブジェクト指向基礎 ~基本概念とUML~
3月Javaプログラミング1


そして、わかったのは、やっぱり分かってなかった。


まず、設計のやり方からして、必要な機能を考えて、メニューはこんな感じで、あとDB構造はこう言うのを用意してっていう感じでつくっているんだから、そりゃーもう、オブジェクト指向言語をつかった、従来の手続き型プログラミングをしているだけでした。
オーバーロード(多重定義)、オーバーライド(上書き定義)、継承、カプセル化も使っていたりするけど、その中身のコードの内容は従来式でめちゃめちゃ、それに加えて思いつきや不便と思うと内部変数をプロパティとして公開したり、そりゃもう ハズカシイぐらい。

NGなこといっぱい
  • 1クラス 1ファイルになってない ・・・ メンテナンス性がわるい
  • 1クラスが 100行~200行と長い ・・・ いろんなコトをひとつのクラスでやらせすぎ
  • クラス間メッセージやりとりをどうするかなんていう概念がもともとなかったので、もう、バウンダリ、コントローラ、エンティティがぐちゃぐちゃに入り交じってダメダメ
  • インターフェイスがほとんど使ってない
  • ポリモーフィズムでやらなければいけないようなところも、従来のやりかた同様Switch文で分岐
  • 機能が増えるたびに、引数の増えるメソッド
  • Factoryクラスの考えもないので、四苦八苦 ← この考え方は以前の教育を受けたVB6プログラマーのためのVB2008講座で教えて欲しいところだ。

これまで、自己流でコーディングしてきたツケが一気に噴出した感じで
(´・ω・`)ショボーン となりました。 


わかったこと、基礎は大切 自己流危険。

 あ~早く 脱却して、まともなオブジェクト指向で作れるようになりたい。

 

ありがたいサイト
SE・PG入門 http://www.happiese.com/system/index.html






0 件のコメント:

コメントを投稿

デル株式会社

最近人気の投稿