クラウド給与の1stリリース時のコードを読む会を開催しました

こんにちは!
マネーフォワード クラウド給与のエンジニアのtnandateです。
今回は先日チームで開催した、「クラウド給与の1stリリース時のコードを読む会」について話そうと思います。

この記事はマネーフォワードアドベントカレンダー2021🎄の9日目の記事です。

なぜ開催しようと思ったのか?

クラウド給与チームでは毎週木曜日にクラウド給与のコードを読む会を開催しています。
この会は、チームメンバー全員で、クラウド給与のプロダクトコードやRuby, Railsのコードを読んでみたり、給与チームが直面している技術的課題についてディスカッションを行う会です。

最近は、新しく入ってきたメンバーが増えてきたため、プロダクトコードの理解のために、「クラウド給与の現在のアーキテクチャを読んでみる」といったことを行っていました。その中で渋谷さんが「クラウド給与の1stリリース時のcommitまで遡ってみて読んでみるのはどうだろう?」と提案してくれて、チームメンバーのほぼ全員がクラウド給与の1stリリース時のコードは読んだことがなかったので、面白そう!ということで開催に繋がりました。

開催方法

開催は2回に分けて行ってみました。
1回目は各自好きなところを読んでみる、2回目は給与計算の確定処理のロジックに限定して各自読んでみるといった感じです。

コードを読む時間は30分とっており、その間、zoomのチャットに各自感想を書いていきます。
コードを読む時間が終了した後は「どんな部分を読んだか」、「こういうことが分かった」、「こういったところが気になった」といったようなトピックをメンバーでディスカッションしました。

開催する前は30分は長いかなと考えていたのですが、いざ読んでみると、あっという間に時間が過ぎてしまいました。

当日のzoomのチャットにはこのようなコメントが流れていました。

  • そういえば、昔はgithubじゃなくてgitlabだったな。github経由でinstallしてなかったのか。
  • コード量少なくてgrepしやすい神
  • 今とまったく変わっていないコードをみかけるとなんだか母校の小学校に訪れたような気持ちになる
  • 2015年3月か。俺何やってたかな。。
  • CI の設定ないけどテストは手元での確認だけだったのかな。
  • 環境変数の管理はどのようにしていたのだろう?
  • このころエラー通知とかはどうしていたんだろう?
  • 世の中の誰もまだ知らなかったものがここまで成長していると思うと感慨深い

1stリリース時のクラウド給与は?

クラウド給与1stリリース時、2015/3/28のコミットまで遡ってみました。
rubyのバージョンは2.1.5, Railsのバージョンは4.1.9の世界です。

プロダクトコードを見てみても、ActiveJobがまだ存在しなかったり、&.が存在しなかったので、すべてtryを使っているのが見えたりして、当時の様子が感じられました。
また、機能の面で見ると、1stリリース時は給与計算と給与明細などの帳票の表示が主で、賞与計算や各種外部サービスとの連携などの機能がない世界で、僕が現在開発しているクラウド給与とは全く違う風景が見えて面白かったです。

実際に読んでみた感想

まず、給与計算部分のコアロジックがリリース当初と現在であまり変化していないことに驚きました。
こちらのブログでも紹介されていたように、多くの修正は行われてきたのですが、大まかな流れ、クラス設計やコード思想は維持されていると思いました。
このあたりが維持されていることが、リリースから6年経った今でも開発を続けられている要因のひとつかと思います。
この設計を作ってくれた1stリリース時のメンバーにはただただ感謝の気持ちでいっぱいです。

他には

  • 1stリリース時になかった機能はいつ追加されたのか?またなぜその時期に追加しようと思ったのか?
  • 1stリリース時にGemfileに存在していたが、現在では既に削除されているGemはどういった機能のGemで、なぜ削除されたのか?

といったことも知ることができました。

さいごに

1stリリース時のコードを読む会を開催して、リリース当初のプロダクトの様子や、当時のRuby, Railsの世界を覗くことができ、さらにプロダクトについて詳しくなれたと思います。
また、1stリリース時のメンバーへの感謝とリスペクトの気持ちが増しました。開催してよかったです!

ここまでお読みいただき、ありがとうございました!


マネーフォワードでは、エンジニアを募集しています。
ご応募お待ちしています。

【サイトのご案内】
マネーフォワード採用サイト
Wantedly
京都開発拠点

【プロダクトのご紹介】
お金の見える化サービス 『マネーフォワード ME』 iPhone,iPad Android

ビジネス向けバックオフィス向け業務効率化ソリューション 『マネーフォワード クラウド』

おつり貯金アプリ 『しらたま』

お金の悩みを無料で相談 『マネーフォワード お金の相談』

だれでも貯まって増える お金の体質改善サービス 『マネーフォワード おかねせんせい』

金融商品の比較・申し込みサイト 『Money Forward Mall』

くらしの経済メディア 『MONEY PLUS』

Pocket