nekokakさんが以前TengとDBIx::Skinnyのベンチマークとってみたでとっていたのですが、1年半以上経っていてその後Tengはバージョンアップを重ねていますので、改めてとってみました。 ベンチマークスクリプトはnekokakさんのものをもとに少し改造してtestもつけたりしました。 結果はこちら。 はやくなってますね :)
nekokakさんが以前TengとDBIx::Skinnyのベンチマークとってみたでとっていたのですが、1年半以上経っていてその後Tengはバージョンアップを重ねていますので、改めてとってみました。 ベンチマークスクリプトはnekokakさんのものをもとに少し改造してtestもつけたりしました。 結果はこちら。 はやくなってますね :)
Tengのv0.14_01をリリースしました。 devリリースです。 Changesから引用すると - [IMPORTANT] bulk_insert include core feature. do not use Plugin::BulkInsert.- add Plugin::Lookup. - fixed fork safe connection. (thanks nihen)- support auto reconnect dbh. (thanks nihen) - can specific column for single or search method. - support bulk_insert for postgresql 8.2.0 over. (thanks makamaka) - support bind_param. (thanks makamaka) - a
さて、ページングもついて、一応うごいているといえる状況になっている掲示板ですが、とにもかくにも投稿日付がわからないのは不便といっていいでしょう。 通常ならばもちろん投稿日付を保存するようには設計段階からしておくところですが、今回はチュートリアルなので一度におぼえることをすくなくするために細切れにするとともに、漸近的にウェブアプリケーションを成長させていくための技法をまなんでいっていただこうという気持なわけです。 さて、スキーマにデータを追加するには、まず sql/mysql.sql を更新しましょう。 CREATE TABLE IF NOT EXISTS sessions ( id CHAR(72) PRIMARY KEY, session_data TEXT ); CREATE TABLE IF NOT EXISTS entry ( id INT UNSIGNED NOT NULL AU
さて、掲示板をつくったとはいえ、これだけではおもしろくありませんね。 まずこの掲示板には重大な欠陥があります。具体的にいうと、ページングがされていません。 ウェブアプリケーションにおいてはページングは非常に重要な要素です。 なにかを一覧表示するページをつくるときに、ページングのことが思いうかばないようでは一人前のウェブエンジニアとはいえません。ページングを手抜きすると、あとあと重いページになって泣くことになるでしょう。ページングは最初の段階でいれておくのが結局は楽なのです(という自戒)。 さて、今回の掲示板では Teng をつかっているので非常にページャの実装が容易になっています。Teng ではページャ関連の実装はプラグインとなっていますから、Teng に Teng::Plugin::Pager をよみこませましょう。lib/MyBBS/DB.pm に以下のようにかきましょう。 packa
前回から大分時間が経ってしまいましたが、唐突に Amon2+Teng で大きめのアプリをつくるチュートリアルでもはじめましょう。Teng というのは、O/R Mapper とよばれる種類のライブラリで、DB へのアクセスを簡単にしてくれるものです。 さて、とにかくも準備からはじめましょう。 % cpanm Amon2 Amon2::Setup::Flavor::Teng Tengで Amon2 をインストールします。 % amon2-setup.pl --flavor=Large,Teng MyBBSとするとスケルトンができあがりますので % cd MyBBSとして、プロジェクト用のディレクトリにはいります。 %cpanm --installdeps .とすると、依存モジュールがインストールされます。 % plackup app.psgi -R libとうつと、サーバープロセスが起動します
id:nekokak さんが開発されている、Teng で CRUD を一通りやってみました。 僕自身、DBIx::Class を以前使っていたんですが、あまりにも機能が富豪的すぎて使うのをやめてしまいました。それからは生 DBI を使っていたんですが、開発効率を考えたときに、ORM は使うべきだと再度考えるようになり、軽量な ORM、Teng に注目している所です。 準備 テスト用のテーブル +------------+-----------+------+-----+---------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +------------+-----------+------+-----+---------------------+-
はじめに いつもORM(O/Rマッパー)のDISられ具合がひどいですが自分的には大大好きなんです。何が好きかっていうとリレーション設定が簡単にできるとかinflateとかdeflateも自動でやってくれるし開発効率もグッと上がります。こんな便利なもの使わない方がおかしいと思うぐらいです。生のDBIをたたいて省メモリでecoなシステムを目指すのもいいですが一昔前に比べればマシンパワーも上ってる事だしどんどん使いましょうよ。 ちなみにいつも使ってるO/RマッパはDBIx::Classです。 そういえば昨日バージョンがTeng-0.14になったばかりでしたね Tengから利用する基本クラスを定義 Tengを操作するクラスを定義します。 MyAppプロジェクトでTengを使う場合 package MyApp::Model; use parent 'Teng'; 1; 基本となるのはたったこれだけで
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く