• Save
シックス・アパート・フレームワーク
Upcoming SlideShare
Loading in...5
×
 

シックス・アパート・フレームワーク

on

  • 6,939 views

 

Statistics

Views

Total Views
6,939
Views on SlideShare
6,933
Embed Views
6

Actions

Likes
6
Downloads
0
Comments
0

3 Embeds 6

http://www.slideshare.net 4
http://paper.li 1
http://s.deeeki.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

シックス・アパート・フレームワーク シックス・アパート・フレームワーク Presentation Transcript

  • シックス・アパート・フレームワーク シックス・アパート株式会社 YAPC::Asia 2009
  • 自己紹介  
  • 重田崇嗣 (Takatsugu Shigeta)
    • TypePad 開発 シニアマネージャー
    • 2005 年 5 月 シックス・アパート株式会社入社 -> TypePad 開発エンジニア
    • 2007 年 11 月 TypePad 開発 シニアマネージャー
    • 現在に至る
  • TypePad Profiles http://www.typepad.com/profiles/
  • http://profile.typepad.com/comewalk  
  •  
  • Where is TypeKey?
  • " TypeKey is now part of TypePad    TypeKey has evolved, and is now part of TypePad." http://www.typepad.com/profiles/typekey-faq.html
  • Get started right away ! http://www.typepad.com/profiles/
  • 会社紹介
  • 会社概要
    • シックス・アパート株式会社 ( 英文 : Six Apart KK)
    • 米国 Six Apart の日本法人
    • SAKK と呼ばれることもあります。
  • http://www.sixapart.jp/anniversary/history.html
  • http://www.sixapart.jp/anniversary/history.html
  • http://www.sixapart.jp/anniversary/history.html
  • http://www.sixapart.jp/anniversary/history.html
  • http://www.sixapart.jp/anniversary/history.html
  • twitter.com/sixapartkk twitter.com/sixapart
  • 製品紹介
  • Movable Type TypePad Vox
  • http://blogs.com/
  • http://jp.blogs.com/
  •  
  • シックス・アパート・フレームワーク
  • Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • MT フレームワーク   ArcheType
  • MT フレームワーク
  • Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  •  
  • http://conferences.yapcasia.org/ya2008/talk/1005
  • use base qw( MT );
  • Movable Type Directory Tree : /
    • +--addons +--alt-tmpl +--default_templates +--extlib +--import
    • +-- lib +--mt-static +--php +--plugins +--search_templates +--themes +--tmpl +--tools
    •  
  • Movable Type Directory Tree: lib/MT
    • +--MT |  +--App |  |  +--Search |  +--ArchiveType |  +--Asset |  +--Auth |  +--BackupRestore |  +--Cache |  +--CMS |  +--Compat |  +--FileMgr |  +--I18N |  +--L10N
    • |  +--Meta |  +--Object |  +--ObjectDriver |  |  +--DDL |  |  +--Driver |  |  |  +--Cache |  |  |  +--DBD |  |  +--SQL |  +--Plugin |  +--Revisable |  +--Summary
    |  +--Template |  |  +--Context |  |  +--Tags |  +--Theme |  +--TheSchwartz |  +--Upgrade |  +--Util |  |  +--Archive |  |  +--YAML |  +--Worker
  • (Show Class Tree)
  • Model: MT::Object
  •  
  • ( 例 ) MT::Entry
    • package MT::Entry; use strict;
    • use base qw( MT::Object MT::Taggable MT::Scorable MT::Summarizable MT::Revisable );
    • __PACKAGE__->install_properties({     column_defs => {         'id' => 'integer not null auto_increme
  • Create / Read
    • # create new
    • my $entry = MT->model('entry')->new;
    • $entry-> save ;
    • # read one
    • my $entry = MT->model('entry')-> load ($entryid);
    • # use iterator
    • my $iter = MT::Tag-> load_iter ( { id => @tag_ids } );
    • while (my $tag = $iter->()) {
    •     print $tag->name;
    • }
  • Update / Delete
    • my $entry = MT->model('entry')-> load ($entry_id);
    •  
    • # update
    • $entry->title('YAPC::Asia 2009');
    • $entry-> save ;
    • # delete
    • $entry-> remove ;
  • View: MT::Template
  • $app->load_tmpl( 'list_blog.tmpl', param );
    •     require MT::Template;     my $tmpl = MT::Template->new (
    •         ( 中略 )     );
    MT::Component->load_tmpl
  • Controller: MT::App
    • 1     mt.cgi?__mode=list_blog にアクセス
    • 1.1   MT::CMS::Blog->list へディスパッチ
    •   use MT::Bootstrap App => 'MT::App::CMS';
    • 1.1.1 ページ作成
    •   sub list {
    •   ( 中略 )
    •     return $app->load_tmpl( 'list_blog.tmpl', param );
    •   }
  • Plugins / Addons Callbacks
  • Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • Model: TypePad::Object
  •  
    • Create
    •   my $entry = MT::Entry->new; $entry->save;
    • Read
    •   my $entry = MT::Entry->lookup($id);
    •  
    •   my $iter = MT::Entry->search({domain=>'help.typepad.jp'});
    •   my $entry = $iter->();
    • Update
    •   my $entry = MT::Entry->lookup($id); $entry->save;
    • Delete
    •   my $entry = MT::Entry->lookup($id); $entry->delete;
  • View: HTML::Template
  • Controller: MT::App
  • Plugins Callbacks / Hooks Portal
  • Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • Why Open Matters [It Pro Challenge 2008] http://www.slideshare.net/miyagawa/why-open-matters-it-pro-challenge-2008-presentation
  • YAPC::Asia 2008 - ArcheType room
  • “ We’re migrating TypePad to a next-generation platform, essentially a new infrastructure based on the best of what we’ve learned from Vox, Movable Type and over five years of development on TypePad” July 31, 2008 Building A Bright New TypePad http://everything.typepad.com/blog/2008/07/building-a-br-1.html
  • ArcheType
  •  
  •  
  • package TypePad::App ;
    • use Catalyst qw( ArcheType                  ArcheType::Analytics                  ArcheType::Data                  ArcheType::I18N                  ArcheType::iPhone                  ArcheType::JSONRPC                  ArcheType::Mobile                  ArcheType::TokenValidation                  Authentication::TypeCore                  AtomServer                  XMLRPC                  Compress::Gzip                  MortalForward                  PathFilters                );
  • ArcheType の位置づけ Catalyst ArcheType Vox TypePad
  • We are using Catalyst 5.7x
  • ArcheType Directories
    • +-- archetype
    • |  +--lib
    • |  |  +-- ArcheType
    • |  |  |  +-- Assets
    • |  |  +-- Catalyst
    • |  |  |  +-- Plugin
    • |
    • +-- typepad
    • |  +-- lib
    • |  |  +-- ArcheType
    • |  |  |  +-- Assets
    • |  |  +-- Catalyst
    • |  |  |  +-- Plugin
    • |  +-- templates
  • Model
    • my $user = ArcheType::M::User->lookup_by_email(
    •     'ben@sixapart.com’
    • ); 
    •  
    •  
    • How we build Vox
    • http://www.slideshare.net/miyagawa/how-we-build-vox
  • View
    • typepad/lib/TypePad/App/V/JSON.pm:
    • use base qw( Catalyst::View::JSON );
    • typepad/lib/TypePad/App/V/TT.pm:
    • use base qw( TypeCore::Catalyst::View::TT );
    • typepad/lib/TypePad/App/V/Atom.pm:
    • use base qw( Catalyst::View::Atom::XML );  
    • typepad/lib/TypePad/App/V/XML.pm:
    • use base qw( Catalyst::View );
  • Controller
    • package TypePad::App::C::Dashboard;
    • package ArcheType::C::Asset;
  •  
    • # Access to http://www.typepad.com/site/blogs/<id>/dashboard
    • sub dashboard : PathPart Chained( 'blog' )
    • # Access to http://www.typepad.com/site/blogs/<id>/comment/<id>/
    • sub comment : PathPart( 'comment' ) Chained( 'blog' ) CaptureArgs( 1 )
  • forwarding
  • Why did you adopt Catalyst?
    • we wanted to move away from managing our own application framework (MT::App, in MT and TP)
    • we liked the API that Catalyst provided (Request/Response objects, etc)
    • we liked the dispatching mechanism
    • Catalyst was the first such framework for Perl that felt like a good fit for us
  • 開発関連  
  • ドキュメント MediaWiki Kwiki  
  • ソースコード管理 Subversion Trac  
  • 110000+ (end of Aug 2009) since 1 Dec 2007
  • バグトラッキング FogBugz  
  • http://www.fogcreek.com/FogBugz/
  • ソースコードレビュー Review Board  
  • http://www.review-board.org/
  • コミュニケーション IRC/Jabber/ メール /Polycom  
  • オープンソース  
  • http://code.sixapart.com/
  • http://www.sixapart.com/labs/
  • http://github.com/sixapart
  • http://conferences.yapcasia.org/ya2008/
  • http://conferences.yapcasia.org/ya2008/talk/1005
  • http://movabletype.org/
  •  
  • http://conferences.yapcasia.org/ya2008/talk/1145
  • http://start.typepad.jp/typecast/#typecast
  • http://start.typepad.jp/typecast/#emoji-about
  •  
  • http://www.sixapart.jp/ http://www.sixapart.com/
  • ご清聴ありがとうございました!