Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Backlogでの
Perlのつかいかた
   山本 竜三




           Fukuoka Perl Workshop #13
                          2009/08/22
自己紹介

山本 竜三
 –   やまもと りゅうぞう
 –   株式会社ヌーラボ所属
 –   dragon3
お題


    Backlogでは
    どんな感じで
Perlを使っているの?
予定
• Backlogってなに?

• 全体の構成

• どんなふうにPerlを使っているか?
Backlogってなに?
•   プロジェクト管理ツール
    –   課題管理
    –   Wiki
    –   Subversion
    –   ファイル共有(WebDAV)
Backlogの構成
Backlogの構成 - メイン
Backlog ≒ Java ?


  メインは
  Javaです
Backlog での Perl利用歴
•   2006年
    –   運用やメンテナンス系をPerlで
•   2007年
    –   徐々にアプリにも拡大
         •   メールでコメント登録
         •   Su...
Backlogの構成
Backlog = Java + Perl ?
•   Java
     –     Webアプリケーション (PC版)
     –     日次メール送信
•   Perl
     –     Webアプリケーション
         ...
携帯版Webアプリ - 構成
•   Backlog::Mobile
•   Catalyst (5.80007)
•   DBIx::Class
•   TT
•   日本&携帯的
     –   HTTP::MobileAgent
   ...
携帯版Webアプリ - Catalyst
•     Moose的実装が便利
use Moose;
override 'uri_for' => sub {
    my ( $c, $arg ) = @_;
    my $uri = supe...
携帯版Webアプリ - 絵文字
•   絵文字のキャリア間変換
    –   変換用のView作成
    –   HTML::Entities::ConvertPictogramMobileJp
•   Backlog独自の絵文字
    ...
携帯版Webアプリ - データアクセス

•   データの参照はDBに直接アクセス
    –   MySQLマスター/スレーブで負荷分散(予定)
•   更新系はPC版WebアプリのAPIを使用
    –   XML-RPCで
    – ...
運用Webアプリ - 構成
•   CGI::Application
•   Class::DBI

… 古くからあるのです
SubversionやWebDAVの認証
•   Backlog::Apache
•   mod_perlハンドラ
    –   PerlAccessHandler
    –   PerlAuthenHandler
    –   Perl...
Subversionフック
•      Backlog::SVN::Hook
•      (pre|post)-hookでキックされる
    #!/bin/sh

    PERL=/usr/bin/perl
    REPOS_PATH...
まとめ と これから
•   Backlogでは結構Perlを使っています
•   実運用での事例として紹介しました

•   これからは”モダン”に使っていきたい
ご清聴
ありがとうございました
Upcoming SlideShare
Loading in …5
×

Backlogでの Perlのつかいかた

2,027 views

Published on

  • Be the first to comment

Backlogでの Perlのつかいかた

  1. 1. Backlogでの Perlのつかいかた 山本 竜三 Fukuoka Perl Workshop #13 2009/08/22
  2. 2. 自己紹介 山本 竜三 – やまもと りゅうぞう – 株式会社ヌーラボ所属 – dragon3
  3. 3. お題 Backlogでは どんな感じで Perlを使っているの?
  4. 4. 予定 • Backlogってなに? • 全体の構成 • どんなふうにPerlを使っているか?
  5. 5. Backlogってなに? • プロジェクト管理ツール – 課題管理 – Wiki – Subversion – ファイル共有(WebDAV)
  6. 6. Backlogの構成
  7. 7. Backlogの構成 - メイン
  8. 8. Backlog ≒ Java ? メインは Javaです
  9. 9. Backlog での Perl利用歴 • 2006年 – 運用やメンテナンス系をPerlで • 2007年 – 徐々にアプリにも拡大 • メールでコメント登録 • Subversion+WebDAV機能の追加 • 2009年 – 携帯版開発でPerlを採用 • プロトタイプがそのまま...
  10. 10. Backlogの構成
  11. 11. Backlog = Java + Perl ? • Java – Webアプリケーション (PC版) – 日次メール送信 • Perl – Webアプリケーション • 携帯版 • 運用システム – SubversionやWebDAVの認証 • mod_perlハンドラ – Subversionフック • 容量チェックやコミットメール送信 – メールでコメント登録
  12. 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. 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. 14. 携帯版Webアプリ - 絵文字 • 絵文字のキャリア間変換 – 変換用のView作成 – HTML::Entities::ConvertPictogramMobileJp • Backlog独自の絵文字 – 単に画像タグへの置換 • PC版Webアプリにも同様の変換を実装
  15. 15. 携帯版Webアプリ - データアクセス • データの参照はDBに直接アクセス – MySQLマスター/スレーブで負荷分散(予定) • 更新系はPC版WebアプリのAPIを使用 – XML-RPCで – WebService::Backlog
  16. 16. 運用Webアプリ - 構成 • CGI::Application • Class::DBI … 古くからあるのです
  17. 17. SubversionやWebDAVの認証 • Backlog::Apache • mod_perlハンドラ – PerlAccessHandler – PerlAuthenHandler – PerlAuthzHandler – 他
  18. 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. 19. まとめ と これから • Backlogでは結構Perlを使っています • 実運用での事例として紹介しました • これからは”モダン”に使っていきたい
  20. 20. ご清聴 ありがとうございました

×