【書評】達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ の書評です。

結論から言うと、データベース初心者が、SQLの構文を学習した後、「テーブルってどう設計すればいいの?」という疑問が湧いてきた時に読むべき一冊です。

■ 良い点
・ DB設計の理解が深まる
・ ポイントが簡潔に示されている
・ アンチパターンが紹介されている
・ 設計上のトレードオフが考慮されている
・ 文章が読みやすく図表がわかりやすい

■ 悪い点
・ 特に無し

■ 総評
データベースの『設計』に重点を置いた初心者向きの書籍です。主要なテーマである正規形に詳しく、非正規化やER図、そしてツリー構造の扱いなど基礎から解説されています。

特に正規形については、第5正規形まで省略せず、図表を用いて解説されています。加えて、正規化と非正規化のトレード・オフにも触れられていて実務での参考になります。

また、バックアップについても、フル・差分・増分について、きちんと扱われているのが好印象です。

その他、著者の経験に基づく、アンチパターン(バッドノウハウ、グレーノウハウ)など、多くのヒントがあるので、DBの設計に関わるならば、一通り目を通しておきたい一冊です。

なお、DBの設計に主眼が置かれているため、SQLの解説はあまりありません。そのため、本書を読むためには、前提として基礎的なSQLの知識が必要です。SQLの構文を学習したら、次にデータベースの設計について、本書で学習すると良いと思います。

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

カテゴリー: BOOK, DB | コメントする

【書評】SQLアンチパターン

SQLアンチパターン の書評です。

結論から言うと、データベースを扱うなら知っておくべき、やってはいけない25のアンチパターンを重点的に解説した一冊です。

■ 良い点
・ よくある問題点と解決策が的確に示されている
・ サンプル例が一貫しており具体的かつ実用的である
・ 役立つヒントが多くSQLの理解も深まる
・ 訳書であるがとても読みやすい

■ 悪い点
・ 章のタイトルがキャッチー過ぎる
・ 所々わかりづらい箇所がある

■ 総評
SQLアンチパターンというタイトルですが、内容的にはデータベース全般(論理設計・物理設計・クエリ・アプリ開発)が扱われています。レベル的には、中級レベルといったところでしょうか。DBの運用経験があり、プログラミングにおけるオブジェクト指向の理解があると理解が進みます。

内容的には、ほぼ全ての章で、『バグ報告システム』なるデータベース・アプリケーションを構築するという仮定で解説が進みます。具体例が一貫しているので、学習コストが低く抑えられます。

本書の解説は、特定のデータベースに依存しないものとなっていますが、プログラミング言語としては、PHPが採用されPDOを使った解説となっています。そのため、PHP使いには特にお勧めです。

25のアンチパターンが扱われていますが、常識的な基礎事項も多いので、データベース運用者ならば内容を一通り押さえておくべき書籍です。

SQLアンチパターン

カテゴリー: BOOK, DB, SQL | コメントする

【書評】スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス

スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス の書評です。

結論から言うと、『スクラム』の理論とその適用事例を短時間で学習できる一冊です。

■ 良い点
・ スクラムの概要と理論がコンパクトにまとまっている
・ 大手企業の具体的導入事例を参考にできる
・ よくある問題とその解決策が示されている
・ 目次が詳細である

■ 悪い点
・ 後の解説項目が先にくる箇所が多い
・ カタカナ語が多い

■ 総評
スクラムというアジャイルな開発手法が初めての人でも、スクラムの概要がよくわかる、210ページほどのコンパクトな書籍です。

主に、前半はスクラムの理論を解説し、後半は具体的事例となっています。理論だけでなく、実際の適用例(DeNA、GMOペパボ、mixiなど)について、問題点とその解決策を併せて紹介しているので、とても参考になります。

開発者はもちろん、プロジェクト・マネージャーなどが読むと特に役立つと思います。

ただ、本書は6人の共著であること、加えて、最初の1章から3章が、雑誌の特集からもってきていることから、若干、構成がいまいちとなっています。どういうことかと言うと、後で解説される項目が、「○章で詳述します」としながら先に来てしまう箇所が14箇所ほどあるのです。この点は、マイナス点です。もっとも、一通り読み終わった後、再度、最初の理論の部分から読み直すことでカバーできます。よく言えば、読み直すことで理解が深まります。あと欲を言えばXPとの詳しい対比があると良かったかなと思います。

