More Related Content
Similar to Backlogでの Perlのつかいかた
Similar to Backlogでの Perlのつかいかた (20)
Backlogでの Perlのつかいかた
- 3. お題
Backlogでは
どんな感じで
Perlを使っているの?
- 5. Backlogってなに?
• プロジェクト管理ツール
– 課題管理
– Wiki
– Subversion
– ファイル共有(WebDAV)
- 9. Backlog での Perl利用歴
• 2006年
– 運用やメンテナンス系をPerlで
• 2007年
– 徐々にアプリにも拡大
• メールでコメント登録
• Subversion+WebDAV機能の追加
• 2009年
– 携帯版開発でPerlを採用
• プロトタイプがそのまま...
- 11. Backlog = Java + Perl ?
• Java
– Webアプリケーション (PC版)
– 日次メール送信
• Perl
– Webアプリケーション
• 携帯版
• 運用システム
– SubversionやWebDAVの認証
• mod_perlハンドラ
– Subversionフック
• 容量チェックやコミットメール送信
– メールでコメント登録
- 12. 携帯版Webアプリ - 構成
• Backlog::Mobile
• Catalyst (5.80007)
• DBIx::Class
• TT
• 日本&携帯的
– HTTP::MobileAgent
– Net::CIDR::MobileJP
– Encode::JP::Mobile
– HTML::Entities::ConvertPictogramMobileJp
– Lingua::JA::Regular::Unicode
- 13. 携帯版Webアプリ - Catalyst
• Moose的実装が便利
use Moose;
override 'uri_for' => sub {
my ( $c, $arg ) = @_;
my $uri = super();
if ( $c->stash->{space} ) {
$uri->path( '/' . $c->stash->{space}->space_key . $uri->path );
}
return $uri;
};
Backlog::Mobile
- 14. 携帯版Webアプリ - 絵文字
• 絵文字のキャリア間変換
– 変換用のView作成
– HTML::Entities::ConvertPictogramMobileJp
• Backlog独自の絵文字
– 単に画像タグへの置換
• PC版Webアプリにも同様の変換を実装
- 15. 携帯版Webアプリ - データアクセス
• データの参照はDBに直接アクセス
– MySQLマスター/スレーブで負荷分散(予定)
• 更新系はPC版WebアプリのAPIを使用
– XML-RPCで
– WebService::Backlog
- 17. SubversionやWebDAVの認証
• Backlog::Apache
• mod_perlハンドラ
– PerlAccessHandler
– PerlAuthenHandler
– PerlAuthzHandler
– 他
- 18. Subversionフック
• Backlog::SVN::Hook
• (pre|post)-hookでキックされる
#!/bin/sh
PERL=/usr/bin/perl
REPOS_PATH="$1"
REV="$2"
TOTAL_COMMIT_SIZE=`cat "${REPOS_PATH}/db/revs/${REV}" | wc -c`
REPOS_PATH="$REPOS_PATH"
REV="$REV"
COMMIT_SIZE="$TOTAL_COMMIT_SIZE"
DSN="dbi:mysql:database=backlog;host=db"
$PERL -MBacklog::SVN::Hook -e 'Backlog::SVN::Hook->new->post_commit'
- 19. まとめ と これから
• Backlogでは結構Perlを使っています
• 実運用での事例として紹介しました
• これからは”モダン”に使っていきたい