エロサイト管理者の憂鬱Ⅲエロくない7つの開発することについて
Hokkaido.pm#042011年2月19日yusukebe
Yusuke Wada和田裕介
Hokkaido.pmだからこその問題発見
地方からPerlスター★が現れていない??
Q.東京はPerl企業が多いから当然じゃない?
A. 大きな企業に所属しなくてもできることはある!
ライブラリエンジニア
アプリケーションエンジニア
大企業に所属しなくても個人としてPerlスター★になるための
7つのこと
Webアプリケーション版
1. モチベーションは何か
金?
ネットの新しい価値
ペイ・フォワード
とにかく作って表現をしよう
2. 企画をする
アイデアとは既存の要素の新しい組み合わせ以外の何ものでもない
アイデアの元を貯める
アイデアに行き詰まったら...
シャワーを浴びよう!
アイデアは組み合わせ詰まったらシャワーを浴びよう
3. sandboxディレクトリで遊ぶ
./!"" repo# !"" Changes# !"" MANIFEST.SKIP# !"" Makefile.PL# !"" README# !"" lib# # %"" SampleApp.pm# !"" t# # %"" 00_compile.t# %"" xt# !"" 01_podspell.t# !"" 02_perlcritic.t# !"" 03_pod.t# %"" perlcriticrc%"" sandbox
何のために遊ぶか?
リスク!リスク!
政治リスク
技術リスク
スキルリスク
...
「面白いかどうか」もリスクボツにする勇気を
4. フレームワークをどうするか
Web Application Framework+
O/R Mapper
+ DBIx::Class
or ...
自作WAF + Teng
Catalystを使うのは恥ずかしいことではない状況によって使い分けよう!
ちなみに...no KVS, use MySQL !!
5. アプリを1週間で作る
鉄は熱いうちに打て
OSXで全てできてしまう(VMWareもいいね!)
./lib!"" SampleApp# !"" CLI# # %"" Crawler.pm# !"" Role.pm# %"" Web# !"" API.pm# %"" Controller# %"" Root.pm%"" SampleApp.pm
典型的なアプリ構成
use Mouse::Role;
use Mouse;with “SampleApp::Role”;
$c->model(“API”)->get_entries();
できない所は楽をしよう
6. デプロイする
どこで公開するか?
自宅サーバ?
速い - 契約からサーバ立ち上げまで安い - 512MB $19.95 / 1month融通が利く - リサイズ、DNSサーバ、
コンソール、iPhoneアプリ
VPS!
7. 運用をしていく
死活監視
「監視とは継続的なテストである」by kazuho
http://developer.cybozu.co.jp/kazuho/2010/01/cronlog-52f2.html
use LWP::UserAgent;use Email::Sender::Simple qw(sendmail);use Email::MIME;use Try::Tiny;use YAML qw(LoadFile);use Path::Class qw( file );
my $file = $ARGV[0] || "config.yaml";die "Can't open $file" unless ( -f file($file)->stringify );my $config = LoadFile( file($file) );my $ua = LWP::UserAgent->new( agent => 'Monita/0.01', timeout => 30 );
for my $url ( @{ $config->{url} } ) { my $res = $ua->get($url); send_report( $res ) unless $res->is_success;}
sub send_report { my $res = shift; my $email = Email::MIME->create( header => [ From => $config->{from}, To => $config->{to}, Subject => $res->request->uri . ' : ' . $res->code, ], attributes => { content_type => 'text/plain', }, body => $res->status_line, ); try { sendmail($email) } catch { my $error = $_; warn $error->message };}
最低限、死活監視はそして最低限の死活監視でも...
おさらい
1.とにかく作って表現しよう2.組み合わせがアイデア3.リスクを検証しよう4.フレームワークはご自由に5.素早くアプリケーションを作ろう6.デプロイはVPSを検討しよう7.死活監視は最低限やりましょう
さて...
なぜPerlか?
ライブラリエンジニア
アプリケーションエンジニア
文化
最後に
アイデアを思いつく人はたくさんいるが、作れる人は少ない
次のPerlスター★はあなたです!
Top Related