プロジェクトが上手く回らない開発現場で悩んでいる開発者やプロジェクト・マネージャーは、本書を読むと良い解決策が見つかるかもしれません。

スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus)

カテゴリー: BOOK, アジャイル開発 | コメントする

【書評】コーディングを支える技術 ~成り立ちから学ぶプログラミング作法

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 の書評です。

結論から言うと、プログラミング言語の「歴史」と「比較」を通して、プログラミングの重要な『概念』の理解を深められるユニークな一冊です。

■ 良い点
・ 基礎的な概念を高度な視点で見直せる
・ プログラミングの概念の由来がわかる
・ 「へぇ~」と言いたくなるトリビアが豊富
・ 読みやすくスラスラと読める
・ コラムが興味深い

■ 悪い点
・ 特にない。あえて言えば複数言語既習者でないと少し難しいかも

■ 総評
プログラミング言語における、比較言語学であり、また歴史言語学ともいえる一冊です。もっとも、言語学といっても身構えるものではなく、楽しく読める雑学書に近いので、気軽に読み通せます。全体で240ページほどとコンパクトにまとまっているのも良いです。

内容的には、言語にとらわれない汎用的な概念(たとえば、型、変数、関数、クラス等)について、その成り立ちや、言語間の比較を通して理解を深められるようになっています。

ただし、言語間の比較という視点であるため、C言語やC++、Java、そして、perlやruby、python等のスクリプト言語をある程度は知らないと少し難しいかもしれません。もっとも、全部を知っている必要もないですが。

プログラミング言語を2つ、3つと学習した頃に、本書を読むと重要な概念の整理になるのでお勧めです。

個人的には、『例外』の章や『クラス』の章はかなり興味深く読めました。なかでも、理解しづらい「クロージャ」や「MixIn」、「トレイト」等の成り立ちや意味が理解できたのは大きな収穫です。『関数』の章では、「再帰」などの節が秀逸です。

その他にも、雑学的なトリビアが豊富なので、一読しておくと薀蓄としても役に立つかもしれません。

プログラミングの概念について、成り立ちや意味から学習して理解を深めたい人にお勧めの一冊です。

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

カテゴリー: BOOK, プログラミング全般 | コメントする

【書評】やさしいC++ 第4版 (「やさしい」シリーズ)

やさしいC++ 第4版 の書評です。

結論から言うと、とてもわかりやすいC++の入門書です。最初に読むC++本として最適な一冊。

■ 良い点
・ コードの例やその説明が簡単でわかりやすい
・ 基礎的な文法は一通り網羅されている
・ コードの省略がなく、結果の表示も掲載されている
・ 章ごとのまとめやチェックポイントが良い
・ 章末の『練習』で復習として知識の確認ができる
・ 他のシリーズ本と重複の箇所があるため学習コストが低い

■ 悪い点
・ 特に無い。あえて言えば、文章に平仮名が多い

■ 総評
高橋麻奈さんによる、有名な『やさしい』シリーズのC++本です。

内容的には、C++の一通りの文法が網羅されています。いわゆる難関とされる、「ポインタ」や「クラス」について、十分わかりやすく説明されています。ただ、C++は範囲が広いので、ページ数が若干多く、560ページほどあります。

自分がこの本を選んで読んだ理由は、いわゆる「デザインパターン」に関するGoF本を読むためでした。C++で書かれ難解とされるGoF本も、この「やさしいC++」の知識でほぼ読了することができました。その点で、十分に満足できた一冊です。

なお、本書は、「やさしいC 第4版」や「やさしいJava 第5版」などと構成がほぼ同じで、説明も重複している箇所があります。この点は、学習コストが下がって得と捉えるか、内容が重複しているため損と捉えるか、人によって異なるかもしれません。自分は学習コストが下がる方が良いので、この点は、得と考えます。

これからプログラミングを始める人は、やさしいシリーズの「やさしいC」と「やさしいJava」そして、本書「やさしいC++」を併せて読むと言語間の違いが理解できるとともに、学習コストを抑えられるので良いかもしれません。

また、C++がわからないため、GoFのデザインパターン本を読むのを躊躇している人にもお勧めの一冊です。

やさしいC++ 第4版 (「やさしい」シリーズ)

カテゴリー: BOOK, C++ | コメントする