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
tuvy
June 18, 2018
0
460
学生エンジニアが解く大規模アプリ
eurekaでの社外発表向けの資料
tuvy
June 18, 2018
Tweet
Share
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
Debugging Ruby Performance
tmm1
70
11k
What's new in Ruby 2.0
geeforr
337
31k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6k
jQuery: Nuts, Bolts and Bling
dougneiner
60
7.2k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Atom: Resistance is Futile
akmur
260
25k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Transcript
Copyright © 2018 eureka, Inc. All rights reserved. 学生エンジニアが解く大規模アプリ eureka
Meetup #10 -Pairs Android開発の裏側-
Copyright © 2018 eureka, Inc. All rights reserved. Tomosugi Tasaka
1995年3月7日生まれ 明治大学大学院 修士2年 現在はeurekaのインターン生と学生の両刀です 好きなお酒はハイボールと梅酒です 自己紹介
Copyright © 2018 eureka, Inc. All rights reserved. 2017年 9月
eurekaのサマーインターンに参加 2017年10月 Pairs Global Androidチームに長期インターンで参加 2018年 4月 Pairs Japan Androidチームに異動 自己紹介
Copyright © 2018 eureka, Inc. All rights reserved. 学生エンジニアが大規模アプリ開発に放り込まれた その時に感じた自分への課題
どのように足掻いて解決していったか 話したいこと
Copyright © 2018 eureka, Inc. All rights reserved. • 大規模アプリを目の前に読み解く時に工夫したこと
◦ 未経験な状態でどのように読み解いたか? -Pairs Global- ◦ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- • おわりに アジェンダ
Copyright © 2018 eureka, Inc. All rights reserved. • 大規模アプリを目の前に読み解く時に工夫したこと
◦ 未経験な状態でどのように読み解いたか? -Pairs Global- ◦ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- • おわりに アジェンダ
Copyright © 2018 eureka, Inc. All rights reserved. 未経験な状態でどのように読み解いたか -仕様編-
Copyright © 2018 eureka, Inc. All rights reserved. • Pairsにはどのような機能があるのか?
◦ いいね ◦ あしあと ◦ メッセージ • 「いいね」機能で何ができるのか? ◦ 相手の自分が「いいね」したことを通知する ◦ お互い「いいね」するとマッチング状態になる 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 問題
◦ 人間が仕様書 • 解決方法 ◦ 人に聞く ◦ 機能追加や修正ごとに仕様を理解していく 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. 未経験な状態でどのように読み解いたか -技術編-
Copyright © 2018 eureka, Inc. All rights reserved. • 初仕事
◦ コードリーディング&画面の一部修正 ◦ 海藤さん「あしあと画面のヘッダーをスクロールすると隠れるようにして」 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 問題
◦ あしあと画面のソースコード(Activity)が見つからない、、、 ◦ ファイルの量が多くて、当てずっぽうで探せない ◦ どの画面がどのActivityと対応しているのかわからない ◦ そもそも台湾語で読めない(台湾・韓国版Pairsなので) 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • ヒント
◦ 海藤さん「今表示されているのは◦◦Activityだよ」 ◦ 海藤さん「cmd押しながらクリックするとジャンプできるよ」 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 統合開発環境(Android
Studio)の旨味を利用する ◦ このクラスはどこから呼んでいるのか? ◦ この関数はどこから呼ばれているのか? 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • データの保持方法
◦ Fluxアーキテクチャ • Fluxアーキテクチャを理解する上で ◦ 「いいね」状態をどうやって画面間で同期させているのか? ◦ どのようにデータが流れているのか? 未経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 大規模アプリを目の前に読み解く時に工夫したこと
◦ 未経験な状態でどのように読み解いたか? -Pairs Global- ◦ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- • おわりに アジェンダ
Copyright © 2018 eureka, Inc. All rights reserved. ある程度経験した状態で読み解く -仕様編-
Copyright © 2018 eureka, Inc. All rights reserved. • Pairs
GlobalからJapanに異動 • Pairs Japanの仕様を理解する ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 法律
◦ 数え年と満年齢 • 行動原理 ◦ ネガティブとポジティブ ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 規模の大きさ
◦ 関わっている人数の多さ ◦ 細かなアニメーション ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • Pairs
Japanでの初仕事 ◦ 決済画面のリニューアル ◦ モブワークの初始動 ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 問題
◦ 人間が仕様書 • 解決方法 ◦ 人に聞く ◦ 機能修正・追加ごとに仕様を確認 • 感じたこと ◦ 機能修正・追加ごとに仕様を文章化するべき? ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. ある程度経験した状態で読み解く -技術編-
Copyright © 2018 eureka, Inc. All rights reserved. • どの関数がどのような計算をしているのか?
• 処理の順番は? • どの画面がどのActivityと対応しているのか? ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • adbコマンド
• デバッグ機能 • 通信内容の監視 ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • adbコマンド
◦ 通知 ◦ 現在表示されているActivity ◦ 文字列の入力 • デバッグ機能 • 通信内容の監視 ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • adbコマンド
• デバッグ機能 ◦ ブレイクポイント ◦ 変数の監視 • 通信内容の監視
Copyright © 2018 eureka, Inc. All rights reserved. • adbコマンド
• デバッグ機能 • 通信内容の監視 ◦ stetho ◦ chrome://inspect/#devices ある程度の経験者が大規模アプリを読み解く
Copyright © 2018 eureka, Inc. All rights reserved. • 大規模アプリを目の前に読み解く時に工夫したこと
◦ 未経験な状態でどのように読み解いたか? -Pairs Global- ◦ ある程度のスキル、仕様理解がある状態でどのように読み解いたか? -Pairs Japan- • おわりに アジェンダ
Copyright © 2018 eureka, Inc. All rights reserved. • 大規模アプリ開発の未経験者→ある程度の経験者
◦ 仕様については恐れずに聞く ◦ Android Studioの機能を使ってコードを追う • 密度が高い時間 ◦ 技術面において ◦ チームとのコミュニケーション おわりに