こんにちはこんにちは。 もうすぐ「Perl のお祭り」こと YAPC::Asiaですね!皆様、見る方も発表する方も準備は万全でしょうか?

(私?お察しください。。。)

ここで宣伝。Perl と SQL のいろいろ というタイトルでお話させていただきます。裏番組がどちらも大変なビッグネームなので恐縮なのですが、初中級者くらい向けに Perl と SQL にまつわる話を させていただこうと思っております。

(※ここまでテンプレ)

さて、YAPC とは今回の話は関係なくて、(すげー反響があったら関係するかもしれんですが、それは無いでしょうw)

私、Kappa という ORM を書いてます。今回はそのお話です。

目次

背景

はてダにいろいろ書いてるので、僕のストーカーだったら良く分かると思うのですが、そんな人は多分いないので(居たら居たで嫌だしw)、順を追って説明しましょう。

今見返したら、これ見ても全然わかんねーやw。えーっとワタクシ、業務系アプリで、ジャンルでいうと、製造実行システム(MES)というやつの、バックエンド作ってます。 もうちょいわかりやすく言うと、Web-API 作ったり、DB のメンテしたり、DB の設計したりそんなことしてます。

で、

にもちょこっと書いてるのですが、最初にあった WEB-API のフレームワーク(内製なんだけど僕が作ったんじゃなくて、どっかの案件であるていど実績があったやつっぽい。 今となっては僕が色々手を入れて別物になってますがね。。。)が、クライアントのリクエストに応じてストアドプロシージャを実行する仕組みになってました。

で、ストアドってまあ良い面もあるのでしょうけど、少なくとも僕のユースケースではダメダメな面がいろいろとありました。

と、言うわけで、「生の SQL がある程度うまく扱える仕組みがあるといいなー」ということを、1年前くらいから考え始めました。

で、いろいろ悩んで、テーブルデータゲートウェイを自作してみたり、Teng 使ってみたりしたのですが…

どうもウチの仕組みとマッチしなかった。(念のため書いときますが、Perl 使える人が僕以外にもっといたら、Teng 使った時点で 問題解決してました。Perl あんま分かってないひとに、スキーマクラスがどうこうとか、それをメンテさせるとか考え始めたら頭痛くなって、 「スキーマクラスなくても使える ORM がいるね。。。」と思った次第。Teng いいですよ。僕みたいに車輪の再発明して ORM 書くとかどう考えても アホのすることです。。。)

で、作ってみました。

まあここに書いた話は今でもある程度は通用するのですが、もうちょい包括的なドキュメントがあったほうがいいかもなー、と思ったので本記事を 書いてみた次第です。

と、いうわけで明日以降は使い方を説明していきたいと思います!(YAPC の資料書きながらなので、どこまで書けるか分かりませんが。。。)