Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AAPPIIのページングの話 ! @@rr77kkaammuurraa ##ppaaggeerrnniigghhtt
Slide 2
Slide 2 text
最近ワイワイしたもの ! ** JJSSOONN SScchheemmaaでいろいろやるやつ ** RRuubbyyのHHuubboottクローン ** 22つのSSQQLLから差分となるSSQQLLを生成するやつ ** テストからドキュメント生成するやつ ** uuiiuurreeooの総資産mmaacckkeerreellで監視するやつ
Slide 3
Slide 3 text
今日話さないこと ! ** UUIIの話 ** 京の地に眠るとされる110088種のページャ ** 僕の考えた最強のページネーション ** オープンソースの軽量コンテナDDoocckkeerrを使おう ** かわいいKKoottlliinn ** ##モリスナイト
Slide 4
Slide 4 text
今日話すこと ! ** AAPPIIこんな感じでつくりました ** ページャの実装こうなってます ** ページャちょっと怖い話 ** 所感
Slide 5
Slide 5 text
← ページングこんな感じ ((TTwwiitttteerr風の無限ページャ)) ! ※これはWWeebbブラウザ版 ((アプリの動画撮るの難しかった))
Slide 6
Slide 6 text
AAPPII データベース 各種WWeebbアプリ AAnnddrrooiidd 22001144--0022〜 iiOOSS 22001133--0088〜
Slide 7
Slide 7 text
GGEETT //ppiicckkuupp__rreecciippee GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0044 ** トップページは大体キャッシュ ** 複数のAAPPIIリクエストを送ってる
Slide 8
Slide 8 text
** 日付毎にアクセス数上位2200件 ** 11リクエストで11日分 ** スクロールで次ページ読み込み GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0044 GGEETT //ddaaiillyy__rraannkkiinnggss//22001144--0077--0033
Slide 9
Slide 9 text
GGEETT //hhoott__rreecciippeess??ppaaggee==11 GGEETT //hhoott__rreecciippeess??ppaaggee==22 ** つくれぽが1100件ついたレシピ ** スクロール ==>> ppaaggee==nn++11
Slide 10
Slide 10 text
GGEETT //rreecciippeess//sseeaarrcchh??ppaaggee==11 ** 検索AAPPII ** スクロール ==>> ppaaggee==nn++11 GGEETT //rreecciippeess//sseeaarrcchh??ppaaggee==22
Slide 11
Slide 11 text
GGEETT //ccaatteeggoorriieess これは見た目の都合で隠してるだけ ** カテゴリAAPPII ** ツリー構造で11親等先まで取得 ** ページャ必要なし
Slide 12
Slide 12 text
GGEETT //bbooookkmmaarrkk__ttaaggss ** MMYYフォルダ ((とユーザ情報)) ** ログイン中のときだけ使う ** ここもページャ必要なし GGEETT //mmee
Slide 13
Slide 13 text
GGEETT //bbooookkmmaarrkkss??ppaaggee==11 GGEETT //bbooookkmmaarrkkss??ppaaggee==22 ** MMYYフォルダ内のレシピ返すAAPPII ** スクロール ==>> ppaaggee==nn++11
Slide 14
Slide 14 text
実装の話
Slide 15
Slide 15 text
要素技術 ※大したことやってないです ! ** LLiinnkk HHeeaaddeerr ** KKaammiinnaarrii ** その他
Slide 16
Slide 16 text
LLiinnkk HHeeaaddeerr ! ** RRFFCC 55998888 ((WWeebb LLiinnkkiinngg)) ** ヘッダ内に他ページへのリンク ** 最初・前・次・最後 を入�れてる ! Link: ; rel=“next”, ; rel=“last”
Slide 17
Slide 17 text
KKaammiinnaarrii ! ** あとで @@aa__mmaattssuuddaa がきっと ** 単純な配列にも適用できて便利 ** SSoollrrの検索結果とかにも使える ! Recipe.page(2).per(20) Kaminari::PaginatableArray.new(array)
Slide 18
Slide 18 text
その他 ! ** 社内用AAPPIIフレームワークがある ** 集合を定義したらAAPPIIになる ** II//FFが統一されてSSOOAAしやすい
Slide 19
Slide 19 text
RReessoouurrccee VVaalliiddaattiioonn PPaaggiinnaattiioonn JJssoonnEEnnccooddeerr RReeqquueesstt RReessppoonnssee AAuutthhoorriizzaattiioonn <<----ここで絞込 ++ LLiinnkkHHeeaaddeerr
Slide 20
Slide 20 text
class RecipesController < ApplicationController include Authorization ! prepend Pagination ! def index render json: resources end ! private ! def resources Recipe.published end end
Slide 21
Slide 21 text
ページャ怖い話 ! 「キャッシュ入�れた」 ! ! ! ! ! ! 「めでたい」「爆速」 「」「::++11::」 「iiOOSSアプリなんか“もっと見る”出ないんだけど?」
Slide 22
Slide 22 text
所感 ! ** 人は結局正規表現で数字だけ抜き取る ** この規模だと伝統的ページャでOOKK ** ページ数増えないサービスづくりが良い
Slide 23
Slide 23 text
おわり ! AAPPIIのページングの話 ! @@rr77kkaammuurraa ##ppaaggeerrnniigghhtt