Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
安⼼安全な開発にむけて / / MatchingDevMeetup # Yusuke Takahashi / @corin
Slide 2
Slide 2 text
About Me • Yusuke Takahashi / @corin • 2013年 CyberAgentに⼊社 • 2018年 MatchingAgentに出向 • 現在はiOS テックリード • ラコステよく着てます
Slide 3
Slide 3 text
安⼼安全?
Slide 4
Slide 4 text
安⼼安全
Slide 5
Slide 5 text
僕らも安⼼安全に開発したい • 市場のスピード感やビジネス的な要件 • センシティブな情報を扱うため、バグると不安に - 機能だけじゃない品質 • とはいえどんどんリファクタリングもしていきたい
Slide 6
Slide 6 text
安⼼安全な開発にむけて / / MatchingDevMeetup # Yusuke Takahashi / @corin
Slide 7
Slide 7 text
Release train • 申請‧リリースを1週間に1回 - ⽊曜: 追加機能テスト完了‧タグ切り - ⾦曜: リグレッションテスト‧iOS申請 - ⽉曜: 1%リリース - ⽕曜: 100%リリース https://tech.mercari.com/entry/ / / / アプリを安全にリリースするための取り組み(Release trainとClient release process)
Slide 8
Slide 8 text
追加機能テスト • 仕様書共有 • 機能オリエン • テスト項⽬書作成 • エンジニアと読み合わせ • 実施
Slide 9
Slide 9 text
Regression Test • アプリのメインループが正常通りに動くか • 不具合があったらissue化 - すぐ対応するかどうかは、要相談 • すぐ対応しない場合は別レポジトリへ移動し、数を追う - ある⼀定以上増えたら対応しなければならないルール
Slide 10
Slide 10 text
Rearchitecture • MVVM + Flux • ViewController : ViewModel • ViewModel : Action, Store • Singleton Dispatcher - 画⾯間のデータのやり取りを実現 - 物によってはSingleton Storeもある
Slide 11
Slide 11 text
Rearchitecture 5PQ7. 5PQ4UPSF 5PQ"DUJPO %JTQBUDIFS
Slide 12
Slide 12 text
Rearchitecture %JTQBUDIFS 5PQ%FUBJM7. 5PQ%FUBJM4UPSF 5PQ%FUBJM"DUJPO
Slide 13
Slide 13 text
Rearchitecture 5PQ7. 5PQ4UPSF %JTQBUDIFS 5PQ%FUBJM7. 5PQ%FUBJM4UPSF 5PQ%FUBJM"DUJPO
Slide 14
Slide 14 text
Rearchitecture • .app: 本体 • Component: TappleにおけるUIComponent集 • Resource: 画像やテキスト • Flux: 共通で使うFlux • Entity: 本体で使うEntity • Kit: APIClientやAPIResponse、Logger等 • Extension • etc
Slide 15
Slide 15 text
Test coverage • .app: %~ % • Component: これから • Flux: % • Entity: % • Kit: ~% • Extension: %
Slide 16
Slide 16 text
Feature Flag / AB Testing • 仮設を⽴てて⼩さくリリース • Remote Configを⽤いてA/Bテスト - FirebaseABTestingで効果検証したり - ⾃分たちでも検証できるように
Slide 17
Slide 17 text
UICatalog / Screenshots test • View部分をFramework化(Component) • スタンドアローンで動く⽤のStoryBook.appを作成 • スクリーンショットテストをやる • Viewの細かい修正はStoryBookでやりたい
Slide 18
Slide 18 text
懇親会で話しましょ