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

懇親会で話しましょ