天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

11-15章『ソフトウェアアーキテクチャ・ハードパーツ』読書会に参加してきた

yasashii-agile.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

ソフトウェアアーキテクチャ・ハードパーツを読んで色々と議論をしていく会です。
ひとまずは読み切ることを意識してハイペースで本を読み進めて、気になるところを書き留める形式で進めており、今回は第10章まで読んでいきました。

会の様子

今回も、詳細な議論は後回しにして、気になる部分や気がついた部分の共有をしていきました。以下のような話が挙がっていました。

  • この本の説明だと、ワークフローとビジネストランザクションが似たような意味で使われているように思えるが、おそらくデータに対しての一連の処理が必要になる場合トランザクションと言っているように思える
  • オーケストレーション通信スタイルは、Facadeパターンとかなり近しいものを感じる。一方で、コレオグラフィ通信スタイルに関してはChain of Responsibilityパターンにかなり近しいものを感じる
  • 複雑だけれどスケーラビリティが高いアーキテクチャスタイルという記述は矛盾しているようにも思えた。複雑だけれど責任分離が適切になされており、サービス間の結合度が疎になっている場合はオーケストレーション通信スタイルに比べるとスケーラビリティが高いみたいな意味合いだと解釈した
  • 帯域幅が無限だという過信はあるある。サービス間通信が頻繁に発生するようなユースケースかつ画像データなどをやり取りする要件である場合に起こりがち。モノリシックなアーキテクチャに慣れていると、コンポーネント間通信と同じくらいの感度で考えてしまう場面を見る
  • 厳格なコントラクトと緩いコントラクトに関して、厳格なコントラクトは契約による設計だと考えられる。緩いコントラクトは契約による設計の対となる防御的プログラミングと考えることもできるが、どちらかというとサービス間の結合レベルの高低で理解した方がよさそうな印象はある
  • サービス間を疎結合にした結果、コードの重複率が上がることはよくある

会全体を通した感想

自分が参加した読書会の中でもだいぶハイペースで一冊を読み切りました。

このあとも、これまでブログで書いてきたような気になったことをベースにして、読書会が続く予定なので、そちらも非常に楽しみです。