Thursday, July 5, 2012

エンジニアは「NoSQL万歳」と言う前に「Webエンジニアのための データベース技術[実践]入門」を読むべき (献本御礼)


しょっぱなから話がずれますが、最近「[翻訳]MVCは死んだ。MOVEするときがきた - きしだのはてな」という記事が話題になっています。一方で、この記事に対しては、

MVCへの不適切な理解から導き出されたずれた認識に見えます。MVCを否定する理由にはとてもあたらないどころか、この人が学んだMVCはMVCではなく、MVCフレームワークの使い方であった事がよく解る

MOVEは望まれなかった子 - the sea of fertility

といった批判もなされています。

僕は、結果としていいものが作られるなら無知でもいいじゃない、と思うのですが、まあこのような知識不足による誤解というのは良くあることです。

実際、「RDBMSは死んだ。NoSQLの時代がきた」と主張する人に耳を傾けてみると、その人が知っているのはRDBMSではなく、MySQL(しかも古いバージョン)の使い方だった、なんてこともあります。

逆に、なにかを主張してみたら、実はそれが僕の知識不足による誤った意見だった、ということもあります。

そのような無駄を、どう省くか。

各分野の、いい教科書を読む、というのが良い解だと思います。

たとえば、以前、前職のブログで言及(「Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)」)した「Webを支える技術」は、HTTP, REST 分野での教科書的な一冊だと思います。

そして、データベース分野で今オススメするなら、これ! 「Webエンジニアのための データベース技術[実践]入門」がいいんじゃないかと思います。

MySQL の専門家である松信氏によって書かれた同書は、リレーショナルデータベースの理論から始まり、MySQLの実装に関する議論を経て、ビッグデータ時代にデータベースがどのように変化していくかまでをカバーしており、我々現場で働くウェブエンジニアにとって、とても良い教科書になっていると思います。

氏は自書を紹介するにあたり、

小手先のツールが使えようが何だろうが、基本を知らん奴はトラブルの現場では何もできやしない、ということで、データベース技術の歴史を振り返り基礎をおさえたい方におすすめです。

Open database life: 新著「Webエンジニアのための データベース技術[実践]入門」

と書かれていますが、これは上に述べたように「トラブルの現場」に限らず「発明の現場」においても同様だと思います。

このような優れた教科書を読み、知識を共有することで、我々ウェブエンジニアは、より生産的な議論と開発に関わることができるようになるはずです。

PS. あなたのオススメの教科書はありますか? よかったら教えて下さい

このエントリは @naoya_ito さんの tweet にインスパイヤされています