2025-4月の振り返り

2025/4月の振り返りを行いました。

やったこと

  • 研修
  • ソフトウェアアーキテクチャの基礎 -エンジアリングに基づく体系的なアプローチ- ~ 3章まで読了
  • annotaterbのコミットログを読んだ
  • ソニックガーデンジムに応募した

ソフトウェアアーキテクチャの基礎 -エンジアリングに基づく体系的なアプローチ- ~ 3章読了

3章まで読み終わりました。流れとしてはアーキテクチャの歴史、アーキテクチャを設計する上で意識する点などが説明されていました。
個人的ななるほどポイントは、以下の点でした。

  • アーキテクチャは常にトレードオフであること
  • アーキテクトと運用は乖離していた歴史があること
  • アーキテクチャと開発知識のインプット方法が異なること

アーキテクチャは常にトレードオフであること

「すべての問題を解決できるアーキテクチャは存在せず、常にデメリットが存在する」という点が非常に興味深かったです。
これまで、メリット・デメリットを洗い出す中で、デメリットがない状態を経験したことがありましたが、その実、デメリットを見落としているだけだと気づかされました。
そのことを踏まえ、状況に最適なアーキテクチャを選択するためには、デメリットも含めて判断することが重要であると学びました。
この流れを通じて、基本的なアーキテクチャ設計の進め方を理解し、より明確なイメージを持つことができました。

アーキテクトと運用は乖離していた歴史があること

過去、アーキテクトと運用の関係が官僚的であったことを知り、その結果として、双方のコミュニケーションが不足し、運用チームが問題をカバーする状況に陥っていたことが分かりました。
しかし、DevOpsの登場により、運用を考慮したアーキテクチャが生まれるようになったのです。

一方で、運用を過度に考慮した結果、サービス内に運用の関心事を盛り込みすぎて、システムが肥大化し、管理が複雑になってしまった事例もありました。
そこで、アーキテクチャをできる限りシンプルに保ち、運用に関する関心事は運用側に委ねるという考え方が生まれ、これがマイクロサービスアーキテクチャの基盤となったとのことでした。 アーキテクチャ設計と運用が1つとなっている現状しか知らなかったため、かなり驚きな過去でした..

アーキテクチャと開発知識のインプット方法が異なること

ここでは知識には3つの種類があるとされており、以下のように分類されています:

  • わかっていること(技術の深さを出す)
  • わかっていないことをわかっていること(技術の幅を出す)
  • わかっていないことをわかっていないこと

開発者としては「わかっていること」を増やし、専門性を高めていくことが求められる一方で、アーキテクトとしては「わかっていないことをわかっていること」を増やす必要があると説明されています。
理由は、アーキテクトは一定の専門性を持ちながらも、広く浅く他のソリューションを提案できる能力が求められるからです。
私はアーキテクトという役割について詳しくは知らなかったのですが、アーキテクチャと普段の開発知識ではインプットの方法が異なることを知り、それを意識しながら自分の学びを深めていきたいと思いました。

annotaterbのコミットログを読んだ

該当のgemの最近の動向を把握したい、またその中身をもっと深く理解したいという動機から、直近のコミットログを読んでいました。
活動頻度が高くないこともあり、ある程度流れを把握することができました。次は、過去のリリースに含まれたコミットログを読み進め、さらに深い理解を目指そうと考えています。

コミットログを読んでいると、普段意識しない領域の知識や書き方に触れることができ、クラス設計についても学びの一環として進んでいます。
特に、自分が現在クラス設計を学んでいる最中であり、その良い例として実際のコミットを通じて学べていることが大きな収穫だと感じています。

来月やっていきたいこと

  • ソフトウェアアーキテクチャの基礎 -エンジアリングに基づく体系的なアプローチ- ~ 7章まで読了
  • annotaterbの過去リリースコミットを読む