Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新規機能開発に負けない。 ビッグバンリリースに立ち向かう方法
Search
Atsunori Kuriyama
October 29, 2021
Programming
0
1.5k
新規機能開発に負けない。 ビッグバンリリースに立ち向かう方法
Atsunori Kuriyama
October 29, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
testingを眺める
matumoto
1
140
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
320
Navigating Dependency Injection with Metro
zacsweers
3
960
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
130
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
240
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
530
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
600
チームのテスト力を鍛える
goyoki
0
100
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
1
230
Improving my own Ruby thereafter
sisshiki1969
1
160
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Designing for humans not robots
tammielis
253
25k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Unsuck your backbone
ammeep
671
58k
Faster Mobile Websites
deanohume
309
31k
Navigating Team Friction
lara
189
15k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Building Applications with DynamoDB
mza
96
6.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Transcript
© commmune Inc. All rights reserved 新規機能開発に負けない。 ビッグバンリリースに立ち向かう方法 1
© commmune Inc. All rights reserved 自己紹介 2 栗山 敦任(kuriyama
atsunori) コミューン株式会社, サーバサイドEM - 福岡→札幌→大都会東京 - 妻とネコ氏2匹 - ドラム, トロフィー集め、麻雀 #ReactLT
© commmune Inc. All rights reserved 新規機能開発してますか? 3 #ReactLT
© commmune Inc. All rights reserved ビッグバンリリースしてませんか? 4 #ReactLT
© commmune Inc. All rights reserved ビッグバンリリースとは 5 修正・変更範囲のとても広いリリース -
大きめの新規機能をまるっとリリース - 1万行を越える差分 - 数百ファイルに及ぶ変更 #ReactLT
© commmune Inc. All rights reserved ビッグバンリリースすると何が辛いのか 6 修正・変更範囲のとても広いリリース -
差分が大きいからレビュー大変 - 本番環境で動確する範囲が広い - バグってた時の切り戻し - 「え、これrevertするの…?」 #ReactLT
© commmune Inc. All rights reserved とにかくめちゃめちゃ辛い 7 #ReactLT
© commmune Inc. All rights reserved フィーチャートグルで 分割リリースしよう 8 #ReactLT
© commmune Inc. All rights reserved フィーチャートグルとは 9 フィーチャートグルは、ソフトウェア開発 において、複数のソースコードのブランチ(機能ブランチ)を維持するのとは別の方法
を提供しようとする手法である。 ~ 機能トグルを利用すれば、開発者たちはメインのトラックに頻繁にソースを統合しつつも、開発中の機能へ入っていける実行 経路のトグルを「OFF」にしておけば、その機能は「死んだ」状態になる。新しい実行経路を有効にするための労力は、単にト グルを「ON」に設定するだけなので、十分に小さい。 https://ja.wikipedia.org/wiki/フィーチャートグル #ReactLT
© commmune Inc. All rights reserved フィーチャートグルとは 10 何かしら動的なパラメータをユーザ側で設定してあげる事で ある機能の
on/off を実現する仕組み → 基本何もしなければ機能は off のままなので、 実装途中の変更分を本番リリースしても問題なし #ReactLT
© commmune Inc. All rights reserved どう実現するか 11 - フィーチャーを有効にしたいページのURLにhashを乗せる
- https://commmune.com/feature#hash(任意の文字列) - hashの有無でフィーチャーの on/off を判定する処理を作成 - 個別に↑を呼び出して on/off 判定、処理を分岐させる #ReactLT
© commmune Inc. All rights reserved 実際に使ってみる 12 - 特定のフィーチャーが有効かどうか判定する処理を用意
#ReactLT
© commmune Inc. All rights reserved 実際に使ってみる 13 - コンポーネントの出し分けをしたい
#ReactLT
© commmune Inc. All rights reserved 実際に使ってみる 14 - API
の呼び出し先を切り替えたい #ReactLT
© commmune Inc. All rights reserved まとめ 15 - タスクの粒度が小さくなった
- レビューが楽に - 動確も楽に - バグってた時の切り戻しも楽に - 少しずつ本番リリースしていくので精神衛生上とても良い #ReactLT
© commmune Inc. All rights reserved 分割リリースやっていきましょう 16 #ReactLT