狠狠撸
Submit Search
スマホアフ?リ開発者のためのWeb api開発入門の入門
34 likes
34,829 views
Kenyu Miura
1 of 43
Download now
Downloaded 85 times
1
2
3
4
5
6
7
8
9
10
Most read
11
12
Most read
13
14
15
16
Most read
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Ad
Recommended
PPTX
搁别诲颈蝉の特徴と活用方法について
Yuji Otani
?
PDF
シリコンバレーの「何が」凄いのか
Atsushi Nakada
?
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
?
PDF
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
?
PDF
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
?
PDF
滨罢系エンジニアのためのプレゼンテーション入门
Masahito Zembutsu
?
PDF
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
?
PDF
20191126 AWS Black Belt Online Seminar Amazon AppStream 2.0
Amazon Web Services Japan
?
PDF
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
?
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
PDF
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
whywaita
?
PPTX
AWS Elastic BeanstalkとAWS Lambdaのご紹介
Akio Katayama
?
PPTX
Azure API Management 俺的マニュアル
貴志 上坂
?
PDF
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
?
PPTX
イベント?ソーシングを知る
Shuhei Fujita
?
PDF
础尘辫濒颈蹿测のバグを础奥厂に报告して直してもらった话
Keita Ibaraki
?
PDF
Rest ful api設計入門
Monstar Lab Inc.
?
PDF
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
?
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
?
PPTX
このPHP QAツールがすごい!2019
sasezaki
?
PDF
[JAWS-UG Tokyo 32] AWS Client VPNの特徴
Shuji Kikuchi
?
PDF
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo
?
PDF
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
?
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
PDF
IaC事始め Infrastructure as Code やってみる?
大使 梶原
?
PDF
REST API のコツ
pospome
?
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
PDF
インフラエンシ?ニアの綺丽て?优しい手顺书の书き方
Shohei Koyama
?
PDF
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
?
PDF
事业企画
teradonburi Terai
?
More Related Content
What's hot
(20)
PDF
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
?
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
PDF
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
whywaita
?
PPTX
AWS Elastic BeanstalkとAWS Lambdaのご紹介
Akio Katayama
?
PPTX
Azure API Management 俺的マニュアル
貴志 上坂
?
PDF
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
?
PPTX
イベント?ソーシングを知る
Shuhei Fujita
?
PDF
础尘辫濒颈蹿测のバグを础奥厂に报告して直してもらった话
Keita Ibaraki
?
PDF
Rest ful api設計入門
Monstar Lab Inc.
?
PDF
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
?
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
?
PPTX
このPHP QAツールがすごい!2019
sasezaki
?
PDF
[JAWS-UG Tokyo 32] AWS Client VPNの特徴
Shuji Kikuchi
?
PDF
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo
?
PDF
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
?
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
PDF
IaC事始め Infrastructure as Code やってみる?
大使 梶原
?
PDF
REST API のコツ
pospome
?
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
PDF
インフラエンシ?ニアの綺丽て?优しい手顺书の书き方
Shohei Koyama
?
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
?
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
whywaita
?
AWS Elastic BeanstalkとAWS Lambdaのご紹介
Akio Katayama
?
Azure API Management 俺的マニュアル
貴志 上坂
?
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
?
イベント?ソーシングを知る
Shuhei Fujita
?
础尘辫濒颈蹿测のバグを础奥厂に报告して直してもらった话
Keita Ibaraki
?
Rest ful api設計入門
Monstar Lab Inc.
?
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
?
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
?
このPHP QAツールがすごい!2019
sasezaki
?
[JAWS-UG Tokyo 32] AWS Client VPNの特徴
Shuji Kikuchi
?
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo
?
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
Amazon Web Services Japan
?
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
IaC事始め Infrastructure as Code やってみる?
大使 梶原
?
REST API のコツ
pospome
?
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
インフラエンシ?ニアの綺丽て?优しい手顺书の书き方
Shohei Koyama
?
Similar to スマホアフ?リ開発者のためのWeb api開発入門の入門
(20)
PDF
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
?
PDF
事业企画
teradonburi Terai
?
PDF
我が家のフロントエンド开発事情
Naoki Yamada
?
PDF
Five Steps to Culture Change を日本語で解説する 2020/11/06
Issei Hiraoka
?
PDF
はじめてのモバイルウェブアプリ 2
Taisuke Fukuno
?
PPTX
モバイル开発を便利にする础奥厂
Satoshi Takayanagi
?
PDF
リモートワーカー働き方実态とテレワーク导入公司事例について
ZappyLink Co.,Ltd.
?
PDF
福井で「しあわせデザイナー」になるために
Miho Yamamori
?
PPTX
公司向け尘叠补补厂「础辫辫笔辞迟」を使ったサーバー开発なしの高速モバイルアプリ开発
Ryohei Sogo
?
KEY
スマートフォンアプリケーション开発の最新动向
Tsutomu Ogasawara
?
PDF
就職説明会 181215 株式会社mofmof
DIVE INTO CODE Corp.
?
PDF
「新しい」を生み出すための奥别产アプリ开発とその周辺
Yusuke Wada
?
PPTX
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Akira Nagata
?
PDF
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
?
PDF
顿别惫颈肠别颁辞苍苍别肠迟向け颁辞谤诲辞惫补プラグインを作ってみた
Device WebAPI Consortium
?
PDF
笔颈虫补迟别导入についてのあれこれ
Kazuyuki Oikawa
?
PDF
GRAND FRONTEND OSAKA 2016 kintone説明
Yoshihiko Takeuchi
?
PPTX
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
PPTX
简単?お手軽!ノンプログラミングで便利叠翱罢を作ってみた话
典子 松本
?
PDF
Heroku HTTP API Design Guide
Ayumu Aizawa
?
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
?
事业企画
teradonburi Terai
?
我が家のフロントエンド开発事情
Naoki Yamada
?
Five Steps to Culture Change を日本語で解説する 2020/11/06
Issei Hiraoka
?
はじめてのモバイルウェブアプリ 2
Taisuke Fukuno
?
モバイル开発を便利にする础奥厂
Satoshi Takayanagi
?
リモートワーカー働き方実态とテレワーク导入公司事例について
ZappyLink Co.,Ltd.
?
福井で「しあわせデザイナー」になるために
Miho Yamamori
?
公司向け尘叠补补厂「础辫辫笔辞迟」を使ったサーバー开発なしの高速モバイルアプリ开発
Ryohei Sogo
?
スマートフォンアプリケーション开発の最新动向
Tsutomu Ogasawara
?
就職説明会 181215 株式会社mofmof
DIVE INTO CODE Corp.
?
「新しい」を生み出すための奥别产アプリ开発とその周辺
Yusuke Wada
?
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Akira Nagata
?
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
?
顿别惫颈肠别颁辞苍苍别肠迟向け颁辞谤诲辞惫补プラグインを作ってみた
Device WebAPI Consortium
?
笔颈虫补迟别导入についてのあれこれ
Kazuyuki Oikawa
?
GRAND FRONTEND OSAKA 2016 kintone説明
Yoshihiko Takeuchi
?
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
简単?お手軽!ノンプログラミングで便利叠翱罢を作ってみた话
典子 松本
?
Heroku HTTP API Design Guide
Ayumu Aizawa
?
Ad
スマホアフ?リ開発者のためのWeb api開発入門の入門
1.
スマホアプリ開発者のための ? Web ?API開発?入?門の?入?門
2.
Agenda ?自?己紹介など ? Web ?APIとは
? なぜWeb ?APIが必要か ? Web ?API開発の基本 ? パフォーマンス
3.
Talknoteとは? 社内コミュニケーションサービス
4.
Talknoteとは? 「共通の価値観が浸透した「いい会社」をつくる。」? ことをミッションに、サービス運営をしています。
5.
?自?己紹介 ミウラ ?@mxxxxkxxxx ? 雑?食型情報処理理技術者
? 2014/02にTalknoteへJoin ? 前職:グリーにて内製プロダクトの企画?開発 ? 最近の趣味:何でもかんでもAWSのマネージドサービスにのっ けて勝?手にスケールしてくれたらいいなと妄想をすること
6.
Web ?APIとは Web ?API
?= ? ?インターネット経由で利利?用できるAPI ? API(Application ?Programming ?Interface) ? ソフトウェアコンポーネントが互いにやりと りするのに使?用するインタフェースの仕様 ? 例例えばsocket ? listen(), ?accept(), ?recv(), ?send(), ?etc.
7.
Web ?APIとは Web ?APIにはSOAPやRESTなどがあ る
? 今回はREST ?APIのお話 ?
8.
Web ?APIとは iPhoneアプリ MV C サーバ C V M
DBユーザ サーバアプリ
9.
なぜWeb ?APIが必要か データの妥当性 ? コミュニケーションの正当性
? マルチデバイス対応
10.
なぜWeb ?APIが必要か データの妥当性 iPhone ? アプリ サーバ ユーザ 商品
? 購?入 トランザクション 購?入履履歴 ? データ作成 https://hoge.io/purchase POST いずれかで失敗したら ? ロールバック 成功 ?or ?失敗 購?入履履歴 ? データ作成 購?入履履歴 ? データ作成
11.
サーバ なぜWeb ?APIが必要か コミュニケーションの正当性 ユーザ ゲーム ? アプリ ユーザ ユーザ ランキング
? データ 妥当なデータが担保する ? コミュニケーションの ? 正当性 https://hoge.io/ranking ゲーム ? アプリ ゲーム ? アプリ
12.
なぜWeb ?APIが必要か マルチデバイス対応 サーバ ユーザ iPhone ? アプリ ユーザ Android
? アプリ ユーザ PC ? Web 新 ? ロジック ビジネスロジックに変更更が あってもWeb ?APIは影響を受 けず、クライアントアプリケー ションを改修する必要がない。 旧 ? ロジック Web ? API
13.
Web ?API開発の基本 URL ? ドメインモデル
14.
Web ?API開発の基本 REST ?API
?-‐?? ?HTTPメソッドでCRUD操作 ? POST ?-‐?? ?Create ? 例例)POST ?/article ?… ?記事を作成する ? GET ?-‐?? ?Read ? 例例)GET ?/article/1 ?… ?ID=1の記事を参照 する URL
15.
Web ?API開発の基本 REST ?API
?-‐?? ?HTTPメソッドでCRUD操作 ? PUT ?-‐?? ?Update ? 例例)PUT ?/article/1 ?… ?ID=1の記事を更更新する ? DELETE ?-‐?? ?Delete ? 例例)DELETE ?/article/1 ?… ?ID=1の記事を削除 する URL
16.
Web ?API開発の基本 URL iPhone ? アプリ サーバアプリ ユーザ 記事作成
Controller /article[/1] POST GET PUT DELETE 成功 記事 成功 成功 View JSON 記事参照 記事更更新 記事削除 Model Article RDBMS articles
17.
Web ?API開発の基本 URL iPhone ? アプリ サーバアプリ ユーザ 記事作成
Controller /article ①POST ⑥成功 ? id=1 View JSON Model Article RDBMS articles ②Article ? 作成 ?③articlesテーブル ? レコード作成 ④作成したレ コードのid取得 ⑤レンダリング
18.
Web ?API開発の基本 URL iPhone ? アプリ サーバアプリ ユーザ Controller /article/1 ①GET
? id=1 ⑤記事 ? id=1 View JSON 記事参照 Model Article RDBMS articles ②Article ? 取得 ③articlesテーブル ? レコード取得 ④レンダリング
19.
Web ?API開発の基本 最近APIバージョニングが話題 ? https://api.talknote.com/hoge
? https://api.talknote.com/1/hoge ? 参考:APIのバージョニングは限局分岐でや るのが良良い ?-‐?? ?http://kenn.hatenablog.com/ entry/2014/03/06/105249 URL
20.
Web ?API開発の基本 トランザクションスクリプトとは? ? アクションより起動される?一連の?手続き
? 引?用元:ひがやすを ?blog ?-‐?? ?http:// d.hatena.ne.jp/higayasuo/20080519/ 1211183826 ? 要はいわゆる「?手続き型」なプログラム ? 次で述べるドメインモデルの対義語(みたいな感じ) ドメインモデル
21.
Web ?API開発の基本 ドメインモデルとは? ? オブジェクト指向と親和性の?高い概念念
? ドメイン内の名詞によって体系化されたモデル ? 引?用元:ひがやすを ?blog ?-‐?? ?http:// d.hatena.ne.jp/higayasuo/20080519/ 1211183826 ドメインモデル
22.
Web ?API開発の基本 ドメイン内の名詞って? ? ECを?一つのドメインとして例例えると… ドメインモデル EC ユーザ 認証 商品 購?入
23.
Web ?API開発の基本 Web ?APIはドメインモデルで設計しよう
? ドメインモデルのメリット ? DRY ? 疎結合 ? ってことは変更更に強い。 ドメインモデル
24.
Web ?API開発の基本 Web ?APIはドメインモデルで設計しよう
? ドメインモデルのデメリット ? トランザクションスクリプトより設計が難 しい ? ドメインモデル貧?血症に陥る可能性 ドメインモデル
25.
パフォーマンス ? 基本はIO ? ?
病は気から ? ? 性能劣劣化はIOから ? ? クソシステムはデータ設計から
26.
パフォーマンス ということでRDBMSでパフォーマン ス稼ぐお話をちょこっと ? Web ?APIというよりサーバのお話 ですが…
? MySQL前提
27.
パフォーマンス アプリが発?行行するクエリはとにかくexplainしよう ? ActiveRecordやその他ORM経由でもデバッグロ グ等にSQLを吐かせるように ? 漢のコンピュータ道でexplainの?見見?方を詳解して います。
? http://nippondanji.blogspot.jp/2009/03/ mysqlexplain.html
28.
パフォーマンス アプリが発?行行するクエリはとにかくexplainしよう ? index効いていないクエリがないように ? サービスが成??長してくると、index効いてい ないクエリのせいでDBサーバのCPUが100% に張りつきはじめます。
? indexが効いていてもフルスキャンしている ようじゃダメ
29.
パフォーマンス
30.
パフォーマンス
31.
パフォーマンス
32.
パフォーマンス すでにサービス上で動いているクエリの 性能が?十分に稼げていない場合 ? 張れるのであればindex張る ? ?高トラフィックでindex張った瞬間にア ラートが?飛びそうで怖いのであれば…
? ヒントを駆使してみる
33.
パフォーマンス ヒントの例例 ? MySQLの結合は原則ネスティッドループ結合 ? 結合順序によっては効いてほしいindexが効かなかったり等の 原因により、?走査するレコード数が?非常に多くなる。
? 結合順序はオプティマイザが決定する。 ? 開発者が結合順序を制御したい場合、STRAIGHT_?JOIN で制御可能。 ? 合わせてindexを制御するUSE|IGNORE|FORCE ?INDEX構?文 も有効な場合がある ? 他にもいろいろ
34.
パフォーマンス クエリの発?行行数が無駄に多くて性能劣劣化を招く ケースもあります。 ? N+1問題 ? ①userテーブルから10レコード取得する
? ②user.idをキーとしてuser_?pro?leテーブル からレコードを逐次取得する ? ①=1回, ?②=10回クエリを発?行行することに なる
35.
パフォーマンス クエリの発?行行数が無駄に多くて性能劣劣化を招くケースもあり ます。 ? N+1問題 ? ActiveRecordでLazy
?Loadingする場合などに発?生 ? 防?止策 ? 結合して1クエリで取得する ? select ?* ?from ?user ?u ?inner ?join ?user_?pro?le ? up ?on ?u.id ?= ?up.user_?id ? Eager ?Loading
36.
パフォーマンス ?高トラフィックになってくると… ? drop ?tableしただけでサービスに影響で たり
? ハードリンク張らずにdrop ?tableする とファイルシステム的にすぐデータを 消そうとするためにIOが発?生し、終わ るまでメタデータをロックしてしまう
37.
パフォーマンス そういうときはハードリンク絡めて drop ?tableしてみよう
38.
1テーブル1ibd/frm前提 パフォーマンス MySQL ファイルシステム データ /var/mysql/data/messages.ibdmessages
39.
①ibd/frmにハードリンク張る ? $ ?ln
?/var/mysql/data/messages.ibd ?/home/admin/messages.ibd パフォーマンス MySQL ファイルシステム データ /var/mysql/data/messages.ibd /home/admin/messages.ibd messages
40.
②drop ?table ? mysql>
?drop ?table ?messages; パフォーマンス MySQL ファイルシステム データ /var/mysql/data/messages.ibd /home/admin/messages.ibd messages drop ?table ? messages; ハードリンクが残っているので ? まだ物理理削除されない
41.
③作成しておいたハードリンクを穏やかに削除 ? $ ?ionice
?-‐??c ?3 ?rm ?-‐??f ?/home/admin/messages.ibd パフォーマンス MySQL ファイルシステム データ /home/admin/messages.ibd
42.
④完了了 ? パフォーマンス MySQL ファイルシステム
43.
ご清聴ありがとうございました
Download