どうも!mofmofでエンジニアとかCTOとかをやっている橘です。
今回は社内で実施した「リファクタリング祭 vol1」をご紹介します!
「リファクタリング祭り」とは?
エンジニアの技術力向上の取り組みの一つとして社内で実施したイベントです。
ソースコードをみんなでリファクタリングすることで、方法や知見について社内共有を促すとともに、リファクタリングを遊びとして楽しみ、習慣化していくぞ。という願いを込めた祭典です。
今回はReact Nativeを用いて作っている自社プロダクトのソースコードをリファクタリングしました!
(mofmofでは受託開発だけでなく自社プロダクトも開発しています。そちらについてはこの記事を見てみてください)
なぜReact Nativeプロジェクトのリファクタリングをやったの?
社内でReactを採用するプロジェクトはたくさんあるのですが、良いコードに関する知見があまり共有されていませんでした。Reactで良いコードを書くということを考える場と、すでにある知見を共有する目的がありました。
どうやってやったのか
今回は以下のような構成で実施してみました。結構時間をかけてしっかりやるぞという雰囲気で全部で2週間位かけて行いました。
- モブコードリーディング会 & ルール説明会 1時間
- リファクタリング案発表会 1.5時間
- モブプロで実際にリファクタリング 1時間 × 5日
1. モブコードリーディング会 & ルール説明会
まず、リファクタリング祭の趣旨とルール説明後、モブコードリーディングを行いました。
ここで、「リファクタリング難易度は問わない(高難度でも効果が高そうなリファクタリングをしよう)」という大事なルールを設定しました。
これは、期間内に収まるリファクタリングではなく、効果を重視してリファクタリング候補を洗い出してほしかったために設定したルールです。
ドライバーを交換しつつ参加者全員でコードリーディングしていき、リファクタリング対象箇所をいくつか洗い出します。
洗い出した対象箇所にリファクタリング担当者を割り当てて、各自で設計してきてもらいます。
実際に出たいくつかの案↑
2. リファクタリング案発表会
1.のモブコードリーディングで各自の担当箇所について設計してきてもらったので、それを発表してもらいました。
Pull Requestの形式だったりDropbox Paperだったり形式は自由です。
発表後、どれを実際にリファクタリングしたいかを投票で決定!!
3. モブプロで実際にリファクタリング
投票で選ばれたリファクタリング案を1日1時間×5日かけてモブプログラミングで実施。
考えたとおりに実装できなかったりして大変でしたが、楽しい時間でした。
ただ、5日間でリファクタリングした結果、プロダクションコードへ反映できる状態まで持っていくことはできませんでした。
実際にリファクタリングを実施してみてわかる問題点や、設計ミスなどがわかり有意義な時間ではあったと思いますが、もっと良いリファクタリング祭をしたい!という思いを抱えての終了です。
感想
リファクタリング祭を実施してみて、自分が感じたポイントを上げてみます。
- 既存コードありきで考えるので、全体のアーキテクチャ戦略のようなところを考える場にはなりづらい
- 開催期間や拘束時間が長い
- 祭という名前の通りお祭り感があって楽しい
楽しいイベントだったので、改善して第2回をやってみたいと思っています!
mofmofではこのように楽しく学ぶ方法を考えて実践しています。
興味を持っていただいた方、ぜひ一緒に楽しく技術に取り組みましょう。