ちょっと興味深いエントリを見つけました。
なるほど、Smart UIと呼ばれる作り方が、システムの品質を下げるという点は同意です。
ただ、その原因がIDEにあるのかというと、必ずしもそれだけではない気がします。
おいらが思う一番の原因は、犬小屋と高層ビルの作り方の違いに気づいていないプログラマが多いせいではないかと思っています。
つまり、「はじめてのXXX」とか「一週間でわかるXXX」みたいな本やWeb記事には、ごく基本的な文法の説明や簡単なサンプルプログラムの作り方しか載っていません。
こうした説明のほとんどはSmart UIパターンになっていると思います。
もちろん初心者向けの内容なので、簡単な内容に終始してしまうのは仕方ありません。
しかし、ここで説明されているのは、いわば犬小屋の作り方です。
実際に業務でシステムを構築する場合は犬小屋レベルの案件はほとんどありません。
業務で遭遇するのは一軒家やマンション、もしくは高層ビルです。
犬小屋の作り方しか知らない人間が果たして高層ビルをまともに構築できるでしょうか?
もちろん無理な話なんですが、そのままやっちゃうんですよね〜。犬小屋の作り方で。
実際の建築ではビルは作れませんが、システム開発においては「とりあえず動くレベル」のものは作れちゃったりします。
そして、なまじそんなシステムがリリースできたりすると、開発者は変な自信を持ってしまったりします。
でも、所詮犬小屋の作り方がベースなので、フタを開けてみると中は目も当てられない惨状が広がっています。。。
というわけで、犬小屋と高層ビルの違いを認識し、「はじめてのXXX」とか「一週間でわかるXXX」で書かれている内容はあくまで参考程度にしかならないということを理解することが重要だと思います。
高層ビルを作るには高層ビルを作るための高度なスキルやテクニックが要求されます。
その中の一つとして挙げられるのが「設計力」です。
一つ一つのプログラムを作り上げるスキルだけではなく、システム全体のアーキテクチャを設計するスキルが重要になってくると思います。
ところが大規模システムを開発する際に参考になる文献は、というと非常に数が限定されます。
大体において分厚い本になってしまうので、読みたがらないプログラマも多いです。
その結果、犬小屋しか作れないプログラマが蔓延する・・・という好ましくない状況が続いている気がします。
そこで「それじゃあダメだ!」と思った方のために、おいらが今までに読んで参考になった本を紹介しておきます。
入門 オブジェクト指向設計―変更に強く生産性が高いシステムを
- 作者: 滝沢克泰,今野睦
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/12
- メディア: 単行本
- 購入: 7人 クリック: 105回
- この商品を含むブログ (42件) を見る
それほど分厚くないので読みやすいです。
実践!ソフトウェアアーキテクチャ ~VisualStudioとASP.NETによる業務システム開発方法~ (.NET TECHNOLOGY)
- 作者: 尾島良司
- 出版社/メーカー: 技術評論社
- 発売日: 2007/08/20
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 64回
- この商品を含むブログ (12件) を見る
具体的なアプリケーションを構築しながら、一つの設計例を示してくれます。
もちろん、Smart UIパターンではありません。
UMLによるエンタープライズJava開発 (Object Oriented SELECTION)
- 作者: 平澤章,笠充彦,船越隆行,早川秀利,C.T.アーリントン,C.T. Arrington,ウルシステムズ株式会社
- 出版社/メーカー: 翔泳社
- 発売日: 2002/03/20
- メディア: 大型本
- 購入: 2人 クリック: 31回
- この商品を含むブログ (7件) を見る
UMLなんかでシステムが作れるんかい!?と思っている方にはオススメです。
.NETエンタープライズWEBアプリケーション開発技術大全VOL.3 (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)
- 作者: 赤間信幸
- 出版社/メーカー: 日経BP社
- 発売日: 2004/06/05
- メディア: 単行本
- 購入: 5人 クリック: 89回
- この商品を含むブログ (24件) を見る
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)
- 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 大型本
- 購入: 10人 クリック: 635回
- この商品を含むブログ (143件) を見る
あと、システムのレイヤー化についても載っています。
ただし、訳が読みにくいのが難点。
システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考 (IT Architects' Archiveソフトウェア開発の実践)
- 作者: ニック・ロザンスキ,イオイン・ウッズ,榊原彰,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2008/12/03
- メディア: 大型本
- 購入: 15人 クリック: 355回
- この商品を含むブログ (15件) を見る
CODE COMPLETE 第2版 上 完全なプログラミングを目指して
- 作者: スティーブマコネル,Steve McConnell,クイープ
- 出版社/メーカー: 日経BP社
- 発売日: 2005/03/26
- メディア: 単行本
- 購入: 44人 クリック: 1,166回
- この商品を含むブログ (288件) を見る
技術者として幅広い知識を身につけることができます。
読むときは必ず上下巻セットで!
P.S.
犬小屋と高層ビルのメタファはおいらが考えたものではなく、どこかで読んだ本に書いてあった話です。
何の本だったかな〜?CODE COMPLETEだったような気もするんですけど。。。
P.S. 2
ちょっとこの話に関連した小ネタを追記しておきます。
アーキテクチャの重要性を分かっていない人は全体最適ではなく、個別最適へ向かおうとする。「この画面は簡単だからレイヤーに分けなくてもいいじゃん!Smart UIの方がコードが少ないぜ!」みたいな。でもレイヤーに分けなきゃ自動化テストができないし、他の画面との一貫性もなくなる。
— Junichi Ito (伊藤淳一) (@jnchito) October 8, 2010
ヘタにキャリアが長いとこれまでの自分の経験や考えに固執する人が多いので、そういう意見の相違があると非常に疲れる。そういう意味では変な色に染まっていない新人君の方が成長が速いかも知れないね~。
— Junichi Ito (伊藤淳一) (@jnchito) October 8, 2010
ご参考までに〜。