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
安心安全な開発にむけて/matching-dev-meetup-5
Search
corin8823
January 29, 2020
Technology
0
350
安心安全な開発にむけて/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
経済学の知見を活かしたユーザに行動変容を促す仕掛け - タップルでの共同研究プロジェクトを例として
corin8823
1
14
新しい恋愛様式への挑戦/engineer_career_design_week
corin8823
0
110
Bad practice for tax hike handling
corin8823
0
440
Practice of build and CI/CD at tapple/practice_of_build_at_tapple
corin8823
1
180
「タップル誕生」における開発の変化 / change_development
corin8823
1
310
明日から使えるViewControllerの Memory Leak検出/iOSDC-2018-Memory-Leak
corin8823
6
1.8k
Introduction Differ/differ
corin8823
0
3.4k
マッチングアプリにつきまとう状態管理のつらさ/torte_state
corin8823
9
6.8k
新規アプリを作り始める前にチームで決めたこと
corin8823
1
4.9k
Other Decks in Technology
See All in Technology
KubeCon EU 2024 : Knative Maintainers Session
salaboy
0
370
初心者が行く!サーバレスWebアプリ開発の道
nagaharutogawa
0
440
私のRSpecの書き方 / How I write RSpec
tmtms
4
840
Autopsy of a Cascading Outage from a MySQL Crashing Bug
jfg956
0
200
GitHub最新情報キャッチアップ 2024年3月
dzeyelid
17
3.2k
Kubeflow Pipelines v2 で変わる機械学習パイプライン開発
asei
4
340
技術イベントはなんとかひねり出す 日経の技術広報の取り組み/techpr3
nishiuma
0
230
匠MethodとRDRAとICONIXとDDDで実現する一気通貫オブジェクト指向開発
haru860
4
2.1k
任意コード実行の原理
ffri
0
180
TypeScript Quiz (Encraft #12 Frontend Quiz Night)
uhyo
6
630
サービスメッシュ環境における OpenTelemetry 活用 / OpenTelemetry in Service Mesh
k6s4i53rx
2
860
技術広報経験0のEMがエンジニアブランディングをはじめてみた
coconala_engineer
1
130
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Design by the Numbers
sachag
274
18k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
Statistics for Hackers
jakevdp
789
220k
Mobile First: as difficult as doing things right
swwweet
215
8.5k
How GitHub (no longer) Works
holman
301
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
Designing the Hi-DPI Web
ddemaree
275
33k
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でやりたい
懇親会で話しましょ