ネタもと:なま暖かくて柔らかい、ちょっと触るとプルプル動く
プログラマという職業の人がいればきっとできるよ。
最近、賛成できるようになりました。
VC++5.0 あたりから増築されているプロジェクトを引き継いだのですが、それが「ある程度苦しんだ人には常識だと思いますが」なわけですが、うぅ、最近、やっと、「プログラマという職業」の入り口にたどり着けたのかorz
VC++4.0 の頃に Visual C++ という言語(と、便宜上定義する)に出会ったわけですが、しばらく使ってみて、「これはよう使わん」と思いました。当時は UNIX (Solaris) で C 言語をさわっていたので、C++ を使おうという気も、あまりなかったし。
そして、仕事が Windows にシフトしたとき、Borland C++ Builder に逃げました。
これや、Delphi、Visual Basic などを使用する開発者にとって、部品は作るものではなく、使うものではないでしょうか。
これらの IDE(統合開発環境)には、最初から Form などの、それなりに使える部品が用意されています。フォーム デザイナの上に、部品をポトリペタリとドラッグすると、それなりの体裁を持ち、それなりに動くアプリケーションができあがってしまいます。
そうすると、オブジェクト指向言語を利用した手続き指向言語によるアプリケーション、ができあがってしまっていませんか?
そうなんですよ。部品を使うと、簡単にできあがります。でもそれは、「汎用的な部品」を利用した、疑似オブジェクト指向なんです。
オブジェクト指向でするなら、まず、どの様な部品が必要かを検討し、実装する。そして、部品を組み合わせてアプリケーション化する。
ほらね。一回こっきりしかメンテしないプロジェクトなら、部品化の検討をする分、生産性が落ちるんです。
でもね。何年か継続してメンテしていくプロジェクトなら、菊地さんところに書いてあるとおり、何が出てくるかわかっているから、メンテしやすいんです。
ということは。一回こっきりのプロジェクトであっても、部品の粒度を小さくして、どんなプロジェクトでも使いそうな部品を抽出しておけば、その部品を使い回すことで次のプロジェクトの生産性を上げることが出来る。と、考えられませんか?
わんくま同盟勉強会で、ウェブからの入力に、「売上予算」と「売上実績」がありました。これ、単純には、TextBox を 2つ貼り付けて、検証コントロールをそれぞれに貼り付ければ、できあがります。
でもね。そうすると、同じコードをコピペしたとしても、2つのフィールドで、それぞれ「値が入力されていなければエラーとなること」、「入力に数字以外が混ざっていればエラーになること」を、クライアント、サーバのコードで検証しなければならない。つまり、2つのフィールド×2つのコード×2つの検証項目で、8項目のテストが必要になるんです。
しかも、これくらいの粒度の部品なら、他のプロジェクトでも発生するでしょう。そして、そのプロジェクト毎に、部品の数×4項目のテストを行わなければならないんです。(品質保証担当者の立場から見ると、やっていて欲しいはず)
じゃぁ、これ、部品化してしまいましょうよ。そうすると、部品化するためにテストするだけで、貼り付けた部品の数だけテストする必要はないでしょ?で、他のプロジェクトで使い回すときに、テストする必要が無くなるでしょ?
ということで、どうでしょう?オブジェクト指向って、難しいですか?
投稿日時 : 2006年11月8日 21:42