昔、VBAでデータベースへのアクセスクラスを作り、今でも便利に使っている。
しかし、今の仕事ではサーバー系のツール作成の方が多いため、VBAより.net系言語を使うことの方が多い。できればVB.netを使いたいところだが、職場としてはC#に傾いているためそちらを使っている。

最近、DBとXMLへのアクセス用共通モジュールを作ろうとしている。まずは急ぎのDBアクセス。当然ADO.netになる訳だが、これまではADOで作ったものをお手軽に改変しADO.netにしたものを使っていた。今回はしっかりとやってみようと思う。ADO.netはそれほど触っていない。そこでサンプルになるコードをネットで探した。しかし、そこで「こりゃまずいな」と思ったことがある。

C#にしろVB.netにせよ、検索すると質問&回答サイトが上位に来る。そこに掲載されてあるコードが問題だろう。
公開される質問であるので、質問者は「素人」「初心者」という免罪符的な言葉を含めて質問しているのは分かる。で、その回答は、なぜかFormモジュールでボタンをクリックすれば作動するようなコードが多い。というより、それ以外を見つけられなかった。
サイトのみならず、書籍でもそう。意外と、海外からの翻訳本でも同様の傾向があった。


これにどういう問題があるか。

少なくとも、.net系の言語はオブジェクト指向である。なら、MVCを意識したコードになっていないのはなぜだろう?もちろん、まっとうなプログラマなら、それをクラスモジュールにアレンジすることは訳ないはずである。しかし初心者と大差のないプログラマも大勢居る。その人たちはコピー&ペーストで処理を書いてしまうのだ。動けばとりあえずよし、そういう感じなのだろう。

インターネットという性格上、誰でも情報を検索できるし、誰でも情報を発信することができる。その仕組み自体は悪いことではないだろうけれど、発信される情報の質が低ければ、良質な情報が埋もれてしまう。

サンプルコードに関しては、Javaはしっかりしているように感じる。

オブジェクト指向の言語に変更したものの、保守がかえって手間になったという場合は、設計やコーディング上で、オブジェクト指向の利点を取り入れていないことも疑ってみればどうだろうか。