タグ

tengに関するy_uukiのブックマーク (9)

  • なぜ Teng は良いものなのか - tokuhirom's blog

    なぜ Teng は良いものなのか、を YAPC で再考させられたのでここにメモしておく。 Teng は自社開発のウェブアプリケーションを作ってる人たちが作っていて、それがうちのニーズにあってるのでいいっていう話であって、どこでもすごい最高!! と主張したいわけではないです。まあ、個人の感想ですね。 ソースが読みやすい ソースがよくモジュール化されていて、読みやすい。自身で書いている部分が多いという贔屓目を抜きにしても読みやすいんじゃないかなーと。 僕らのような自社開発のウェブ屋では、なにか無茶な要望を受けた時にささっと対応するということが求められるシーンが多いので、ソースの読みやすさというのはかなり重要なファクターとなっています。 複雑な SQL を発行できないように機能が制限されている SQL ビルダーを使って JOIN やサブクエリを駆使したウェブアプリケーションを開発してしまうと、運

    y_uuki
    y_uuki 2014/09/02
  • Tengの最近の雛形

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Tengの最近の雛形
  • Teng::Plugin::RowObjectCreationSwitcherが便利な件 | おそらくはそれさえも平凡な日々

    https://metacpan.org/release/Teng-Plugin-RowObjectCreationSwitcher @tsucchi さんに上げてもらったのでその話。 追記 注意 tokuhiromに意見をもらって0.02でインターフェースが変わりました。 temporary_suppress_row_objects_guard( 1 / 0 ) を新設 (dis|en)able_row_object を廃止 ガードオブジェクト受け取らないとエラーになるように 「こういう$tengみたいなグローバルなオブジェクトの内部を一時的に変えるみたいなのはやらないほうがいいですね!」 と、tokuhiromに言われており、実際そうなので、やるなら自己責任で気をつけて使いましょう。 言われてみると、$teng->suppress_row_objectsがそもそもrwなのが怖い感じがし

    Teng::Plugin::RowObjectCreationSwitcherが便利な件 | おそらくはそれさえも平凡な日々
    y_uuki
    y_uuki 2013/10/01
  • Teng 0.19 | tech - 氾濫原

    メンテナになってからしばらくパッチあてたりしつつ放っておいたのですが、0.19 として出しました。 Teng::Row が結構書き変えられているので、そのへんちょっと気をつけて使ったほうがいいかもしれないです。inflate/deflate まわりの挙動をまともにしたつもりです。今までなんとなく動いていた感じだったので…… それにともなって set/get というメソッドが追加されています また、kazeburo さんのパッチにより is_changed メソッドが追加されています。これにより実際は update しなくてもいいケースを簡単に判定しやすくなっています。デフォルトでは今まで通りなので実際にそうするには呼び出し側で判定をする必要があります。 0.19 には入れず、今後やろうとか思っていること 自分で書いたのは以下あたり。ちょっと冷却期間中です。 https://github.c

  • おそらくはそれさえも平凡な日々: Teng::Plugin::SearchJoinedとSQL::Maker::JoinSelectとKyoto.pmの話

    https://metacpan.org/module/Teng::Plugin::SearchJoined https://metacpan.org/module/SQL::Maker::Plugin::JoinSelect N+1問題という近年まことしやかに語られるようになった言葉があります。当たり前の事象に大げさに名前をつけるのどうなのかと思ったりもするわけですが、名前が付いていると案外説明に便利だったりして「名前重要」だなーとか思ったり思わなかったりするわけです。 最近はTengを便利に使わせてもらっているわけですが、Tengはシンプルな分、何も考えないで使うとN+1問題が多発してしまいます。そう言う思想なわけです。 クエリ数を抑えるためにJOINしたクエリを投げたくなるわけですが、そうなると自分で投げるしか無くて、それはまだいいとしても、普段Rowオブジェクトを使い慣れているゆる

  • Amon2+TengとMVC的Modelの実装 | UCWD-Studio

    前回のTengのリファレンスに続き、今度はAmon2でTengを利用するケース。これは amon2-setup.pl を実行する際に flavor に Teng を指定するとすぐに利用できるようになります。以下、一応手順。 Amon2, Teng, Amon2::Setup::Flavor::Teng が入ってない場合はインストール $ cpanm Amon2 Teng Amon2::Setup::Flavor::Teng 任意の場所で Amon2 のスケルトンを作成。この際 flavor に Teng を指定 $ amon2-setup.pl --flavor=Basic,Teng MyApp amon2-setup.pl を実行すると指定したプロジェクト名(上の例では MyApp)のディレクトリとともにスケルトンが作成されます。 use File::Spec; use File::Ba

    Amon2+TengとMVC的Modelの実装 | UCWD-Studio
  • 【Amon2のオレオレTips】Test::mysqldを使ってTengのSchemaクラスをラクラク生成 | hirobanex.net

    schema.sqlみたいなファイルにmysqlのテーブル定義を管理しているとして、その修正をした時にできるだけ楽にMyDB::SchemaみたいなTengのSchemaクラスを生成するというときのオレオレTipsです。 TengのSchemaクラスの生成について このTipsはAmon2とは直接関係ないですが、Teng使う場合はきっとついてくる問題だと思ったのですし、Amon2とTengを一緒に使う人はたくさんいるでしょうと思ったりしたので、オレオレTipsとして入れ込みました。 で早速題ですが、PerlのO/RマッパーのTengを使う場合は、Schemaクラスというのを用意しなくてはいけないんですが、その作り方としては主に3つあります。 手で色々とゴニョゴニョ書く Teng::Schema::Dumperを使って自動生成する Teng::Schema::Loaderを使ってSchem

  • ベンチどうしますか? - Articles Advent Calendar 2011 Dbix

    どうもnekokakです。 みなさんDBIを使っているコードのベンチマークってどうしてますか? SQLのチューニングであればいいのですが、ロジックのベンチマークを取りたい時に 実際にdatabaseにクエリなげてしまうと、ネットワーク通信等が発生し、細かいロジックのチューニングの邪魔になることがあります。 たとえば私はTengのチューニングをするときに、バックエンドのdatabase性能なんてどうでもよくて、 プログラムの性能をみたいわけです。 そんなときに便利なのがTest::Mock::Guardです。(え Testというnamespaceにありますが、やっていることはコードをさしかえることなので これをつかって実際にデータベースにクエリなげるところとかをフガフガします。 例えばTengのベンチマークを取る時に試したコードは以下のようなものです。 #! /usr/bin/perl us

    ベンチどうしますか? - Articles Advent Calendar 2011 Dbix
  • /articles/advent-calendar/2011/teng

  • 1