プロになるためのWeb技術入門

プロになるためのWeb技術入門

Web技術の全体像を俯瞰できる良書。


会社の方で新プロジェクトに参加になりましたので、前に書いたEclipseなどの学習とともにWebアプリケーションを一から勉強しています。


学習の視点というものにはミクロとマクロがあります。
ミクロの視点で学習していくと要素技術に詳しくなれるため、各要素が具体的にどういった性質を持ったものなのかイメージできることが利点です。その世界について何も知らないならば、抽象的な全体像はまず頭に固着しないので、ミクロから入ると学習効果が高いと思います。
逆にマクロな視点で学ぶと、各要素が他の要素とどう組み合わさっているのか、つまり技術体系の中での各要素のポジションを認識しやすくなるでしょう。何か目的のもの(例えばアプリケーション)を作るときに、ミクロで得たものを結局どのように加工すればいいんだろう、と悩んだときには一度全体像を眺めた方が単一の技術を深く極めるよりもずっと効率的になるかもしれません。
両方とも場面によって使い分けるべきメリット・デメリットがあり、どちらにも何度も反復して立ち寄るべき視点でしょう。


ミクロ・マクロという意味でいえば、完全に、本書はWeb技術のマクロ面を示す本です。
私のようにWebアプリケーションの開発に参加することになったものの、漠然としか知らない「Webアプリケーション」というものを早急に知らなければならなくなった人に適した本だと思いました。なぜかといえば、本書はWeb技術を修める上で前提として知っておくべき、教養レベルの内容を幅広く教えてくれる本だからです。


会議で、リーダや先輩が話している内容を聞いて「一体、何を言っているのかわからない……当然わかるよねと言わんばかりに話を進めないで……」と呆然としてしまわないように、Webアプリケーション開発に携わる上で必要な一般常識を教えてくれます。
ですので「まずは手に職をつけねば!」と猪突猛進にJavaRubyなどに突っ込む前に、まずは本書を読んで、今の時代に何が求められているのか(何が流行なのか)、自分に不足しているものとは何か、これからどういった道のりで技術を習得していくか前もって確認しておき、それらを効率的に駆け足で登っていけば今からでも現代の技術にキャッチアップできるものではないでしょうか。


各章の目次を見ると、「①Webアプリケーションとは何か」から始まり、「②Webはどのように発展したか」でWeb技術の道のりを示し、Web技術の進化が可能にしてきたものを見ることができます。そんなWeb技術の発展といっても、変化が激しい層と激しくない層があります。「③HTTPを知る」ではWeb技術の根本的な部分(変わりにくい技術)が紹介されます。「④CGIからWebアプリケーションへ」では単純な個人サイトではなく、大規模なWebアプリケーションを開発するために必要な技術が紹介されます。「⑤Webアプリケーションの構成要素」は④を更に細かく見ていくもので、大体ここのあたりから業務に直接的に関係してくるのではないでしょうか。WEBサーバとAPサーバを分けるといったような機能毎にサーバを分ける意味と具体例など、ところどころで会社で聞いた話と似たような話が書いてあり、先輩方の話している内容が段々と知識と結びついてくる内容でした。
「⑥Webアプリケーションを効率よく開発するための仕組み」ではフレームワークMVCモデルの詳細な内容に入り、開発現場で必須な技術について紹介されます。この章が最も紙面が割かれており、力が入っている部分です。難易度も他の章に比べて高く、開発のモダンなやり方について説明があります。また実際にコードを打ってみて動作を確認していく章でもあります。フレームワークって何?という方はこの章は理解しなければならないでしょう。
「⑦セキュリティを確保するための仕組み」では、Webアプリケーションのような開放系のアプリケーションは実際に動くだけでは駄目で、その安全性を考慮する必要があるとのことからセキュリティを紹介しています。大体ここらの内容は、ある程度なら作れるようになったら脇も固めないとね、と学ぶ話だと思います。
各章にはところどころ入るコラムが入るんですが、このコラムが結構好きです(もともと私は横道に逸れるのが好きなので)。本筋で述べる話の粒度とは異なった小難しい話や、逆にとても軽い話、便利な話などがはいって、おつまみのように楽しめるのが良いんですね。


本書の良いところを挙げれば、そのバランス感覚読者への配慮になるかと思います。
本書は約270Pしかありません。慢性的に時間が不足している技術者には限られた時間で必要な情報を効率的に摂取できる情報源が必要です。そんな人には必要な情報を、少ないページで、分かりやすく教えてくれる本が向いています。
ですが、そういった本はあまりなく網羅性(つまり重厚)か可読性(つまり軽薄)に傾きがちです。その点、本書は読み終わった後でも過去の内容は覚えられる程度には内容が詰め込みすぎてないし、かといって内容が現場と乖離しているような軽さなわけではないので、非常にバランスよくまとまって読んでて助かるな、と思いました。
また読者がつまずきやすい箇所をちゃんと把握してくれている点が嬉しかったです。技術本にありがちな、初心者本なのに初心者の無知っぷりがわかってないすれ違いはなく、幅広い読者を受け止める守備範囲の広さがあるように思えました。そういった配慮のおかげか、つまずいて投げ出すこともなかったです。


本書を新人研修用のテキストとして使用し、3日程あててくれてたら新入社員の実用度が高まるのではないかと思います。研修ではJavaなどを学ぶものですが、そういった技術を学んでも使う場面が想像できなければ知識が定着しません。本書の前半を研修最初に、後半を研修最後にやれば自分たちが学んだものがどういったものだったのか理解が進むのではないかと感じました。
読む時期が少し遅くはなりましたが、まだまだ読んで得るところが非常に多かったので、太鼓判を押して良書といいます。