Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#merpay_techtalk Feature branchを使わないFeature開発

#merpay_techtalk Feature branchを使わないFeature開発

@ku KUMAGAI

March 18, 2021
Tweet

More Decks by @ku KUMAGAI

Other Decks in Technology

Transcript

  1. 3 1. Feature frameworkを生成する ./bin/init_framework.sh MerpayFooKit 2. Feature branchを作る git

    checkout -b feature/foo 3. デイリーでmainブランチをマージしつつ開発 4. feature/foo ブランチでメルカリアプリをビルドしてQA メルペイでの新機能開発
  2. 7

  3. 8 • コンフリクト ◦ なぜ起きるのか ▪ 共通のenumやLocalizable.stringsへの追加 ▪ 共通のコンポーネントへの機能追加 ◦

    30分もかからないが毎日起きるとばかにならない (1日の5% * 開発期間) • リリース時のマージ ◦ Featureのリリースが重なるとコンフリクトの解決が大変 (になる可能性) ◦ 本来はすべてのコードがマージされている状態で QAすべき 問題
  4. 10 • コンパイル時のフラグ #if ◦ 各featureの #if がたくさんあるとコードが読めなくなりそう ◦ リリース後に取り除くのもめんどくさい

    • 実行時のフラグ ◦ 上記の問題+ ◦ リリースの何ヶ月も前からバイナリに featureが含まれてしまう ◦ バイナリサイズ ブランチが嫌ならフラグを使えばいいじゃない
  5. 16 Activityの定義上enumに新機能のcaseを追加する必要がある enum Activity { enum Foo { case signup

    } case FooActivity } → raw valueがStringでなければ名前自体はバイナリに含まれない merpay固有の事情