🔧
2023年の開発部祭り振り返り

myuon

myuon

2023年12月4日

2023年に開発部内で開催した改善の祭りの振り返りをします

この記事は matsuri technologies 株式会社 Advent Calendar 2023 の 3 日目の記事です。

# 祭りについて

matsuri technologies の開発部では、プロダクトの改善や技術的負債の解消(具体的には、ライブラリのバージョンアップや移行作業など)を行う際に、期間を定めて全チームで一斉に解消する活動(通称:祭り)を行っています。

2023 年に開催された祭りを振り返っていきます。

過去の祭りの例:

React 18 アップグレード祭り開発チーム一丸となり2022年6月中旬から7月末を開催期間として各プロダクトのReactをアップグレードしようという取り組みをしました。フロントエンドエキスパートとして、エラーを報告を受けQ&Aを作成するなどをしていたので、その立場からパッケージのアップグレードにどう取り組めば良いのか、実際に報告されたエラーとその対応方法についてまとめます。

全ては振り返れないので、いくつかピックアップして振り返ります。

# renovate 導入祭り: バックエンド 03/01 - 03/15, フロントエンド 04/05 - 04/19

renovate をリポジトリを中心に導入しました。 バックエンド 10 リポジトリとフロントエンド 14 リポジトリに導入しました。

弊社では dependabot を使っていたこともありますが、renovate の方が高機能なので全体で renovate を使っていこうという方針になり、最近ではそちらを主に使っています。

# golangci-lint 導入祭り: 03/22 - 04/05

Introduction | golangci-lintFast Go linters runner golangci-lint.Introduction | golangci-lint

Go の linter である golangci-lint を導入しました。 golangci-lint はかなり有用なものも含んでいるので、みんなで入れたいねということで導入しました。

これの導入をきっかけにバグに気づいて修正することができたものものあるので、そこもよかったです。 今回はあくまで導入がメインの目的で、既存のコードでエラーが出るようなものについては、一部 nolint で黙らせて進行したものもあります。

# aws-cdk v2 祭り: 04/20 - 05/02

https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/migrating-v2.html

弊社では AWS 上の IaC で全面的に aws-cdk を採用していますが、メジャーバージョンのアップデートの作業があったのでみんなでやりました。 aws-cdk-lib へ移行することで個別にたくさんのパッケージをインストールする必要がなくなったので、依存関係の管理が楽になったかなと思います。

# React Router v6 祭り: 07/03 - 07/21

Upgrading from v5 v6.22.1Upgrading from v5 v6.22.1

React Router の v6 が出てしばらく時間も経ったので、v5 から移行しました。 react-router-dom-v5-compat もありますが、どのチームも一度にあげることを選択したようです。

かなり大きめの変更になったプロダクトもありましたが、無事に移行ができてよかったです。

# suppressImplicitAnyIndexErrors を削除する祭り: 08/17 - 08/30

TypeScript 5.0 で非推奨になった suppressImplicitAnyIndexErrors を tsconfig.json から削除する祭りを行いました。 これを削除することで型チェックが厳しくなり、object の index アクセスで間違った型経由でアクセスしていたようなものをエラーにすることができます。

型チェッカーが厳しい方がバグを防げて有用であるため、削除する方向で祭りを開催しました。

実際にこの移行に際して、明らかにバグと思われる(この indexing だと常に undefined しか返さないと思われる)ようなコードをいくつか発見・修正できたので有意義な祭りだったかなと思います。

# AWS Lambda の go1.x からカスタムランタイムへの移行祭り: 10/18 - 11/07

Matsuri-tech Backend Weekly 2023-08-29社内向けに、バックエンド関連のニュースや業務で発生したQ&A、利用しているライブラリなどの情報を定期的に書いています。

以前に Matsuri Backend Weekly でも触れたのですが、AWS Lambda の Go1.x ランタイムのサポートが 2023 年の年末で終了するとのことで、移行作業を行いました。

移行する過程で、AWS のアカウントにかなり古い Lambda の関数が残っていることがわかって最終呼び出し日時を調べたりなど、事前準備は少し大変だったかなと思います。

無事に移行できて、現在も問題なく動いているのでよかったです。

# 終わりに

この他にも、社内で開発・利用をしている UI ライブラリのバージョンアップやドキュメントに関する祭りなど、2023 年も開発部内で様々な改善ができたかなと思っています。

2024 年も引き続き改善に取り組んでいきたいと思います!

また、1 年を振り返って書くのは意外と難しいので、もうちょっとこまめに祭りの振り返り記事などを書いていきたいと思いました!(自戒を込めて)