「データベース技術[実践]入門」は「サーバインフラ本」「徳丸本」と並ぶウェブエンジニア必携の教科書

技術評論社様から献本して頂きました!ありがとうございます!!日本を代表するDataBase Administrator(DBA)である松信さんの新著ということで、あえて僕の様な人間が何をせずともすばらしい本であることは自明ですが、献本頂いたからには何か書かねば!

「データベースがないと何が困るのか」

これが第1章のタイトルです。あぁ、入社前の自分に言い聞かせてやりたい。僕はプログラムを触り始めたころ、データベースを触りたくないという理由だけでウェブアプリを作ることを諦め、plaggerを使って自分ではデータを直接保存しないことばっかりやってました。結果、SELECT文すら書けない状態でエンジニア生活をスタートしたわけです。

で、実際ウェブアプリの現場を3年やってきて、データベースを知らないなんてあり得ないということが痛いほど分かりました。最近、NoSQLだなんだとRDBMS以外のデータ保存方式が雨後のタケノコの如く出てきていますが、そもそも「データベースがないと何が困るのか」という認識もなく、深く考察したことのない人間が数多く存在する選択肢の中から最適なものを選択できるとは思えません。

データストアというのはウェブアプリの根幹です。たとえばAPIサーバなんかは極論してしまえばデータストアのインタフェースみたいな感じですよね(あくまで極論です!)。だから、データストアに対する深い知識を持ってないと何も作れない。つい最近、ユーザデータをTRUNCATEしてヘラヘラしてる人がいたみたいですが、ああいうDBAにならないためにはどうすればいいのか。その答えがここにあります。

「高信頼なシステムを作るための羅針盤」

松信さんの深くて広い知識に基づいて、注意深く構造化された構成になっていてまさに「羅針盤」だと思います。特にこれから成長していく若いエンジニアの人達にとっては、全く先の見えない大海原に漕ぎ出すために羅針盤が必要です。本書はまさにそのためにうってつけの本です。新人の頃だけでなく実際に現場の真っ只中であっても必ず役に立つはずですね。

データベースの最も重要な機能である「信頼性」について高いスキルを持ったDBAになるためには、ここまでの能力が必要なのかと魅せつけられるとてもステキな本です。

ウェブエンジニアのための教科書

ウェブエンジニアの業界はまだまだ若く、整った教育制度も無いし、ともすれば「コードを読めば全て分かる」的な雰囲気があったりします。でも、そういう環境ではほんのひとにぎりの人を除けば「正しい道」を進める確率ってとても低いなぁと思います。運良くスーパーエンジニアが近くにいたとか、正しいコードばかり相手にしてきたとか。

例えば、高校数学レベルの微分積分を教科書無しに自分で発見的に身につけるのって難しいですよね。大体スタンダードな知識が固まった分野というのは「教科書」というのが重要な役割を果たしています。歩みの早い人にとっては最速で行ける高速道路を自分で探すこと無く全力疾走できますし、歩みの遅い人にとっても無駄な寄り道をせずに効果的に進むことができます。僕自身、微分積分は高校の授業の進みが遅かったのですが教科書・参考書だけで先に進むことができてすごいありがたかったです。

で、ウェブエンジニアの持っておくべき基礎能力みたいなのもだいぶ落ち着いてきたかなぁと思います。若い業界ではありますが急成長しているので、数年前の知識なんて役に立たない、という感じがあった気もしますが、それでも今現在それなりにナレッジが蓄積されてきて、様々なベストプラクティスが出てきています。そうしたものを敢えて自力で発見的に身につけるよりも、教科書を使って勉強したいと思うのは自然な発想だと思います。

というわけで、僕の観測範囲ではありますが、厳選した以下3冊はまさにこれから新入社員としてウェブエンジニアの歩みを始める人達に送りたい教科書です。

データベース技術

「Webエンジニアのためのデータベース技術[実践]入門」は、その教科書としてぜひ挙げたいと思う1冊でした。前から読んでいってすんなりと吸収できて、読み終えた時には確実に成長できている、そしてその後の生活の中で何度も見返したくなる、そういう本です。詳細は上に書いたので割愛。

サーバインフラ技術

ウェブエンジニアの多くはサーバサイドのアプリケーションも作成します。オペレーションエンジニアの様な専門の人がいる場合もいない場合も、サーバサイドが一体何を考え、どういう技術を用いているのかは絶対に知っておくべきです。その概略として「24時間365日サーバ/インフラを支える技術」は必携です。僕はまさに最初にこれを読んで、今に到るまでことあるごとに見返しています。

セキュリティ技術

ウェブエンジニアの多くはインターネットを介したオープンな環境にプロダクトを提供します。専用線などで物理的に閉じられた空間ではなく、かつ他のサービスと繋がることでより加速度的に成長していく業界である以上、セキュリティに対する知識は絶対に欠かせません。いい加減な作りしかできない人とは一緒に仕事をしたくないです。その教科書としては「体系的に学ぶ 安全なWebアプリケーションの作り方」、通称「徳丸本」以上に優れたものはありません。具体的なセキュリティリスクとその対応が細かく書かれています。


プログラムの書き方とか、コンピュータの動作原理とか、そういう教科書はウェブに限らずまぁ今までもたくさんあるかなぁと思います。ただ、正しいウェブアプリケーションを書くための知識を確実に得られるものとしては、上記3冊に及ぶものは今のところないかなぁと思っています。

丁度3冊でキリもいいですし、新人エンジニアのみなさんはまとめてポチっと購入して入社までに読んでおくといいんじゃないでしょうか!!