Timee Product Team Blog

タイミー開発者ブログ

PoEAAの輪読会を実施しました

はじめに

マッチング領域、ワーキングリレーションチームの@Juju_62qです。 タイミーでは有志のメンバーが集まって1年半ほど前から輪読会を行っています。 現在5冊の書籍を読み終わっています。

ブログのタイトルにもありますが、今回エンタープライズ アプリケーションアーキテクチャパターン(略称PoEAA)の輪読を実施しました。 書籍選定には以下のような狙いを置いていました。

  • 複雑なドメインをソフトウェアで扱うための術を身につける
  • アクティブレコードパターンにより詳しくなり、Railsを上手く扱えるようになる
  • 書籍に出てくるデザインパターンをきっかけとしてタイミーのアーキテクチャについて議論し、実験のきっかけを作る。

輪読会の方法

週1でmiroを利用して実施しています。 輪読会は参加者の「わからなかったこと」、「話してみたいこと」を掘り下げるような形で実施しています。 また、特別取り上げることは少ないですが、個人の感想や勉強になった場所を書けるようになっています。

「わからなかったこと」では参加者が書籍を読んでわからなかったことについて話します。 これは少し理解が曖昧な部分について、みんなで解説を行い理解を深めている様子です。

「話してみたいこと」ではタイミーの話や、ソフトウェアエンジニアリング一般で用途や使い分けについて話しています。 下記は「重ロック」の概念をタイミーのマッチングロジックに適用できないか話している様子です。

感想はそれぞれが自由に書いています。

輪読会では「参加者が少しでも参加前より理解できること」を目的に以下のような心構えを置いています。

本輪読会は読んだ人の疑問や議論したいことに基づいて意見交換をする形をとっています。したがって、参加者の協力がなければ良いものになることはありません。チームの学びを最大化するためにもあなたの思ったことを教えてください。 発言の正しさや凄さに関わらず、疑問、自分の意見を発言することに対して常にポジティブです。ファシリテーター及び参加者の皆さんはどんな意見も歓迎し、発言したことにまず感謝をするように努めてください。

特に今回は解釈が難しい書籍だったと思うので、「わからない」が主張しやすいことは大事だったと思っています。今後も参加者の「わからない」を大事にして運用していきたいと考えています。

学びや感想

岡野

Web Application Frameworkがよくできているというのを強く感じることができる書籍でした。 書籍の中に出てくるデザインパターンや考え方はタイミーでも実際に活かせることが多く、具体のテーブルやモデルについて議論ができるのはとても良い体験だったと思っています。 ActiveRecordドメインモデルの関係とかの話が2002年の段階で整理されていたのは本当にすごいです。

難波

タイミーのバックエンドはRuby on Railsを使っているので、この本を読むことでActive Recordの複雑さや大変さについて認識を新たにすることができたのはとても良かったです。書籍が発行された時代を感じるような課題意識や制約も多々ありますが抽象的に捉えることで現代でも参考になる部分はたくさんあったので、こういった過去の名著を一通り読んでみるのはオススメです。それにしてもLockは考えることが多くて本当に大変。

須貝

いつかは読みたいと思いながらなかなか読めずにいたPoEAAにチャレンジできて本当に良かったです。機会を作ってくれた輪読会主催メンバーに感謝しています。 書籍の中で紹介されているパターンが開発者間での共通言語となり「これは重オフラインロックでは?」といった会話がSlack上で発生することもありました。自分としてはまだまだ理解できていない部分もたくさんあるので今後も読み返していきたいと思います。 texta.fmの最初のほうのエピソードを聴くとRuby on Railsとの関係性も含めてさらに理解が深まるので本当におすすめです。自分はかなり助けられました。

終わりに

PoEAAは2002年とそれなりに古い書籍ではありますが、考え方は現代にも通じる良い本です。 ここに書かれている設計パターンはRailsでもたくさん実装されています。 複雑なビジネスを扱う上で強力な武器になると思うので、みなさんぜひ一度読んでみてください。