この記事はエイチーム引越し侍/エイチームコネクトの社員による、Ateam Hikkoshi samurai Inc.× Ateam Connect Inc. Advent Calendar 2021 14日目の記事です。
どうも。エイチームコネクトのエンジニア、@mfuzです。今一番欲しいものはエンボディチェアです。
皆さんはコードレビューを投げてもなかなか帰ってこないなと思ったことはないでしょうか。
それはもしかすると、マージリクエスト(プルリクエスト)の内容があまりよろしくなかったのかもしれません。
そこで、コードレビューの負担を減らすためにマジリク(プルリク)を分割してみたので、そのことについて書いていきたいと思います。
Diffがごちゃごちゃしてつらい
施策には複数の機能の組み合わせでなりたっていると思います。
これまでは施策単位でブランチが作られているため、
Diffに複数の機能が散りばめられ、レビューの際に処理を追うのが辛くなっていました。
そこで、いっそブランチを機能別に分けてみようと思いました。
コミットで整理する手もあるかと思いますが、
レビュー後に追加が発生した際に、そこだけが切り離された状態になってしまいます。
機能別にブランチを分けてみる
cherry-pickでもってくる
機能別にファイルが分割されていればこの方法だけでできます。
機能別にブランチを作り、大本の作業をしているブランチからそれぞれでcherry-pick
します。
ですが、同一ファイルを編集しているとcherry-pick
する際にコンフリクトが発生してしまいます。
共通branchつくる
別々の機能で同じファイルを参照する必要があるビューのファイルや設定ファイルなどは、
それらのファイルのみのブランチなどのわけてあげると良いです。
そのブランチから各機能のブランチをつくるとコンフリクトは発生しづらくなります。
やってみて感じたメリット・デメリット
メリット
極力コンフリクトを避けるような方針で設計をするので、コードとファイルが整理された気がしました。
デメリット
慣れるまで時間がかかります。
さいごに
コードレビューの負担を減らすためにマジリク(プルリク)を分割してみた。いかがでしょうか?
まだまだ試行錯誤中ですので、他に良い案があれば教えていただけるとありがたいです。
明日は@tanimoto-hikariさんが担当します。お楽しみに!