Toshinori Tsugita @tsugitta
アプリケーションにまつわる議論


明るい未来
何から始めるべきか
仕組みがわかると


開発プロセスがわかると


アプリケーションの仕組み
Twitter のようなモバイルアプリを考える
モバイル Twitter アプリ




こうする?
こうする?


賢い⼈がいると良さそう
要求・応答の例(タイムライン)






要求・応答の例(タイムライン)








要求・応答の例(フォロー成功)




要求・応答の例(フォロー成功)








要求・応答の例(フォロー失敗)




要求・応答の例(フォロー失敗)
気づき


似た話 at 飲⾷店










補⾜


アプリケーションにまつわる経験則


役割の粒度は様々
アプリケーションの仕組みまとめ

 

アプリケーションの開発プロセス
アプリケーションの開発プロセス
独⽴した新機能開発なら..
アプリケーションの開発プロセス
😎
独⽴した新機能開発なら..
アプリケーションの開発プロセス
アプリケーションの開発プロセス
アプリケーションの開発プロセス
アプリケーションに変更を加える
アプリケーションに変更を加える(理想)


アプリケーションに変更を加える(理想)
アプリケーションに変更を加える(現実)


アプリケーションに変更を加える(現実)
アプリケーションに変更を加える(現実)


なぜか?


「作る」よりも「組み合わせる」




✨
アプリケーションの開発プロセス
アプリケーションの開発プロセス
動作確認(テスト)
動作確認(テスト)


動作確認(テスト)
理想的なテスト
😇
テストを⾃動化する
役割単体でのテスト


例)UI 担当の単体テスト




















👍
役割を結合したテスト


例)リクエスト・レスポンスの結合テスト








👍






テストがあれば






テストを書くのは簡単ではない






アプリケーションの開発プロセス


アプリケーションの開発プロセスまとめ


付録 1)トラブルシューティングしてみる
フォームにまつわるトラブル
「送信」ボタンが押せない










フォームにまつわるトラブル
「送信」ボタンを押したら「エラー」と表⽰された










「送信」ボタンを押したら「エラー」と表⽰された




「送信」ボタンを押したら「エラー」と表⽰された
フォームにまつわるトラブル




「送信」ボタンを押しても何も起きない










「送信」ボタンを押しても何も起きない
トラブルシューティングができるということ




付録 2)開発の影響範囲を考えてみる
アプリ上の⽂⾔変更を考える


アプリの表⽰上の⽂⾔を変更する






アプリの表⽰上の⽂⾔を変更する










アプリの表⽰上の⽂⾔を変更する










アプリの表⽰上の⽂⾔を変更する
😔
付録 3)役割分担の現場
タイムライン取得時のサーバの中⾝を考える
タイムライン取得時のサーバの中⾝を考える
仕様:フォローしている⼈のツイートが返ってくる




仕様:ミュートワードを含むツイートをはじく






仕様:設定に応じて報告されているツイートをはじく








仕様:プロモーションツイートを混ぜる










仕様:反響の⼤きいツイートをハイライトとして返却






⼤変なことになった
























問題点




まだまだ悪化しうる




どうすれば良さそうか?
仕様:フォローしている⼈のツイートが返ってくる
😀
仕様:ミュートワードを含むツイートをはじく
🙁
仕様:設定に応じて報告されているツイートをはじく
🤔
仕様:設定に応じて報告されているツイートをはじく








仕様:プロモーションツイートを混ぜる






仕様:反響の⼤きいツイートをハイライトとして返却
特徴






留意点





アプリケーションの仕組みと開発プロセス