以下の内容はhttps://toranoana-lab.hatenablog.com/entry/2024/12/09/120000より取得しました。


「アーキテクトの教科書」を輪読してみた

「アーキテクトの教科書」を輪読してみた

本記事は虎の穴ラボ Advent Calendar 2024の9日目の記事です。

はじめに

こんにちは、虎の穴ラボでFantiaの開発をしているよしだです。
今年7月に発売された「アーキテクトの教科書」を、社外コミュニティにて知人と輪読会を行いました。本書の内容をその時の経験も踏まえて紹介します。

本書を輪読した経緯

私が本書を輪読会の候補として提案し、投票の結果選ばれたのですが、候補に挙げた理由は以下の通りです。

  • 前職ではSI業界でいわゆる上流工程で設計書を書いていたりしたのですが、設計やソフトウェアアーキテクティングを体系的に習ったわけでもなく、見よう見まね・四苦八苦しながら進めていました。その後の業務の中でも個々の技術ではなく体系的に設計などを学ぶことはなく、話題になっていたこの本を見て何か掴めるのではないかと考えました。
  • 身近なところで、虎の穴ラボではTechの役割を担うメンバーのうち等級が高いとアーキテクトという役割名になっていたり、各サービスのアーキテクティングをサポートするチームがいたりし、どういったことが求められるのかを知りたいと思っていました。

参加者にもこの本を読むにあたって意気込みを聞いたところ「すぐにアーキテクトになるわけではないが、世間のアーキテクトや先輩エンジニアが持っているスキルや視点が知りたい」というモチベーションが大半で、自分と近い人が多かったです。(参加者はエンジニア歴1~3年程度の経験が浅めの人が多い)

対象の読者

メインのターゲットはこれからアーキテクトを目指すエンジニアであり、アーキテクトの職務・求められるスキルの全体像を知るために読むのが良さそうです。
また熟練のエンジニアであっても、昨今のアーキテクトの事情を素早くキャッチアップするのに最適な一冊になっています。
注意点としてはアーキテクトも細分化すると色々な呼ばれ方があり、本書が取り扱っている内容は、ソフトウェアアーキテクトがメインです。ビジネスアーキテクトやインフラアーキテクトの職務は書かれていないので、もしそういった内容が知りたい場合は今年発売したITアーキテクト入門の方があっていそうです。

書籍情報

項目 詳細
タイトル アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築
著作者名 米久保 剛
ページ数 272ページ
発売日 2024/07/22
ISBN 9784798184777

紹介ページ www.shoeisha.co.jp

書籍の目次

第1章 アーキテクトの仕事  
1.1 現代のソフトウェア開発をとりまく環境  
1.2 アジリティ - 変化への適応能力  
1.3 アーキテクチャの重要性  
1.4 アーキテクトとは  
1.5 アーキテクチャ設計の昔と今  
1.6 アーキテクトに必要な資質

第2章 ソフトウェア設計  
2.1 ソフトウェア開発プロセス  
2.2 ソフトウェア設計の抽象レベル  
2.3 ソフトウェアの設計原則とプラクティス  
2.4 設計パターン

第3章 アーキテクチャの設計  
3.1 アーキテクチャ設計の概要  
3.2 アーキテクチャドライバの特定  
3.3 システムアーキテクチャの選定  
3.4 アプリケーションアーキテクチャの選定  
3.5 アーキテクチャの比較評価  
3.6 アーキテクチャの文書化

第4章 アーキテクチャの実装  
4.1 実装アクティビティにおけるアーキテクトの役割  
4.2 開発プロセス標準化  
4.3 ユースケース駆動のアーキテクチャ実装  
4.4 アプリケーション基盤の実装  
4.5 アプリケーション開発の準備  
4.6 構成管理とCI/CD

第5章 品質保証とテスト  
5.1 アーキテクトと品質保証活動  
5.2 機能テストの自動化  
5.3 パフォーマンステスト

第6章 アーキテクトとしての学習と成長  
6.1 アーキテクトとして成長するために  
6.2 効果的な学習方法  
6.3 良書から学ぶ

全体的な感想

幅広くざっくりとソフトウェアのアーキテクティングの世界を学ぶにはとても良い書籍でした。設計・アーキテクトの書籍は具体の技術を取り扱った中〜上級者向けの書籍が多いですが、本書は初〜中級者にも優しいと感じます。
もちろん多数のトピックを取り扱っているため、深く説明されていない部分については自分で深掘りする必要があります。
個人的には名前だけは知っていたクリーンアーキテクチャを、経費精算システムを題材としたケーススタディで、設計方針・実際のコンポーネント配置といった具体を見ることで解像度が上がりより勉強してみたいと思えました。
また後述しますが、他のエンジニアとディスカッションすることで更に具体例も聞くことができ、本書外の内容もより深められたと感じます。

