Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
安心安全な開発にむけて/matching-dev-meetup-5
Search
corin8823
January 29, 2020
Technology
0
450
安心安全な開発にむけて/matching-dev-meetup-5
https://matching-dev-group.connpass.com/event/158568/
corin8823
January 29, 2020
Tweet
Share
More Decks by corin8823
See All by corin8823
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
1
16k
経済学の知見を活かしたユーザに行動変容を促す仕掛け - タップルでの共同研究プロジェクトを例として
corin8823
1
130
新しい恋愛様式への挑戦/engineer_career_design_week
corin8823
0
180
Bad practice for tax hike handling
corin8823
0
570
Practice of build and CI/CD at tapple/practice_of_build_at_tapple
corin8823
1
250
「タップル誕生」における開発の変化 / change_development
corin8823
1
440
明日から使えるViewControllerの Memory Leak検出/iOSDC-2018-Memory-Leak
corin8823
6
2.5k
Introduction Differ/differ
corin8823
0
3.7k
マッチングアプリにつきまとう状態管理のつらさ/torte_state
corin8823
9
7.3k
Other Decks in Technology
See All in Technology
Amazon Quick Suite で始める手軽な AI エージェント
shimy
1
1.7k
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
3.3k
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
150
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
120
さくらのクラウド開発ふりかえり2025
kazeburo
2
660
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
190
AI with TiDD
shiraji
1
260
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.1k
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
180
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
140
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
210
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
110
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
250
Statistics for Hackers
jakevdp
799
230k
Navigating Team Friction
lara
191
16k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
29
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
73
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
200
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Designing Experiences People Love
moore
143
24k
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
370
Transcript
安⼼安全な開発にむけて / / MatchingDevMeetup # Yusuke Takahashi / @corin
About Me • Yusuke Takahashi / @corin • 2013年 CyberAgentに⼊社
• 2018年 MatchingAgentに出向 • 現在はiOS テックリード • ラコステよく着てます
安⼼安全?
安⼼安全
僕らも安⼼安全に開発したい • 市場のスピード感やビジネス的な要件 • センシティブな情報を扱うため、バグると不安に - 機能だけじゃない品質 • とはいえどんどんリファクタリングもしていきたい
安⼼安全な開発にむけて / / MatchingDevMeetup # Yusuke Takahashi / @corin
Release train • 申請‧リリースを1週間に1回 - ⽊曜: 追加機能テスト完了‧タグ切り - ⾦曜: リグレッションテスト‧iOS申請
- ⽉曜: 1%リリース - ⽕曜: 100%リリース https://tech.mercari.com/entry/ / / / アプリを安全にリリースするための取り組み(Release trainとClient release process)
追加機能テスト • 仕様書共有 • 機能オリエン • テスト項⽬書作成 • エンジニアと読み合わせ •
実施
Regression Test • アプリのメインループが正常通りに動くか • 不具合があったらissue化 - すぐ対応するかどうかは、要相談 • すぐ対応しない場合は別レポジトリへ移動し、数を追う
- ある⼀定以上増えたら対応しなければならないルール
Rearchitecture • MVVM + Flux • ViewController : ViewModel •
ViewModel : Action, Store • Singleton Dispatcher - 画⾯間のデータのやり取りを実現 - 物によってはSingleton Storeもある
Rearchitecture 5PQ7. 5PQ4UPSF 5PQ"DUJPO %JTQBUDIFS
Rearchitecture %JTQBUDIFS 5PQ%FUBJM7. 5PQ%FUBJM4UPSF 5PQ%FUBJM"DUJPO
Rearchitecture 5PQ7. 5PQ4UPSF %JTQBUDIFS 5PQ%FUBJM7. 5PQ%FUBJM4UPSF 5PQ%FUBJM"DUJPO
Rearchitecture • .app: 本体 • Component: TappleにおけるUIComponent集 • Resource: 画像やテキスト
• Flux: 共通で使うFlux • Entity: 本体で使うEntity • Kit: APIClientやAPIResponse、Logger等 • Extension • etc
Test coverage • .app: %~ % • Component: これから •
Flux: % • Entity: % • Kit: ~% • Extension: %
Feature Flag / AB Testing • 仮設を⽴てて⼩さくリリース • Remote Configを⽤いてA/Bテスト
- FirebaseABTestingで効果検証したり - ⾃分たちでも検証できるように
UICatalog / Screenshots test • View部分をFramework化(Component) • スタンドアローンで動く⽤のStoryBook.appを作成 • スクリーンショットテストをやる
• Viewの細かい修正はStoryBookでやりたい
懇親会で話しましょ