Slide 1

Slide 1 text

© commmune Inc. All rights reserved 新規機能開発に負けない。 ビッグバンリリースに立ち向かう方法 1

Slide 2

Slide 2 text

© commmune Inc. All rights reserved 自己紹介 2 栗山 敦任(kuriyama atsunori) コミューン株式会社, サーバサイドEM - 福岡→札幌→大都会東京 - 妻とネコ氏2匹 - ドラム, トロフィー集め、麻雀 #ReactLT

Slide 3

Slide 3 text

© commmune Inc. All rights reserved 新規機能開発してますか? 3 #ReactLT

Slide 4

Slide 4 text

© commmune Inc. All rights reserved ビッグバンリリースしてませんか? 4 #ReactLT

Slide 5

Slide 5 text

© commmune Inc. All rights reserved ビッグバンリリースとは 5 修正・変更範囲のとても広いリリース - 大きめの新規機能をまるっとリリース - 1万行を越える差分 - 数百ファイルに及ぶ変更 #ReactLT

Slide 6

Slide 6 text

© commmune Inc. All rights reserved ビッグバンリリースすると何が辛いのか 6 修正・変更範囲のとても広いリリース - 差分が大きいからレビュー大変 - 本番環境で動確する範囲が広い - バグってた時の切り戻し - 「え、これrevertするの…?」 #ReactLT

Slide 7

Slide 7 text

© commmune Inc. All rights reserved とにかくめちゃめちゃ辛い 7 #ReactLT

Slide 8

Slide 8 text

© commmune Inc. All rights reserved フィーチャートグルで 分割リリースしよう 8 #ReactLT

Slide 9

Slide 9 text

© commmune Inc. All rights reserved フィーチャートグルとは 9 フィーチャートグルは、ソフトウェア開発 において、複数のソースコードのブランチ(機能ブランチ)を維持するのとは別の方法 を提供しようとする手法である。 ~ 機能トグルを利用すれば、開発者たちはメインのトラックに頻繁にソースを統合しつつも、開発中の機能へ入っていける実行 経路のトグルを「OFF」にしておけば、その機能は「死んだ」状態になる。新しい実行経路を有効にするための労力は、単にト グルを「ON」に設定するだけなので、十分に小さい。 https://ja.wikipedia.org/wiki/フィーチャートグル #ReactLT

Slide 10

Slide 10 text

© commmune Inc. All rights reserved フィーチャートグルとは 10 何かしら動的なパラメータをユーザ側で設定してあげる事で ある機能の on/off を実現する仕組み → 基本何もしなければ機能は off のままなので、 実装途中の変更分を本番リリースしても問題なし #ReactLT

Slide 11

Slide 11 text

© commmune Inc. All rights reserved どう実現するか 11 - フィーチャーを有効にしたいページのURLにhashを乗せる - https://commmune.com/feature#hash(任意の文字列) - hashの有無でフィーチャーの on/off を判定する処理を作成 - 個別に↑を呼び出して on/off 判定、処理を分岐させる #ReactLT

Slide 12

Slide 12 text

© commmune Inc. All rights reserved 実際に使ってみる 12 - 特定のフィーチャーが有効かどうか判定する処理を用意 #ReactLT

Slide 13

Slide 13 text

© commmune Inc. All rights reserved 実際に使ってみる 13 - コンポーネントの出し分けをしたい #ReactLT

Slide 14

Slide 14 text

© commmune Inc. All rights reserved 実際に使ってみる 14 - API の呼び出し先を切り替えたい #ReactLT

Slide 15

Slide 15 text

© commmune Inc. All rights reserved まとめ 15 - タスクの粒度が小さくなった - レビューが楽に - 動確も楽に - バグってた時の切り戻しも楽に - 少しずつ本番リリースしていくので精神衛生上とても良い #ReactLT

Slide 16

Slide 16 text

© commmune Inc. All rights reserved 分割リリースやっていきましょう 16 #ReactLT