モダンな Perl プログラミング

Preview:

DESCRIPTION

 

Citation preview

モダンな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

イベント駆動プログラミングのモジュール

以上です

ご静聴ありがとうございました

Recommended