.NETによる大規模システム開発で失敗しないために |
||
マイクロソフト株式会社コンサルティング本部 2004/06/30 |
||
Page1
Page2
|
システム構築を成功させるための設計テクニック
―― 今回の『.NETエンタープライズWebアプリケーション開発技術大全』シリーズですが、これを執筆した経緯はどのようなものだったのでしょうか。
冒頭でお話ししたように、前職ではJ2EEを利用したシステムのアーキテクチャ設計や方式設計を担当していました。このとき、実用に堪えないアプリケーションを構築してしまったという苦い経験があります。 当時はJ2EEの先進性や開発容易性をうたった雑誌記事が多かったのですが、大学院卒業後の駆けだしだった自分は、そういった記事をある意味うのみにして、それでプロジェクトを乗り切ろうとしてしまいました。ところが、いざ出来上がってテストしてみたら、とても使い物にならない。今にして振り返ってみると、それはJ2EEというテクノロジのせいではなく、方式設計の基本ともいえる部分を私自身が全く実践できていなかったせいなのですが、個人的には相当手痛い思いをしました。 幸い、小規模で試験的なプロジェクトだったということもあり、それ自体は事なきを得たのですが、マイクロソフトに移ってコンサルタントとしていろいろな情報システム開発の現場を見ていると、大規模なプロジェクトで、私が過去に経験したものと同じような課題に直面しているケースが非常に多いことが分かりました。 コンサルタントの経験を通じ、さまざまなプロジェクトに参加させていただいて分かったのですが、どのプロジェクトでも、業務設計とプログラム設計をいかにつなげるのかという部分で困っているのです。ところが、現状はその部分を学習することが極めて困難です。米国にはそういった書籍は何冊か存在するのですが、日本では断片的な資料はあっても、まとまった形になっているものがなかなか見つかりませんでした。ここ数年、この部分について、何かしら手を付けたいとずっと考えていました。 そこで今回、書籍という形で1つ問い掛けてみたいと思い、この企画についてマイクロソフトプレスと相談しました。 |
―― では、きっかけは赤間さんからなのですか。
そうです。 マイクロソフトプレスの担当者も認識していたのですが、一般的に日本のデベロッパ向け書籍は、2つの課題を抱えています。1つは、入門者向けの情報と、上級者向けの情報のレベルに大きな格差があることです。 例えば、マイクロソフトプレスを例にすると、入門者向けにはアプリケーションの実装方法やツールの使い方を細かく紹介しながら説明する『ステップバイステップ』シリーズがあります。一方で、ハイエンド向けには『patterns & practices』と呼ばれるシリーズがあります。これらは両極端な書籍なのですが、ちょうどこれらの間を埋める中級者向けの書籍が少ないのです。日本のデベロッパ向け書籍には、入門ユーザーから、中級開発者、上級開発者になるための、いわゆる教科書となり得る書籍が少ないのです。 |
もう1つは、先に述べた、開発における業務設計とプログラム設計の断絶です。日本には、翻訳書も含めて、これらの間を埋める書籍がほとんど見当たりません。拙著が目指しているのはこの領域なのですが、この領域を勉強するための教材がないと思ったのです。これは.NETに限ったことではなく、Javaにせよ、それ以外のテクノロジにせよ、日本のデベロッパ向け書籍の状況は同じようです。この領域を、日本市場に特化させながら解決していけないかと思いました。 こうした問題の解決のためには、設計時の基本となるセオリーやテクニックなどを理由つきで学習し、それを少しずつでも使いこなせるようになっていただく必要があります。マイクロソフトやパートナー企業が日常的に当たり前のように利用しているセオリーなどを、学習しやすい形にまとめ直してお伝えするもの、それが本シリーズだと考えていただけると分かりやすいと思います。 |
―― すでに第1巻から第3巻までが発売されており、残り2巻が今秋に発売されるということですね。これらはすべてWebアプリケーションについてのタイトルですが、今後はXML Webサービスやスマート・クライアントなどのテクノロジについても広がりを持たせる予定ですか。
このシリーズについては、Webアプリケーションに特化しており、このシリーズ内でほかのテクノロジを取り扱うことはありません。ですが本シリーズは、本質的にはサーバ・サイドの設計の考え方にフォーカスしています。そのため、今後システムがスマート・クライアント系に進むとしても、ビジネス・ロジックより後ろのサーバ・サイドでの設計の考え方やトランザクション制御の考え方はそのまま活用できます。また、第4巻で扱うチーム開発や開発環境、あるいは運用に関連する部分、あるいはセキュリティ関連などについても、その本質的な考え方はスマート・クライアントなどでもまったく変わりません。 そもそも、Webアプリケーション開発で困っている開発者が多い現状で、スマート・クライアントだけを前面に押し出した解説を進めることは、マーケティング的にはともかくも、本当に開発者に役に立つものになるとは思えません。現状を踏まえたうえで、いま何をいかに勉強していけばよいのかを考えていくと、Webアプリケーションを正しく設計・実装することだろうというのが私の結論です。Webアプリケーションをきちんと学んでおけば、サーバ・サイドのビジネス・ロジック層以下はまったく同じですから、スマート・クライアントでもXML Webサービスでも応用が利くと思います。こうした事情から、今回はWebアプリケーションを取り上げました。 |
―― 現在Insider.NETでは、VB6プログラマの方々に、いかにして.NETに移行してもらうかということが大きなテーマの1つになっています。いまだに、よく分からない.NETに移行などしなくても、VB6+クライアント/サーバ型のシステムで、それほど困っていないとおっしゃる方も多いようです。私たちとしては、そういった方々にも、次期WindowsであるLonghornなど次世代に向けたコンピューティングのスキルを身に付けていただきたい。そのためにどうすればよいかといったことを考えています。それと、今回の書籍と共通する部分はありますか。
INDEX | ||
[Trend Interview] | ||
.NETによる大規模システム開発で失敗しないために(1) | ||
.NETによる大規模システム開発で失敗しないために(2) | ||
「Trend Interview」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|