Suche senden
Hochladen
ページャ実装マニアックス
•
10 gefällt mir
•
5,131 views
Y
Yohei Fushii
Folgen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 26
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
MongoDBの使い方
MongoDBの使い方
Tatsuto Maetsu
長いの
長いの
emasaka
Tour of Scraping
Tour of Scraping
Kenta Yonekura
Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章
Taichi Watanabe
OLにもわかるRDF(トリプル編)
OLにもわかるRDF(トリプル編)
Hitomi Yamagishi
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Kosuke Tanabe
菩薩でもわかる!Rで動かすExcelアドインの作り方
菩薩でもわかる!Rで動かすExcelアドインの作り方
Nagi Teramo
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
Empfohlen
MongoDBの使い方
MongoDBの使い方
Tatsuto Maetsu
長いの
長いの
emasaka
Tour of Scraping
Tour of Scraping
Kenta Yonekura
Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章
Taichi Watanabe
OLにもわかるRDF(トリプル編)
OLにもわかるRDF(トリプル編)
Hitomi Yamagishi
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Kosuke Tanabe
菩薩でもわかる!Rで動かすExcelアドインの作り方
菩薩でもわかる!Rで動かすExcelアドインの作り方
Nagi Teramo
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
node.jsによる お手軽画像uploader実装
node.jsによる お手軽画像uploader実装
Yohei Fushii
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Enhance Anime Watching with Programming
Enhance Anime Watching with Programming
Yohei Fushii
Unite with script
Unite with script
Yohei Fushii
Perlで学ぶコルーチン
Perlで学ぶコルーチン
Yohei Fushii
初めてのMoose
初めてのMoose
Yohei Fushii
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Weitere ähnliche Inhalte
Mehr von Yohei Fushii
node.jsによる お手軽画像uploader実装
node.jsによる お手軽画像uploader実装
Yohei Fushii
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Enhance Anime Watching with Programming
Enhance Anime Watching with Programming
Yohei Fushii
Unite with script
Unite with script
Yohei Fushii
Perlで学ぶコルーチン
Perlで学ぶコルーチン
Yohei Fushii
初めてのMoose
初めてのMoose
Yohei Fushii
Mehr von Yohei Fushii
(6)
node.jsによる お手軽画像uploader実装
node.jsによる お手軽画像uploader実装
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Enhance Anime Watching with Programming
Enhance Anime Watching with Programming
Unite with script
Unite with script
Perlで学ぶコルーチン
Perlで学ぶコルーチン
初めてのMoose
初めてのMoose
Kürzlich hochgeladen
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Kürzlich hochgeladen
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
ページャ実装マニアックス
1.
ページャ実装マニアックス
2010年10月16日 株式会社はてな id:hakobe932 1 2010年10月17日日曜日
2.
自己紹介
❖ id:hakobe932 •‣ 株式会社はてな アプリケーションエンジニア ‣ 1年目 (バイト含めると3年目) • 京都ネイティブ • はてなココ • http://d.hatena.ne.jp/hakobe932 2 2010年10月17日日曜日
3.
言語
• Perl • JavaScript • Objective-C • Java • Ruby) • Scala 3 2010年10月17日日曜日
4.
id:nagayama さん
3回くらいまちがわれましたが 別人です 2010年10月17日日曜日
5.
ページャ 2010年10月17日日曜日
6.
ページャ 2010年10月17日日曜日
7.
ページャ
スクリーンショットと ページャぶぶんの拡大 2010年10月17日日曜日
8.
ページャは
さまざまなところで 使われてる 2010年10月17日日曜日
9.
はてなにおける
108のページャ実装を 紹介します 2010年10月17日日曜日
10.
ページャの多様性
を知りましょう 2010年10月17日日曜日
11.
#1 Hatena::Bookmark::Pager
Data::Pageに機能追加 my $pager = Hatena::Bookmark::Pager->new; $pager->total_entries(10000); $pager->entries_per_page(20); $pager->current_page(1); $pager->next_page; $pager->last_page; $pager->next_uri; # "次へ" リンク $pager->htmlfy; # ページャHTML 11 2010年10月17日日曜日
12.
#2 Hatena::Diary::PagerMaker
HTMLを直接生成する ページャの利用目的の大半はHTMLの生成 Hatena::Diary::PagerMaker->new($page)->make( 10000, # total_data_count of => 40, # offset lt => 20, # limit ); # $pageのなかにHTMLがセットされる 12 2010年10月17日日曜日
13.
#3 Hatena::UgoMemo::Pager データを生成する方法をページャに渡す
1.Queryオブジェクトを生成 my $query = cmoco('Movie')->query( where => { user_id => $user_id, }, order => 'created DESC', ); ※Query を抽象化したオブジェクト 13 2010年10月17日日曜日
14.
#3 Hatena::UgoMemo::Pager
2.Queryオブジェクトからページャを作成 $pager = Hatena::UgoMemo::Pager->new( page => $page, per_page => $per_page, query => $query, # pager自体がqueryを持っている ); 3.使います $pager->items; # ページャが特定のページの $pager->next; # データを生成する! $pager->prev; 14 2010年10月17日日曜日
15.
よりみち: ページャの生成
ORMから生成 my $res = moco('Entry')->pager_search( where => { uid => $uid, }, order => 'updated desc', offset => 20, limit => 20, ); $res->{result}; # SELECT の結果 $res->{pager}; # 現在のページの情報をもつ 15 2010年10月17日日曜日
16.
よりみち: ページャの生成
Controllerの情報とQueryから生成 package Hoge::App::Users; use base qw(Hoge::App); sub query { # Query オブジェクトを返す } 1; pacakge Hatena::Hoge::Engine::Users; use Hoge::Engine -Base; __PACKGE__->app_class(qw(Hoge::App::Users); sub default :Public { my $r = shift; $r->app->pager; # ページャができてる } 1; 16 2010年10月17日日曜日
17.
現在 3/108 2010年10月17日日曜日
18.
あと105個もあるの? 2010年10月17日日曜日
19.
ページャに関わる要素
❖ ページングの対象 • SQL の 結果 ❖ • 配列内のデータ ページングの基準 • 件数 ❖ • 日付 ページングの性能 • キャッシュ付き • SQLをなるべく引かない + サービスごとの差異 19 2010年10月17日日曜日
20.
Hatena2::Fotolife::Pager_Hatena2::Fotolife::Pager::EntryTime_Hatena2::Fot
olife::Pager::Lite_Hatena2::Fotolife::Pager::Util_Hatena2::Fotolife::PagerMa ker_Hatena2::Group::PagerMaker_Hatena::A::GroupPagerMaker_Hatena::A ::GroupPagerMakerMobile_Hatena::A::PagerMaker_Hatena::Bookmark::Ho mePage_Hatena::Bookmark::Pager_Hatena::Bookmark::Pager::Binary_Hate na::Bookmark::Pager::Binary::Mobile_Hatena::Bookmark::Pager::Calendar_ Hatena::Bookmark::Pager::Calendar::Mobile_Hatena::Bookmark::Pager::Qu eryContinuation_Hatena::Coco::Pager::CachedQueryOffset_Hatena::Diary:: Pager_Hatena::Diary::Pager::Lite_Hatena::Diary::PagerMaker_Hatena::Haik u2::MoCo::Pager_Hatena::Haiku2::Pager_Hatena::Haiku2::SimplePager_Hat ena::Happie::Pager_Hatena::Hatena::PagerMaker_Hatena::Keyword::Pager_ Hatena::Let::MoCo::Pager_Hatena::Message::Admin::Pager_Hatena::Messa ge::Pager_Hatena::Monolith::MoCo::Page_Hatena::Monolith::MoCo::PageArr ay_Hatena::Monolith::MoCo::PageOffsetLimit_Hatena::Monolith::MoCo::Pag eTimeline_Hatena::My::Pager_Hatena::PagerMaker_Hatena::UgoMemo::Pa ger_Hatena::UgoMemo::Pager::ArrayRef_Hatena::UgoMemo::Pager::Many_ Hatena::UgoMemo::Pager::Merged_Hatena::UgoMemo::Pager::PagerByMui dList_Hatena::UgoMemo::Pager::Search_Hatena::UgoMemo::Pager::Search Solr_Hatena::UgoMemo::Pager::Slice_Hatena::WWW::SimplePager_Updu::P 2010年10月17日日曜日
21.
それでは
気をとりなおして 2010年10月17日日曜日
22.
4/108 から 2010年10月17日日曜日
23.
#4 Hatena::UgoMemo::Pager::Merged
Queryの列を渡して全体をページング Hatena::UgoMemo::Pager::Merged->new( page => $page, per_page => $per_page, queries => @queries, ); 内部では、それぞれから必要な数をとって来て mergeしてsortしてる 23 2010年10月17日日曜日
24.
#5Hatena::UgoMemo::Pager::ArrayRef
ArrayRefからページャを生成 my $entries = [$e1, $e2, $e3, ... $e100]; Hatena::UgoMemo::Pager::ArrayRef->new( page => $page, per_page => $per_page, array => $entries, ); 24 2010年10月17日日曜日
25.
#6 Hatena::Coco::Pager::CachedQueryOffset
Cache付きPager ページングするデータの総数をmemdキャッシュ #7 Hatena::Bookmark::Pager::Binary 余計に一件とってくることで次があるかを判定 #8 Hatena::Diary::Pager::Lite 次があるかの判定は外部に任せて、軽量に動作 25 2010年10月17日日曜日
26.
以降108まで続く... 2010年10月17日日曜日
Jetzt herunterladen