2010-10-08
犬小屋と高層ビルの違い
ちょっと興味深いエントリを見つけました。
なるほど、Smart UIと呼ばれる作り方が、システムの品質を下げるという点は同意です。
ただ、その原因がIDEにあるのかというと、必ずしもそれだけではない気がします。
おいらが思う一番の原因は、犬小屋と高層ビルの作り方の違いに気づいていないプログラマが多いせいではないかと思っています。
つまり、「はじめてのXXX」とか「一週間でわかるXXX」みたいな本やWeb記事には、ごく基本的な文法の説明や簡単なサンプルプログラムの作り方しか載っていません。
こうした説明のほとんどはSmart UIパターンになっていると思います。
もちろん初心者向けの内容なので、簡単な内容に終始してしまうのは仕方ありません。
しかし、ここで説明されているのは、いわば犬小屋の作り方です。
実際に業務でシステムを構築する場合は犬小屋レベルの案件はほとんどありません。
業務で遭遇するのは一軒家やマンション、もしくは高層ビルです。
犬小屋の作り方しか知らない人間が果たして高層ビルをまともに構築できるでしょうか?
もちろん無理な話なんですが、そのままやっちゃうんですよね〜。犬小屋の作り方で。
実際の建築ではビルは作れませんが、システム開発においては「とりあえず動くレベル」のものは作れちゃったりします。
そして、なまじそんなシステムがリリースできたりすると、開発者は変な自信を持ってしまったりします。
でも、所詮犬小屋の作り方がベースなので、フタを開けてみると中は目も当てられない惨状が広がっています。。。
というわけで、犬小屋と高層ビルの違いを認識し、「はじめてのXXX」とか「一週間でわかるXXX」で書かれている内容はあくまで参考程度にしかならないということを理解することが重要だと思います。
高層ビルを作るには高層ビルを作るための高度なスキルやテクニックが要求されます。
その中の一つとして挙げられるのが「設計力」です。
一つ一つのプログラムを作り上げるスキルだけではなく、システム全体のアーキテクチャを設計するスキルが重要になってくると思います。
ところが大規模システムを開発する際に参考になる文献は、というと非常に数が限定されます。
大体において分厚い本になってしまうので、読みたがらないプログラマも多いです。
その結果、犬小屋しか作れないプログラマが蔓延する・・・という好ましくない状況が続いている気がします。
そこで「それじゃあダメだ!」と思った方のために、おいらが今までに読んで参考になった本を紹介しておきます。
入門 オブジェクト指向設計―変更に強く生産性が高いシステムを
- 作者: 滝沢克泰,今野睦
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/12
- メディア: 単行本
- 購入: 7人 クリック: 95回
- この商品を含むブログ (42件) を見る
プログラマから設計者へのステップアップを説いています。
それほど分厚くないので読みやすいです。
実践!ソフトウェアアーキテクチャ ~VisualStudioとASP.NETによる業務システム開発方法~ (.NET TECHNOLOGY)
- 作者: 尾島良司
- 出版社/メーカー: 技術評論社
- 発売日: 2007/08/20
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 57回
- この商品を含むブログ (12件) を見る
上の本と同様、こちらもプログラマからソフトウェアアーキテクトへのステップアップを推奨しています。分厚くない点も同じです。
具体的なアプリケーションを構築しながら、一つの設計例を示してくれます。
もちろん、Smart UIパターンではありません。
UMLによるエンタープライズJava開発―ソフトウェアモデリングによる効率的なJavaシステムの構築 (Object Oriented SELECTION)
- 作者: 笠充彦,船越隆行,早川秀利,C.T.アーリントン,C.T. Arrington,ウルシステムズ株式会社,平澤章
- 出版社/メーカー: 翔泳社
- 発売日: 2002/03
- メディア: 単行本
- 購入: 2人 クリック: 29回
- この商品を含むブログ (7件) を見る
一つのサンプルプロジェクトを最初から最後まで具体的に説明してくれます。
UMLなんかでシステムが作れるんかい!?と思っている方にはオススメです。
.NETエンタープライズWebアプリケーション開発技術大全〈Vol.3〉ASP.NET応用編 (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)
- 作者: 赤間信幸
- 出版社/メーカー: 日経BPソフトプレス
- 発売日: 2004/06
- メディア: 単行本
- 購入: 4人 クリック: 66回
- この商品を含むブログ (22件) を見る
このシリーズのVol.3〜5は、大規模な情報システムを構築する際に参考になる考え方がたくさん載っています。
エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)
- 作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 単行本
- 購入: 8人 クリック: 409回
- この商品を含むブログ (124件) を見る
ビジネスロジックを構築する主要なパターンとして、トランザクションスクリプト、ドメインモデル、テーブルモジュールがあることは押さえておきたいですね。
あと、システムのレイヤー化についても載っています。
ただし、訳が読みにくいのが難点。
プログラミングだけでなく、システムを配置するハードウェアや運用面など、システム全体のアーキテクチャを構築する際に参考になる情報がたくさん載っています。
Code Complete第2版〈上〉―完全なプログラミングを目指して
- 作者: スティーブマコネル,Steve McConnell,クイープ
- 出版社/メーカー: 日経BPソフトプレス
- 発売日: 2005/03
- メディア: 単行本
- 購入: 35人 クリック: 942回
- この商品を含むブログ (262件) を見る
プログラミング技術だけでなく、システムを設計する際にも参考になる情報が非常に多いです。
技術者として幅広い知識を身につけることができます。
読むときは必ず上下巻セットで!
P.S.
犬小屋と高層ビルのメタファはおいらが考えたものではなく、どこかで読んだ本に書いてあった話です。
何の本だったかな〜?CODE COMPLETEだったような気もするんですけど。。。
P.S. 2
ちょっとこの話に関連した小ネタを追記しておきます。
アーキテクチャの重要性を分かっていない人は全体最適ではなく、個別最適へ向かおうとする。「この画面は簡単だからレイヤーに分けなくてもいいじゃん!Smart UIの方がコードが少ないぜ!」みたいな。でもレイヤーに分けなきゃ自動化テストができないし、他の画面との一貫性もなくなる。
2010-10-08 13:15:09 via web
ヘタにキャリアが長いとこれまでの自分の経験や考えに固執する人が多いので、そういう意見の相違があると非常に疲れる。そういう意味では変な色に染まっていない新人君の方が成長が速いかも知れないね?。
2010-10-08 13:16:54 via web
ご参考までに〜。
- 129 http://search.yahoo.co.jp/search?p=犬小屋+作り方&tid=top_ga1_sa&ei=UTF-8&aq=0&oq=犬小屋&xargs=12KPjg1NdStoe9mvinN-mZDrDaoAtP0cHwsd5sCpN8HKQco2dvVOMLaqKNqvd-D705taPhzH6l_lImfWTNmfqXEEq-
- 48 http://www.kt.rim.or.jp/~kbk/zakkicho/
- 45 http://d.hatena.ne.jp/minekoa/20101007/1286460556
- 44 http://b.hatena.ne.jp/entrylist
- 37 http://twitter.com/
- 34 http://search.yahoo.co.jp/search?p=犬小屋の作り方の本&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 28 http://b.hatena.ne.jp/hotentry/diary
- 28 http://www.kt.rim.or.jp/~kbk/zakkicho/index.html
- 26 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 24 http://reader.livedoor.com/reader/