各章の内容・感想

1章 アーキテクトの仕事

1章の前半は現在のソフトウェア開発を取り巻く不確実性の高い環境について書かれており、後半ではその中でのアーキテクトの職務・備えるべき資質について触れられています。
現代だとシステムの構築が数年で一度ということは稀で、変化に適応することが求められます。本書ではアーキテクトも設計力やコーディング力に加えてビジネスの理解やソフトスキルも求められることは一貫していました。

2章 ソフトウェア設計

よく知られているソフトウェアの設計原則や設計パターンが書かれています。
いくつかの設計原則はUML図やJavaのサンプルコードも記載されており、理解しやすいものとなっています。

3章・4章 アーキテクチャの設計、アーキテクチャの実装

本書の一番メインの章であり、いくつか例を挙げながらアーキテクチャの選定のポイントが語られています。
マイクロサービス、クリーンアーキテクチャ、DDD (ドメイン駆動設計)といったバズワードとして語られてしまいがちなものもいずれも図ありで説明があったのもありがたかったです。
機能の設計だけではなくアーキテクチャに関するドキュメンテーションや、要件定義時に考慮が漏れがちな非機能要件も触れられています。

5章 品質保証とテスト

品質保証やテストは開発とは不可分であり、設計を行うような早い段階でも品質保証活動を行う考え方(シフトレフト)の元、この書籍では各種テストも取り上げられています。
個人的には最近でも早いうちにテスト観点や受け入れ基準を考えておけば、という場面はあったので特に理解を深めたい章でもあります。

6章 アーキテクトとしての学習と成長

アーキテクトの人物像、業務知識・技術・ソフトスキル、学習方法が書かれています。
各章の内容を深めたいと思ったり、学習方法に迷った時には書籍の紹介も行われているので次のステップへの橋渡しとなっています。

輪読を通じて得られたもの

輪読会では、各章ごとに2名の発表者がFigJamやスライドに内容をまとめて発表し、気になった箇所にコメントをしていく形式をとっています。(私は1章後半と5章後半を担当)
輪読を通じて、ただ書籍を読むだけでは得られない以下の利点がありました。

  • 発表者は内容に関係のある記事を補足資料として共有するので、単純に書籍を読むより情報量を得ることができました。
  • 参加者の関わったことのあるシステムで使われているアーキテクチャや直面した問題など現場の声を聞くことで、より書籍の内容で重要な箇所の濃淡がわかりました。以下は話されたことの一部です。
    • (参加者内では)完全にマイクロサービスで運用しているシステムはなく、モノリスと戦っている現場もそこそこある。
    • 最近では意図を残すためにADRを書く現場も増えている。
    • 本ではJava/Spring Bootメインで書かれているけど、Railsでは密なアーキテクチャになっていて〇〇のような実装になっている。
    • アーキテクトに求められるスキルのうち、設計のスキルはまだ持っていないので学習してみたい。
  • システムについて話す際は機密に関わることは言えず、またそのシステム固有の具体的なことを話しても伝わらないので、抽象化して話す力がつきました。(具体と抽象に関する著者のNote記事

まとめ

本書では広く設計やアーキテクティングに関する内容が書かれており、当初のモチベーションとしてあったアーキテクトの全体像を掴むことができました。
加えて設計段階でのビジネス理解の必要性やソフトスキルが求められることも強調されており、アーキテクトを目指す上で総合的にスキルを磨いていきたいと感じました。

コミュニティでの輪読を通じて、書籍の内容を深掘りしたり発表することで自身の経験の棚卸しもすることができ、より理解が深まりました。
お時間のある方はぜひ本書を読んでアーキテクトの世界を知り、仲間内で読んだ感想や今までの経験、これからチャレンジしてみたいことを話し合ってみてはいかがでしょうか。

Fantia開発採用情報

虎の穴ラボでは現在、一緒にFantiaを開発していく仲間を積極募集中です!
多くのユーザーに使っていただけるtoCサービスの開発をやってみたい方は、ぜひ弊社の採用情報をご覧ください。
toranoana-lab.co.jp




以上の内容はhttps://toranoana-lab.hatenablog.com/entry/2024/12/09/120000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14