$30 off During Our Annual Pro Sale. View Details »
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
SwiftUIで本格音ゲー実装してみた
hypebeans
0
460
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.2k
FluorTracer / RayTracingCamp11
kugimasa
0
240
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
450
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
130
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
440
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1.2k
Deno Tunnel を使ってみた話
kamekyame
0
190
dotfiles 式年遷宮 令和最新版
masawada
1
800
愛される翻訳の秘訣
kishikawakatsumi
3
330
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
790
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
91k
Evolving SEO for Evolving Search Engines
ryanjones
0
72
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
220
A Modern Web Designer's Workflow
chriscoyier
698
190k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Code Reviewing Like a Champion
maltzj
527
40k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.1k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
28
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
98
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
320
Joys of Absence: A Defence of Solitary Play
codingconduct
1
250
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