Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

mooseに関するsfujiwaraのブックマーク (12)

  • http://blog.eorzea.asia/2009/10/post_70.html

  • YAPC::Asia 2009 特別研修 - Moose 入門

    先週末の YAPC::Asia 2009 のカンファレンスに引き続き、特別研修『Moose入門、モダーンなオブジェクト指向システム』に参加してきた。 研修の内容は、Moose とはなんぞやから始まり、以下(だいたい)7 部構成の入門講座。 Moose Concepts : コンセプト ざっと機能一通りみてみる なぜ Moose なのか Classes : Class の基礎から使い方 Moose::Object が何持ってるかとか BUIDLARGS, extends, override, super の使い方 Moose 使ったあとの後始末 (no Moose;) Role : Role の基礎から使いかた Role の持つ意味 使い方 alias で衝突回避 Basic Attributes : Attribute いろいろ required, default/builder, laz

  • Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 - D-6 [相変わらず根無し]

    Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 最初からMooseベースでアプリケーションを作るというのは、実務ではなかなか難しいのはわかります。一般論は JPA #02で話すのでおいておきますが(参加申し込みは今日5/12までですよ!)、5.8 からMoose化したCatalystであった問題・注意点をちょっと書き出してみます。 1. use Catalyst Catalyst::Upgradingを読んでいると package MyApp; use Moose; extends 'Catalyst'; __PACKAGE__->setup(qw/ ConfigLoader /); という表記が見られるが、これは気をつけないと駄目。 自分が直面した問題は、path_to()等を使った時に起こった。path_to() は現アプリのルートディレクトリ

  • 社内勉強会 - Pixel Pedals of Tomakomai

    Moose::RoleはJavaのInterfaceなんかじゃないの内容を社内勉強会でやったので、スライドだけ貼っておきます。 slideshareの貼り方ははてなブログでslideshareのプレゼンテーションflashを貼る方法で教わりました。

    社内勉強会 - Pixel Pedals of Tomakomai
  • Moose::RoleはJavaのInterfaceなんかじゃない - Pixel Pedals of Tomakomai

    Moose::RoleはJavaのInterfaceと似たような物だと思ってたんですが、大きな誤解でした。 モダンPerlの世界へようこそを読んで、Moose::RoleはTraits: Composable Units of Behaviorの概念の実装らしいことがわかったので、この論文を読んでみました。*1。非常に面白い内容でした。P.12 の a) と b) を見るだけでも、この概念の面白さが伝わるんじゃないかと。要は、指定した振る舞い(requires)から新しい振る舞い(provides)を作るものが、Traitsってことです。(ただし、ここで言う振る舞いにはアクセサを含みます。) 誤解していたこと Moose::RoleをTraitsとして見なすとすれば、JavaのInterfaceの性質である以下の2点は誤解です*2。 Moose::Roleは、単なるインタフェース(API)

    Moose::RoleはJavaのInterfaceなんかじゃない - Pixel Pedals of Tomakomai
  • モダンPerl入門でMooseに入門してみた - bonar note

    Perl界隈の期待の新刊「モダンPerl入門」。読んじゃいました。 モダンPerl入門 (CodeZine BOOKS) 作者: 牧大輔出版社/メーカー: 翔泳社発売日: 2009/02/10メディア: 大型購入: 23人 クリック: 465回この商品を含むブログ (112件) を見る Perl基礎の表層を一通りなめたものの、初心者からなかなか抜け出せない僕のような人のためにかかれたですね。感動しました。読んで満足してこのまま終わってしまいそうだったので、書いてある内容を実践してみてようと思います。 注意 調べながら書きながらなので間違っている箇所もあるかもです。ツッコミお待ちしております。 Moose と Class::MOP の機能をおそらく混同してます。すいません。 Mooooooose モダンPerl入門は "Class::Accessor::Fast と Moose" という

    モダンPerl入門でMooseに入門してみた - bonar note
  • HTTP::Engine drops Moose for Shika, gains massive speedup - Mark Stosberg

    When I recently benchmarked several Perl website development tools, HTTP::Engine had dismal performance. The slowest performer, it took 1.5 seconds just to print "Hello World" in a CGI environment and took 14.6 megs of memory to it. Today the first HTTP::Engine release appeared that replaces Moose with Shika. Shika provides the essential class-building tools that HTTP::Engine needs with a Moose-co

  • MooseX::WithCacheを書いた - D-6 [相変わらず根無し]

    MooseX::WithCacheを書いた オブジェクト、特にビジネスロジックを書くときに、その結果をキャッシュに突っ込んでおくことがとにかく多い。 で、まぁそういう共通コードはベースクラスに入れておけばいいやって感じで書いてたんだけど、それももう5回目くらいになって最近もう当にそれが面倒くさくなってきたので、丸ごとパッケージングした。それがMooseX::WithCache 話は単純で、要はcacheオブジェクトへのリファレンスをそれぞれのオブジェクトが持っていて、それに対するアクセスを簡単にするメソッドを生やしてやっているだけ。 package My::Thing; use Moose; use MooseX::WithCache; with_cache 'cache'; # デフォルトはCache::Memcached no Moose; no MooseX::WithCache;

  • Mooseは「使いやすいオブジェクト定義ツール」じゃないよ - D-6 [相変わらず根無し]

    Mooseは「使いやすいオブジェクト定義ツール」じゃないよ Mooseは「使いやすいオブジェクト定義ツール」じゃないよ。MooseはPerlにおける「オブジェクト指向の革命」ですよ。 http://dann.g.hatena.ne.jp/dann/20080814/p2http://d.hatena.ne.jp/fbis/20080814/1218689670http://d.hatena.ne.jp/a666666/20080813/1218628821http://anond.hatelabo.jp/20080621124021 ぶっちゃけ"has"が使えるとか、勝手にnew()を作ってくれるとか、そういうことはどうでもいいのです。Mooseが革命児たる所以はオブジェクトの初期化・クリーンアップ・メソッドのコールチェインをPerlという言語において初めて(呼び出される順番とか、そういう

  • MooseX::Daemonizeがセクシーすぎる件について - D-6 [相変わらず根無し]

    MooseX::Daemonizeがセクシーすぎる件について さて、すっかりMoose厨となりつつある私ですが、この度デーモンスクリプトを書くことになりましたのでMooseでこれをするのは何がいいかなと考えていたわけです。したらなんでもありますな、CPANは。MooseX::Daemonizeですよ、奥さん。 考え方としては、スクリプトの書式をコントロールするオブジェクトをまず作ります。 package MyDaemon; use Moose; with 'MooseX::Daemonize'; コマンドラインから受け取るオプション等はこのオブジェクトの属性として指定します。 has 'option1' => ( is => 'rw', isa => 'Str', required => 1 ); has 'option2' => ( is => 'rw', isa => 'Bool',

  • hide-k.net#blog: MooseとClass::MOPでメタプログラミング始めた

    今、超熱いMoose始めたよ。 で、Moose理解するにはClass::MOP理解しなきゃいけなくて、Class::MOP理解するにはMOP理解しなきゃいけないので、ircでえろい人たちに色々教わったのでメモ。 メタプログラミング メタプログラミング - Wikipedia ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法 んで、これを実現するために必要なのがメタクラスとMOP。 MOP(メタオブジェクトプロトコル) メタクラスを通してオブジェクトシステムへアクセスするAPI メタクラス クラスの振る舞いを定義したクラスでイントロスペクション(introspection)とインターセッション(itercession)を備える イントロスペクション オブジェクトの属性を得る能力 ex) 何のクラスを継承してい

  • 2008-05-01 - Yappo::タワシ

    空前のMooseブームが到来してるのでCookbook読んで理解したことを書いた。 Roleについてはdannさんが書いてるので割愛。 http://catalyst.g.hatena.ne.jp/dann/20080501/p1 Moose っつうのは高機能なAccessorが作れる以外にも、親クラスのメソッドの前後に色々hookできたりとか、中にhookしたりとか、java的なinterface定義できたりとかできるよ。 OOPらしいOOPをPerlで実現させるって言われてるけど、Perl的に言うと上の一文じゃないのかな。 他にも何ができるか見てる最中。 今日はMooseネタしか書かないから http://d.hatena.ne.jp/yappo/20080501 をブクマするといいよ。

  • 1