RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

年末年始にソースコードのお掃除大会をした話

ラクスル事業本部サーバーサイドエンジニアの杉山です。2023年4月に新卒で入社しました。もう数か月で入社から1年とは、時の流れがはやいですね。 現在は印刷のラクスルにおける商品追加やその他運用・保守開発に携わっています。

今回の記事では、2023年12月末から2024年1月にかけて私の所属しているチームで行ったコードお掃除大会について紹介します。

お掃除大会とは

文字通り、リポジトリから不要コードを削除することを目的としたイベントです。チームの雑談Slackチャンネルで、私がふと思いつきを投稿したのがきっかけでした。

私たちのチームでは主に2つのリポジトリの開発を行っています。これらのリポジトリには、現在使われていないコードがそれなりに残されています。なかなか手をつけることができず、削除は後回しになりがちでした。そこで、年末年始のタイミングにイベントとして取り組めば、コードのお掃除が楽しくできるのではないかと考えました。

この投稿が思いのほか好評で、本当にお掃除大会が開催されることになりました。

Slackの投稿では、2023行のコードを削除した人が優勝ということになっていましたが、実際にはチーム内の合計で1万行の削除を目指すことにしました。 これは実施前の計画の時点で、2023行程度を削除できる箇所がなかったためです。

お掃除大会の実施

年末年始は大きなリリースがなく、コードを削除するタスクに取り組みやすいタイミングでした。 チーム内で削除したい箇所をタスク管理ツールに登録し、それをこなしていくという形で進めました。 削除したい箇所は、主に以下のようなものでした。

  • 過去に使われていたが、現在は使われていないコード
  • デバッグ用に残されていたコード
  • リファクタリングによって不要になったコード

実施において工夫した点として、お掃除のPRがマージ・デプロイされたらSlackのチームチャンネルに投稿するという形で進捗を共有しました。スレッドに投稿するようにして、進捗がわかりやすいようにしました。

担当したメンバーの名前も記載するようにして、誰がどれだけ削除したかもわかるようにしました。

お掃除大会の結果

削除の行数はGitHubのPRの差分から計算しました。追加された(+)行数と削除された(-)行数を合計したものを削除した行数としました。

結果としては、チーム内で3万行以上のコードを削除することができました。目標の1万行を大きく超える結果となりました。 なお、このうち約1万7千行はなぜかコミットされていたイラストレーターファイル(.ai)でした。イラストレーターファイルはGitHubではプレーンテキストとして扱われるんですね……。 他にも不要になったCSSや画像ファイルも削除しました。

コードの削除による障害はほとんど発生しませんでした。検証環境にしばらくデプロイしたり、削除のPRを分割してマージしたりすることで、障害を最小限に抑えることができました。

今後に向けて

今後も不要コードに向き合うために、定期的にお掃除大会を開催していきたいと思います。 すぐに削除できるコードは削除しつつ、削除や影響範囲の調査に時間がかかるコードはタスクとして残しておき、お掃除大会のタイミングで取り組むという形で進めていきたいと思います。

おわりに

今回は、チーム内でお掃除大会を開催した話を紹介しました。ふとした思いつきがチームとしての取り組みになるとは思っていませんでした。 これからも思ったことは積極的にチームに共有していきたいです。また、これをきっかけにコード削除についての議論も行うことができました。

あまり積極的にはなれないかもしれない不要コードの削除ですが、このようにイベント化すると楽しくできるのではないかと思います。ぜひ、皆さんもやってみてください!