本を手に取る前の私
なんかアプリケーション全体の設計とか決めれたらカッコいいな〜なんかないかな〜〜
「おっ!!何じゃこの本は!!(本を手に取る)」
ソフトウェアアーキテクチャの基礎
「基礎ってことはわかりやすく書いてくれとんのか? (表紙を見ながら)」
「お!!しかも体系的アプローチ!ざっくりアーキテクチャとは?的な解説してくれとんのかな?設計とか考えるのにめっちゃ良さそう!!(ワクワク)」
本を読んでるときの私
「お〜なるほど、トレードオフね。ほうほう」
「カタ..?なぜにカタカナ??」
「おほ〜ん、トポロジー...?メディエーター...?」
「おぉ...なんか突然交渉の話ししだしたぞ...???」
「読み終わった........(そっと本を閉じる)」
読み終わった直後の素直な感想
「この本の言いたかったことの5%くらいしか理解できてない気がする。。ホンマにこれがアーキテクチャの基礎なんか。。。?」
周りの人はどんな理解度やろ〜と思って色んな人のブログを漁ってみると、こんなことを言っているブログを見つけました。
本書はどういった層に書かれているか、これはずばり 2010 年代を乗り越えてきた経験者に向けてです。
私その頃中学生や。。。そりゃ理解できんわな。。。
完全理解を諦め本を投げ捨てようと思いましたが、せめて自分と同じようなバックグラウンドの人が同じ轍を踏まないように、また踏んだとしても何かしら得られるように(あとちょっとだけ自分のアウトプットの練習も兼ねて)、書きなぐっていこうと思います。
そもそも本書に対する認識の違い
読む前の本書への認識
アーキテクチャのことに全く知識がない状態で読むような「初心者向け」の本
読んだ後の本書への認識
アーキテクトになる際に知っておいた方が良い知識が書かれた本
補足すると、
この本はソフトウェアアーキテクチャの基礎的なことについて書かれている(多分)のですが、アーキテクチャに関する全く知識がない状態で読むような「初心者向け」の本ではないと思いました。まあよくよく考えてみれば、そもそも基礎知識が不足しているのに、基礎的な技術の組み合わせであるアーキテクチャについて理解することは難しいのはあたりまえですよね。本書を手に取る前の自分に一つアドバイスするなら「この本は『アーキテクチャの基礎』の本であって、『アーキテクチャの基礎の基礎』の本ではないぞ!!」と伝えたいです。
唯一内容が理解できた章
そんな私にも少しだけ理解できた章がありますので、それを紹介して本記事を終わりたいと思います。
「13章 サービスベースアーキテクチャ」
ざっくり解説
・ 機能ごとにサービスを分割し個別デプロイされているアーキテクチャ
・ 機能ごとに開発を進めることができる
・ UIやDBは機能ごとに分割しても良いし、しなくても良いという柔軟性を持っている
・ マイクロサービスアーキテクチャとモノリシックアーキテクチャのちょうど間くらいの分散具合
なぜこの章だけ理解できたか
- アーキテクチャの名称からおおよそどのようなアーキテクチャか想像がついた
- 近いアーキテクチャスタイルでの開発経験があったから
- DBやUIを分割する際の例がわかりやすかったから
- 極端なアーキテクチャ特性のものが紹介されている中で、このアーキテクチャだけのバランスが抜群に取れていて、個人的に「ええなぁ〜」と思ったから。
上記の中でもアーキテクチャの想像がついていたことが、理解できた要因として一番大きかったと思います。
本章でも相変わらず難しい単語や前提となる知識不足があったのですが、この章だけは仮説を持って読み進めることができたため、受け身ではなく仮説の検証という姿勢で読み進められました。
どんな本にも言えるとは思いますが、特に本書では「各章ごとに仮説を立ててから読み進める」ことをオススメします。私のような経験が浅めのソフトウェアエンジニアでも本書を楽しく読めるかもしれません。
まとめ
・ 本書はアーキテクチャに関する基礎知識がない初心者向けの本ではありませんでした。
・ もし私と同じような歴の方が読むのであれば、各章ごとに仮説を立てれば楽しく本書を読み進められるかも知れません
ここまで読んでいただきありがとうございました!