「はじめての設計をやり抜くための本」

先日こんな本を買いました。

はじめての設計をやり抜くための本 第2版 概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで | 吉原 庄三郎 |本 | 通販 | Amazon

まだまだ設計についての知識は足りてないなと感じる部分が多いので改めて概論から学ぼうと思った次第です。

表紙にも「概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで」とあるので気になるところは網羅できそうな感じです。

で、読んでみたんですが正直イマイチでした。

なので今回はこの本について書いてみたいと思います。

概要

本書は導入編・設計編・アーキテクチャ編の3部構成になっています。

そもそもなんですがこの本は自社開発企業のWebエンジニアではなく、SIerを想定して書かれたものであることに読み始めてから気づきました。

なのでアプリケーションの設計手法というよりも業務パッケージ開発の上流工程のための本といったところです。

表紙だけじゃなくちょっとだけでも中身を見てから買うべきでした。

とはいえ参考になる部分が無かったわけではありません。

3章の概念モデリングやデータベース論理設計の話は実践でも活かせそうでした。

特にデータベース設計については以前このブログでも書いた正規化の話がより詳細に解説されていました。

気になった点

読んでみて気になった点をいくつか挙げたいと思います。

設計以外の話に逸れることが多い

上でも述べたように本書はアプリケーションの設計手法の本ではありません。

タイトルからして設計にフォーカスした本だと思ったのですが、そうではなくSIerの振る舞い的な話の割合もそこそこ多いです。

例えばベンダーとしてクライアントとどう向き合うかみたいな話がよく出てきます。

なので求めていたものと違うなぁと感じました。

一つ一つの内容が薄い

↑と関連しますが、文量が多い割に話があちこちに逸れるので内容はそこまで濃くありません。

「はじめての」とあるので初心者向けの概説と思えば仕方ない部分かなとも思います。

用語の使い方が間違っている?箇所が散見

一番気になったのはこれです。

例えば6章「アーキテクチャ設計のアプローチ」の「依存性の注入(DI)」の項で、

つまりDIを使うことで、クラスが持っていた責務を外部に委譲し、依存関係を減らすことができるのですが、その分、クラスの内部構造を少し外部に露呈することになります。

「はじめての設計をやり抜くための本 第2版 概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで」吉原 庄三郎著 p.294

とありました。

前後を読み返してみても意図するところはよくわかりませんでしたが、これは違うでしょうと思います。

他にも、

TDD (Test Driven Development) は、テスト駆動開発とも呼ばれるもので、システム開発におけるテスト手法の1つです。

「はじめての設計をやり抜くための本 第2版 概念モデリングからアプリケーション、データベース、アーキテクチャ設計、アジャイル開発まで」吉原 庄三郎著 p.237

という文もあり、これも誤りです。テスト駆動開発はテスト手法ではなく「動作するきれいなコード」を書くための開発手法です。

このように、所々で用語の使い方が誤っていると見られる箇所があり、主にその意味でイマイチでした。

まとめ

技術本買う時はやはり中身を見てから買ったほうがいいなと改めて反省しました。

他にもまだ読んでいない本があるのでまた記事にしたいと思います。