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
サーバサイドエンジニアと効率よく開発するためにやっていること
Search
Shinichiro Oba
January 13, 2017
Programming
2.3k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバサイドエンジニアと効率よく開発するためにやっていること
potatotips #36の発表資料です
https://potatotips.connpass.com/event/46832/
Shinichiro Oba
January 13, 2017
More Decks by Shinichiro Oba
See All by Shinichiro Oba
アッテ開発の技術:Swift と RxSwift
bricklife
19
17k
RxSwiftのobserveOnとsubscribeOnを理解する
bricklife
20
7.6k
Swift 2.0でRxSwift、ReactKit、ReactiveCocoaを使ってみた
bricklife
10
5.1k
ReactiveCocoaのゆるい紹介とメルカリでの活用事例
bricklife
3
3.9k
Apple Pay対応のやりかた
bricklife
1
25k
iOS版グローバル対応の罠と技
bricklife
8
24k
Other Decks in Programming
See All in Programming
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
450
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
330
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
270
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.6k
5分で問診!Composer セキュリティ健康診断
codmoninc
0
790
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
400
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
150
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.2k
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
430
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
Making the Leap to Tech Lead
cromwellryan
135
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Deep Space Network (abreviated)
tonyrice
0
250
Exploring anti-patterns in Rails
aemeredith
3
450
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
650
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Automating Front-end Workflow
addyosmani
1370
210k
Transcript
サーバサイドエンジニアと 効率よく開発するために やっていること ⼤庭 慎⼀郎 iOSエンジニア / メルカリ 2017/1/13 potatotips
#36 1
⾃⼰紹介 2 ⼤庭 慎⼀郎 ooba / bricklife iOSエンジニア / 株式会社メルカリ
-メルカリJP版の⽴ち上げ -メルカリUS版の⽴ち上げ -メルカリ アッテの⽴ち上げ -メルカリUK版の⽴ち上げ ← いまここ
メルカリの状況
メルカリのエンジニアの数 4 クライアントサイド(iOS) • 今⽉で7⼈になりました! サーバサイド • 60⼈くらい?? 正直何⼈いるかわからない… 圧倒的にサーバサイドのほうが多い
• サーバサイドエンジニアが開発しやすい環境がよい
開発拠点 5 ! " #
3拠点ある問題点 6 エンジニアは各拠点に点在している • JPが⼀番多い 各拠点間の時差が7〜9時間ある • 業務時間内でお互いに起きている時間が少ない やりとりの往復に時間がかかりすぎる •
なるべく往復を少なくしたい
効率的な開発のために
効率的に開発するためにやっていること 8 1. ⼿元ですぐにアプリを実⾏できる環境 2. 開発者向け機能の拡充 3. LLDB Pluginの活⽤ 4.
Charlesの活⽤
⼿元ですぐにアプリ を実⾏できるように
サーバサイドにアプリを使ってもらう⽅法 10 1. DeployGateやTestFlightによる配布 2. リポジトリからビルド
アプリの配布 11 開発環境アプリはDeployGateで配布 • Enterprise • パスワード付きの匿名配布 本番環境アプリはTestFlightも使う • プッシュ通知の確認などはTestFlight必須
リポジトリからビルド 12 チェックアウトしたらすぐに実⾏できる • CocoaPodsやCarthageをいれなくても、リポジトリを チェックアウトしてXcodeで開けばすぐに実⾏できる • git submodule or
バイナリ or コードまるごと • CIも早くなったり
開発者向け機能
本番環境アプリと開発環境アプリ 14 本番環境アプリと開発環境アプリの違い • APIサーバなどの向き先 • アイコンとデザイン • 開発者向け機能
本番環境アプリと開発環境アプリ 15
開発者向けメニュー 16 開発版だけに⼊っている • 本体を振ると出てくる できること • サーバの切り替え • 内部状態の確認
• 状態のリセットなど
開発者向けメニュー 17
実装の仕⽅ 18 #ifdef DEBUG - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if
(motion == UIEventSubtypeMotionShake) { // ։ൃऀ͚ϝχϡʔͷදࣔ } } #endif
LLDB Pluginの活⽤
LLDB Pluginによる出⼒整形 20 LLDB Pluginとは • デバッガに独⾃コマンドを作れる仕組み どう使っているか • APIのレスポンスが期待しているものと違うときなどに、
サーバサイドエンジニアに通信内容を伝えるために使う
よく使っているLLDB Plugin その1 21 NSArrayやNSDictionayをJSON⽂字列と して出⼒
よく使っているLLDB Plugin その2 22 NSURLRequestのインスタンスをcurlコマ ンドとして出⼒
jsonコマンドのコード 23 https://gist.github.com/bricklife/1f6bff179cf5bda5b99638afc25b248a
curlコマンドのコード 24 https://gist.github.com/bricklife/080533e6855c7aef2319baeac60d2b8e
LLDB Pluginの作り⽅ 25 iOSエンジニアのための LLDB Plugin ⼊⾨ http://dealforest.hatenablog.com/entry/ 2016/09/02/043048 ポイント
• Pythonで書く必要があるがPythonの知識はいらない • 実⾏部分はSwiftやObjective-Cで書ける
Charlesの活⽤
Charlesとは 27 • みんな⼤好きネットワークプロキシ・デバッグアプリ • HTTPS対応!
Charlesの実⾏画⾯ 28
Charlesでよくやること 29 ネットワーク通信の監視 • ブレイクポイントも貼れる リクエストやレスポンスのダンプ • 正確な内容を知りたいときに レスポンスの書き換え •
⼀部を書き換えたり全部を差し替えたり • API側がまだ新仕様に対応していないときに
Thanks!