モダンな perl プログラミング
DESCRIPTION
TRANSCRIPT
モダンなPerl プログラミング
天野卓 @ ToI 企画
自己紹介
佐久市で Web アプリケーションを開発しています。
LAMP
Movable Type のプラグインをフリーソフトウェアと
して配布しています。
http://tec.toi-planning.net
CPAN でも活動しています。
http://search.cpan.org/~usualoma/
アジェンダ
Perl とは
Perl5 の言語としての特徴
モダンなプログラミングスタイル
Moose
Catalyst
最近の動向
PSGI
AnyEvent
Perl とは
スクリプト言語
必要かつ十分に実行速度が高速
柔軟な文法と高い拡張性
豊富な拡張ライブラリ
TMTOWTDI (There's more than one way to do it)
「やり方はひとつじゃない」
Perl の歴史
1987 年 1.0
1994 年 5.0
オブジェクト指向プログラミングをサポート
2000 年 5.6
our 文 や warning プラグマの導入
2002 年 5.8
Encode が標準ライブラリになる
2010 年 5.12 6
どこで使われているか?
S 2ファクトリー株式会社
株式会社ガイアックス
株式会社ディー・エヌ・エー
株式会社ミクシィ
株式会社モバイルファクトリー
株式会社ライブドア
株式会社リクルート( Media Technology Labs )
YAPC::Asia Tokyo 2010 の協賛企業
Perl5 の言語としての特徴
“use strict; use warnigs;” で安全なプログラミング
明示的に指定するスコープ
後付けの結果として柔軟なオブジェクト指向
リフレクション
アトリビュート
use strict; use warnings; (1)
use strict; use warnings; (2)
use strict; use warnings; (3)
use strict; use warnings; (4)
明示的に指定するスコープ (1)
明示的に指定するスコープ (2)
明示的に指定するスコープ (3)
明示的に指定するスコープ (4)
オブジェクト指向 (1)
オブジェクト指向 (2)
オブジェクト指向 (3)
リフレクション
アトリビュート (1)
アトリビュート (2)
アトリビュート (3)
モダンなプログラミングスタイル
Moose
Catalyst
Moose
A Postmodern Object System for Perl
Perl の高い拡張性を利用して、 Perl 上で近代的なオプ
ジェクト指向プログラミングをサポートしようといういうモ
ジュール
代表的な Moose の機能
オブジェクトの定義
宣言的なオブジェクト定義
オブジェクトのロール
Java の Interface や Ruby の mixin みたいな機能
オブジェクトの定義 (1)
オブジェクトの定義 (2)
オブジェクトの定義 (3)
オブジェクトの定義 (4)
オブジェクトのロール
Traits(Composable Units of Behavior) の概念の実現
http://web.cecs.pdx.edu/~black/publications/TR_
CSE_02-012.pdf
Java の Interface や Ruby の mixin みたいな機能
オブジェクトのロール (1)
オブジェクトのロール (2)
オブジェクトのロール (3)
オブジェクトのロール (4)
オブジェクトのロール (5)
オブジェクトのロール (6)
オブジェクトのロール (7)
オブジェクトのロール (8)
Catalyst
MVC アーキテクチャを持つ WAF
いくつかの WAF に強く影響を受けている
Ruby on Rails, Maypole, Spring
プラグイン
ジェネレータースクリプト
組み込みのサーバー
テスト
プロジェクトの生成
コントローラーの雰囲気
最近の動向
PSGI
フレームワークとサーバをつなぐ仕様
WSGI や Rack を参考にして作られた
AnyEvent
イベント駆動プログラミングのモジュール
以上です
ご静聴ありがとうございました