Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
安心安全な開発にむけて/matching-dev-meetup-5
Search
corin8823
January 29, 2020
Technology
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
安心安全な開発にむけて/matching-dev-meetup-5
https://matching-dev-group.connpass.com/event/158568/
corin8823
January 29, 2020
More Decks by corin8823
See All by corin8823
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
2
17k
経済学の知見を活かしたユーザに行動変容を促す仕掛け - タップルでの共同研究プロジェクトを例として
corin8823
1
170
新しい恋愛様式への挑戦/engineer_career_design_week
corin8823
0
200
Bad practice for tax hike handling
corin8823
0
630
Practice of build and CI/CD at tapple/practice_of_build_at_tapple
corin8823
1
290
「タップル誕生」における開発の変化 / change_development
corin8823
1
480
明日から使えるViewControllerの Memory Leak検出/iOSDC-2018-Memory-Leak
corin8823
6
2.8k
Introduction Differ/differ
corin8823
0
3.8k
マッチングアプリにつきまとう状態管理のつらさ/torte_state
corin8823
9
7.5k
Other Decks in Technology
See All in Technology
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
400
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.7k
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
420
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
550
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
550
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
160
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
700
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
2
470
go-sqletch
moznion
0
140
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
130
12 個 Tool と、 4,096 Token
hlum
0
140
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.5k
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
The browser strikes back
jonoalderson
0
1.8k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
Unsuck your backbone
ammeep
672
58k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
540
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
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でやりたい
懇親会で話しましょ