$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FeatureFlagを用いた新機能の安全なマージ&リリース / FeatureFlag
Search
lni_T
October 30, 2019
Programming
1
830
FeatureFlagを用いた新機能の安全なマージ&リリース / FeatureFlag
lni_T
October 30, 2019
Tweet
Share
More Decks by lni_T
See All by lni_T
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
780
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
240
ruby.wasmとWebSocketで遊ぼう!
lnit
0
200
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
6
3k
ruby.wasm × Service Workerでサーバーのいらないモックサーバーを作る
lnit
0
380
Railsアプリの仕様書を一瞬で作りたい話 - Omotesando.rb #99
lnit
1
370
ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
lnit
2
4.2k
Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023
lnit
4
6k
ruby.wasmでブラウザを酷使してみよう / 2023-MatsueRubyKaigi
lnit
0
1.8k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
230
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
0
100
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
150
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
10
2.9k
認証・認可の基本を学ぼう前編
kouyuume
0
260
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
370
クラウドに依存しないS3を使った開発術
simesaba80
0
120
Cap'n Webについて
yusukebe
0
140
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
160
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
440
AIコーディングエージェント(NotebookLM)
kondai24
0
210
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Skip the Path - Find Your Career Trail
mkilby
0
23
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
370
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
30
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
250
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
77
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
65
The SEO Collaboration Effect
kristinabergwall1
0
300
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
89
For a Future-Friendly Web
brad_frost
180
10k
Transcript
'FBUVSF'MBHΛ༻͍ͨ ৽ػೳͷ҆શͳϚʔδϦϦʔε !MOJ@5 .FFUVQGPS3BJMTFOHJOFFST
ࣗݾհ w 5XJUUFS!MOJ@5 (JU)VC!MOJU w .FE1FFS&OHJOFFS ʙ w ͖ͳ3BJMTͷϝιου
QSFTFODF w ݏ͍ͳ3BJMTͷϝιου BDDFQUT@OFTUFE@BUUSJCVUFT@GPS
ΫϦχοΫ։ۀࢧԉ ϓϥοτϑΥʔϜ
ͭͬͨ͘ͷ ਤ্Ͱ ݅୳͠ ڝ߹ͷఁ ױऀ༧ଌ ͕Ͱ͖Δ͍ͭ͢͝
ͦΜͳ৽ػೳ։ൃͷࠔΓࣄ ͷղܾࣄྫ
ʮ৽αʔϏε࡞Δͧʂʯ
ʮͨ͘͞ΜػೳͰ͖ͨʯ ͦͷޙʜ
ڊେ'FBUVSF#SBODI
ڊେ'FBUVSF#SBODI ৽ػೳ·Ͱͷಛେػೳϒϥϯν ͭΒ͍ ϨϏϡʔ͕Ͱ͖ͳ͍ ຊମϒϥϯνͱͷဃ
ଞνʔϜͱͷڝ߹ ϦϑΝΫλϦϯάͯ͠িಥ
EFWຊͰ͍͖͍ͨ
ϒϥϯνઓུ ϓϧϦΫΤετΛࡉ͔͘ຊମʹϚʔδ͢Δઓུ Կߟ͑ͣʹ࠾༻͢ΔͱϦεΩʔ ػೳ·Ͱίʔυ͕ϦϦʔεෆՄঢ়ଶʹ ࡞Γ͔͚ͷػೳͰϝϯόʔશһͷڥ͕յΕͨΓ ϒϥϯνཧ͍ͨΜ
None
ʮΑ͠ɺϦϦʔεͩʜʯ Α͏͘ʜ
ʮ͋ʂຊ൪ʹมͳ ɹσʔλ͕ʂʯ
ʮ͋ΕɺઌํͷωοτϫʔΫʹ ͭͳ͕Βͳ͍ʯ
ຊ൪ڥόάͷๅݿ ༧ظͤ͵ͭΒ͍ σʔλىҼ ωοτϫʔΫىҼ ઃఆىҼ
ͦͷଞॾʑڥࠩ
ͳΜͱ͔͍ͨ͠ ϒϥϯν͍ͨΜ ຊ൪͜Θ͍
ղܾΞϓϩʔν͍Ζ͍Ζ ϒϥϯν͍ͨΜ ৫ߏͷมߋ ίʔυ҆ఆԽ ػೳΛࡉ͔͘࡞Δ
ϦϦʔεՄೳ࣭Λอͭ ຊ൪͜Θ͍ ݕূڥͷඋ ຊ൪ʹ͍ۙςετσʔλ ڥࠩͷআڈ ຊ൪Ͱಈ࡞ݕূ͢Δ
ղܾΞϓϩʔν͍Ζ͍Ζ ϒϥϯν͍ͨΜ ৫ߏͷมߋ ίʔυ҆ఆԽ ػೳΛࡉ͔͘࡞Δ
ϦϦʔεՄೳ࣭Λอͭ ຊ൪͜Θ͍ ݕূڥͷඋ ຊ൪ʹ͍ۙςετσʔλ ڥࠩͷআڈ ຊ൪Ͱಈ࡞ݕূ͢Δ
ૉૣ͘ϦϦʔεՄೳʹ͠ ຊ൪Ͱݕূ͠Α͏
'FBUVSF'MBH 5PHHMF
'FBUVSF'MBH ػೳ͕ಈ࡞͢Δಈ࡞͠ͳ͍ΛΓସ͑Δػߏ ιʔείʔυσϓϩΠ͢Δ͕ɺ ػೳʮಈ࡞͠ͳ͍ʯঢ়ଶʹ͓ͯ͘͠ Ϛʔδͯ͠ಈ࡞Өڹͳ͠ ϦϦʔεՄೳʂ
OFX
'FBUVSF'MBH ػೳ͕ಈ࡞͢Δಈ࡞͠ͳ͍ΛΓସ͑Δػߏ ςετϢʔβʔʹ͚ͩެ։Ͱ͖ΔΑ͏ʹ͢Δ Ұൠެ։લʹຊ൪ڥͰςετ ຊ൪ා͘ͳ͍ʂ OFX
5FTUFS
࣮ͯ͠Ͳ͏ͳ͔ͬͨ
'FBUVSFϒϥϯνͷૣظ߹ྲྀ όοΫΤϯυଆEFWFMPQຊ 13Ͱ։ൃ ϑϩϯτΤϯυଆ࠷ॳ'FBUVSFϒϥϯνʹͳ͕ͬͨʜ ͦͷޙEFWFMPQʹ߹ྲྀͯ͠13Ͱ։ൃ EFWFMPQ GFBUVSF
҆৺Ͱ͖ΔϦϦʔε σϞ༻ΞΧϯτͰҰ௨Γಈ͘͜ͱΛࣄલ֬ೝ
҆৺Ͱ͖ΔϦϦʔε Τϥʔ௨͕དྷͯམͪண͍ͯ֬ೝͰ͖Δ
࣮ํ๏ ࣗϓϩμΫτͰͷҰྫ
'MJQQFS
'MJQQFSHFN IUUQTHJUIVCDPNKOVOFNBLFSqJQQFS ϑϥάཧͱذ੍ޚͷΈΛఏڙͯ͘͠ΕΔ if Flipper.enabled?(:search) search_hoge else puts
'nothing...' end Flipper.enable(:search)
อଘઌHFNͰΓସ͑ ྫ"DUJWF3FDPSEͰ%#ʹอଘ NJHSBUJPOϑΝΠϧ࡞ 'MJQQFSར༻࣌ʹ"EBQUFSΛࢦఆ ଞʹ3FEJT .POHP%#ͳͲͳͲ
adapter = Flipper::Adapters::ActiveRecord.new flipper = Flipper.new(adapter) $ gem install flipper-active_record $ rails g flipper:active_record
ݸผϢʔβʔରԠ؆୯ class User def flipper_id "User;#{id}" end end # ----
Flipper[:stats].enable(user) Flipper[:stats].enabled?(user) # true Flipper[:stats].disable(user) Flipper[:stats].enabled?(user) # false
ཧ6*༻qJQQFSVJHFN
ར༻ྫ $POUSPMMFS7JFXͰ͍͍͢Α͏ϥοϓ CFGPSF@BDUJPOͳͲͰ0/0''֬ೝͯ͠ʹ͢ΔͳͲ module DarkLaunch extend ActiveSupport::Concern included
do helper_method :authorized_feature? end private def authorized_feature?(sym) Flipper[sym].enabled? current_user end end
৽ن1+ະ࣮1+ ಋೖݕ౼ͯ͠Έͯʂ
'FBUVSF'MBH ڧΈɾऑΈ
҆ఆͨ͠։ൃͷॿ͚ʹ ϒϥϯνΛຊମʹ߹ྲྀ͍ͤ͢͞ িಥ͕ى͖ͮΒ͍ ຊ൪ڥͰಈ࡞ݕূ͍͢͠ ΤϯυϢʔβʔʹެ։͢ΔϦεΫ͕େ෯ݮ
҆৺ײ
Γ͕͠༰қ ΞϓϦɾ%#ͷϩʔϧόοΫෛՙ͕ߴ͍ 'FBUVSF'MBHͷ߹ϫϯλονͰΓྃ͠
҆શ͔࣮࣍ୈ ʮຊʹ'MBHͰ0/0''͢Δ͔ʁʯ࣮࣍ୈ ͪΌΜͱ୯ମςετ݁߹ςετ͠Α͏ ʮ$POUSPMMFS࠹͍͚ͩͲɺ ɹผը໘͔ΒͷϦϯΫ͕Δόά͕ʜʯͱ͔ ʮίʔυ͕σϓϩΠ͞ΕΔʯϦεΫ͋Δ
ςετϦϦʔεઓུ͔ͬ͠ΓཱͯΑ͏
ཞ༻Α͘ͳ͍ ͨͩͷذॲཧͳͷͰɺར༻Օॴ͕૿͑ΔͱࡶʹͳΔɻ جຊϢʔβʹݟ͑ͳ͍෦͔Βී௨ʹ࣮ͭͭ͠ɺ ΤϯυϙΠϯτΛ࠹͍Ͱ͍͘ɹͱྑͦ͞͏ɻ
ର߅Ͱ͖ͳ͍τϥϒϧ͋Δ ྫ%#ϨΠϠʔͷ ECNJHSBUF࣮ߦ ॏ͍ΫΤϦॲཧதʹ৽ػೳ͚ͷ"-5&35"#-&ൃߦ ଧͪͲ͜Ζ͕ѱ͘ॏཁͳςʔϒϧ͕ϩοΫ
ˠαʔϏεஅ ϦϦʔε࣌ͷਚ͖ͳ͍ʜ
·ͱΊ ػೳ0/0''ͷػߏΛ࡞ͬͯͤʹͳΖ͏ʂ 'FBUVSF'MBH ·ͨ'FBUVSF5PHHMF 3VCZͷ߹ʮ'MJQQFSʯͱ͍͏HFN͕͑Δ
ଞʹʮ3PMMPVUʯͱ͔͍Ζ͍Ζ ͪΖΜࣗલ࣮Ͱ0,ʂ ҆શͳϦϦʔεͷʲಛޮༀʳͰͳ͍Αʂ