『Go言語で構築するクリーンアーキテクチャ設計』のリアルな感想

Go言語で構築するクリーンアーキテクチャ設計 技術の泉シリーズ』を読んだ感想をレビューとしてまとめます。

この記事を書いているぼくは実務経験1.5年のRubyエンジニアです。

目次

なぜ購入したのか?

Go言語を手を動かして学べる教材を探していたからです。

Rubyしか経験がないため他の言語も学んでみようと思い、A Tour of Goを1周した状況でした。

その次のステップとして、書籍の内容を写経しつつクリーンアーキテクチャも学べたら一石二鳥かなと考え、購入しました。

最初の印象

大きく次の2つの印象を持ちました。

  1. コンパクトにまとまっていて読みやすい
  2. アーキテクチャの説明が多い

1に関して、本書に限らず技術の泉シリーズはページ数が少ないためサクッと読みやすいです。

また2に関して、ぼくはGoのキャッチアップを一番の目的にしていましたが、全4章のうち1,2章はアーキテクチャの意義やクリーンアーキテクチャの説明だったため、「求めていた内容とは少し異なるかも、、、」と思ったのが正直なところです。

ただ、ここで説明がしっかりあったからこそ、その後の流れが理解しやすかった側面もあるため、結果的には良かったと感じています。

実際に読んでみて

読み終えた感想は以下のとおりです。

ポジティブな感想

  • 第1, 2章のアーキテクチャの説明がわかりやすい
  • Goでクリーンアーキテクチャを実装するイメージが掴める
  • 各レイヤーでどのようなテストをすれば良いかが学べる
  • 「〜した方が良いと私たちは考えています」と、事実と解釈が分けて書かれている
  • レイヤー間で重複しているように見える処理に対して、どのような責務の違いがあるか学べる
  • どちらのレイヤーで実装すべきか迷う点について、著者の解釈が書かれている
  • 付録の「プロジェクト構成」が参考になる

ネガティブな感想

  • すでにGo自体はまあまあ触っている人向けだと感じた。アーキテクチャの理解に重点が置かれている。
  • 一部のコードは書籍の中に抜粋されているが、あくまでも各レイヤーの実装方法の説明に関係する部分だけ。
  • 本の流れに沿って写経しているだけでは全然完成しない(GitHubのリポジトリは共有されている)。

所感

ぼくのようにGoを学んでいる最中の人がハンズオン教材として活用するのは適していないと感じました。

これは書籍に問題があるわけではなく、単にぼくがこの本の対象読者ではないんだと思います。

実際、著者のQiitaを見ると、本書のペルソナとして「Goについては経験そこそこ(2 ~ 3年程度)」と記載されています。

Qiita
技術書典15で「Go言語で構築するクリーンアーキテクチャ設計」を頒布した話 - Qiita はじめに技術書典15にサークル名「コードカキタイ」で初参加し「Go言語で構築するクリーンアーキテクチャ設計」を頒布しました。https://techbookfest.org/product/9a…

その分、クリーンアーキテクチャの理解は深まりました。

たとえば以下のとおりです。

  • ドメインサービスを導入するタイミング
  • プレゼンテーション層におけるコントローラーとプレゼンターの違い
  • プレゼンテーション層とドメイン層におけるバリデーションの責務の違い
  • 各レイヤーにおけるテスト観点
  • トランザクションやgoroutineなどをどのレイヤーで扱うか?

ボリュームも多くないため、要点をサクッと学べる良書だと思いました。

個人的には写経するだけで完成する形式を望んでいましたが、そもそも書籍の紹介文に「ハンズオン」と明記されていた訳でもありません。

ぼく個人とのミスマッチであって、書籍の内容の問題ではないと感じます。

こんな人はやめておけ

ぼくのようなGoの初学者が手を動かして学ぶ教材としてはふさわしくありません。

また、そもそもアーキテクチャや設計に対して全く知識がないエンジニアには難しいと思います。

たとえば「依存ってなに?」「インターフェースってなに?」みたいな状態で読んでも得られる知見は少ないと感じます。

また、この本に書かれているのは1つの解釈です。

本から得た知識を自分なりに咀嚼して、日々の業務に転用できるだけの知的体力を持つ人でないと厳しいと感じました。

とくにGoはRubyにおけるRailsのようにデフォルトの推奨構成が存在するわけではないため、この点はなおさら重要ですね。

まとめ

  • クリーンアーキテクチャの各レイヤーの役割はざっくり理解してるけど実装のイメージができていない
  • レイヤー間の明確な責務の分担が難しく感じている
  • どのレイヤーで実装すべきか迷う点がある
  • 各レイヤーのテストはどこまでどんな観点でやるべきか、今ひとつ理解していない
  • Goに特化した内容でクリーンアーキテクチャを勉強したい

上記に当てはまる方にとっては大変コスパの良い1冊だと思いました。

この記事を執筆している2025年1月時点で、紙媒体は2,200円なのに対し、Kindle版は990円ととても安くなっています。

電子書籍に抵抗のない方はKindle版がお買い得なのでおすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

未経験でSESから従業員300名以上の自社開発企業に転職しました。業務や個人開発で直面した問題や、転職・学習の経験を発信していきます。

コメント

コメントする

目次