最近、自分がいかに「なんちゃってオブジェクト指向」で作ってきたのか、思い知らされています。
私の歴代ソフト開発言語
まずは、ホビー~仕事まで歴代使ってきたプログラミング言語たちを振り返りますと・・・8bitパソコン時代
- BASIC
- Z80アセンブラ
- C言語
- Boland C
- Wtermスクリプト & KTXスクリプト
- ハンディターミナル用 簡易BASIC
- レーザープリンタ用スクリプト言語
- 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講座で教えて欲しいところだ。
これまで、自己流でコーディングしてきたツケが一気に噴出した感じで
(´・ω・`)ショボーン となりました。
わかったこと、基礎は大切 自己流危険。
あ~早く 脱却して、まともなオブジェクト指向で作れるようになりたい。
0 件のコメント:
コメントを投稿