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
370
安心安全な開発にむけて/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
43
新しい恋愛様式への挑戦/engineer_career_design_week
corin8823
0
120
Bad practice for tax hike handling
corin8823
0
490
Practice of build and CI/CD at tapple/practice_of_build_at_tapple
corin8823
1
190
「タップル誕生」における開発の変化 / change_development
corin8823
1
340
明日から使えるViewControllerの Memory Leak検出/iOSDC-2018-Memory-Leak
corin8823
6
2k
Introduction Differ/differ
corin8823
0
3.5k
マッチングアプリにつきまとう状態管理のつらさ/torte_state
corin8823
9
7k
新規アプリを作り始める前にチームで決めたこと
corin8823
1
5k
Other Decks in Technology
See All in Technology
映像・音声伝送システム
jtes
0
200
Hazard pointers with reference counter
ennael
PRO
0
110
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
110
Pythonを活用したLLMによる構造的データ生成の手法と実践
brainpadpr
3
230
Webセキュリティのあるきかた
akiym
10
3.1k
低コストで実現する社内文書RAG機能を搭載したAIチャットボット開発
takapy
3
580
[JAWS-UG GameTech] 第6回 各種事例紹介_18TRIPにおけるAWSサービスを活用した負荷テスト・障害テスト
naoto_yasuda
0
100
OPENLOGI Company Profile
hr01
0
53k
Create Inquiry via Bedrock / 生成 AI で問い合わせ品質は変わるのか?思いついてぱっと作ったものを供養してみる
kazzpapa3
1
200
【shownet.conf_】コンピューティング資源を統合した分散コンテナ基盤の進化
shownet
PRO
0
300
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
1
190
業務ヒアリングと知識の呪い
tamai_63
0
110
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
279
13k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
A better future with KSS
kneath
235
17k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
42
6.5k
Speed Design
sergeychernyshev
22
460
Facilitating Awesome Meetings
lara
49
6k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Building Applications with DynamoDB
mza
90
6k
A Tale of Four Properties
chriscoyier
155
22k
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でやりたい
懇親会で話しましょ