mod_perlプログラマーが
YAPCで語るレガシー開発論
OGATA Tetsuji (@xtetsuji)
2015/09/11 YAPC::Asia リジェクトコン!
mod_perlプログラマーが
YAPCで語るレガシー開発論
OGATA Tetsuji (@xtetsuji)
2015/09/11 YAPC::Asia リジェクトコン!
リジェクトコン!
自己紹介
• 尾形 鉄次 (OGATA Tetsuji) a.k.a. @xtetsuji
• Blog: http://post.tetsuji.jp/
• mod_perl 芸人、無職
2015年は楽しいです😘
mod_perlを突き詰めたきっかけ
• 10年いた1社目の会社ではミドルウェアの導入に厳しい
制限があった(memcachedも却下されるほど)
• でもmod_perlで書くと何故かOK!!mod_perl最高!!
• mod_perl で KVS も書いたし、SMTPサーバも書いた
• 2012年と2013年には YAPC::Asia Tokyo でトーク
http://30d.jp/yapcasia/5/photo/476
先日、1社目にまだいる後輩と
飲み会をしました
http://post.tetsuji.jp/2015/05/modperl-legacy-development-opinion/
この時の詳しいお話はブログを
参照していただくとして
後輩とお話をしていて
• 今も1社目にいる後輩は、モダンな開発手法をなかなか
導入できずに苦悶していた
• レガシーな(?) mod_perl 企業であることへの負い目
• 私の退職直前に mod_perl の上に Mojolicious を載せた
ので最近は若干恵まれているようではあるものの、他の
部分の新しいチャレンジができない
とはいえ、私はこう思う
• 「我が社の採用技術欄」に古今東西のあらゆるプログラ
ミング言語が載っていると、ヤバいという感想しかない
• 中長期的視点を忘れて場当たりで技術を投入していると
数年後に「技術的負債が…」というのはお約束では?
• 少ない技術要素を尖らせることは、技術戦略として特に
間違っているとは感じない(採用戦略とかは別として)
https://flic.kr/p/rDT6pt
なにより
私は mod_perl が楽しいです😘
https://flic.kr/p/4Yk386
後輩のいるそこは、私が作った
mod_perlのユートピア🍩
https://flic.kr/p/4Yk386
そういえば、あの大企業向けに
書いたithreadsプログラム
今も動いているのかな…
https://flic.kr/p/2tMLZN
• 私「Apacheしか使えないのに、サーバ1台で毎分xxアク
セスをさばくのは絶対に無理です。サーバ増やして(ry」
• 上司「尾形くんの得意なmod_perlがあるじゃないか」
• 私「でもKVSも使えないし…」
• 上司「Apache を worker MPMで動かして、mod_perl
で ithreads のコードを書けばいけるんじゃない?」
• 私「え!?絶対に嫌です!!!書きたくない!!!」
https://flic.kr/p/aVVs98
結局、業務命令で書きました😞
でも、今も問題なく動いている
らしいから、結果楽しかった🎉
毎日がこんな感じの
アットホームな職場でした😆
mod_perl today
• mod_perl 2.0.9 で Perl 5.20 & Apache 2.4 対応
• 現在ベータの mod_perl 2.0.10 で Perl 5.22 対応予定
• Apache 3 計画は数年間音沙汰が無い
• Apache 2.4 での細かな MPM 改良などが楽しみ
まとめ
モダンの根底はレガシー
• PSGI は CGI をよく参考にしている
• Plack のリクエストやレスポンスの抽象化も、もともと
は mod_perl が源流の一つ(だと思っている)
• レガシーと言われている mod_perl を使って、モダンな
サーバの再実装は結構できる(是非はおいといて)
https://flic.kr/p/aoXzVx
縛りプレイも楽しめる
• 多くの技術要素を投入できても、数年後に負債になるの
であれば、一つの技術へのパラメータ全振りも悪くない
• 「何を使うか」にこだわりすぎて「何を成し遂げるか」
を往々にして忘れがち(使うものも大切だけど)
• 特に納品型受託開発の場合は、技術的要素が少ない方が
導入のしやすさやリスクポイントの少なさで喜ばれる事
もある
https://flic.kr/p/bVQEeK
採用や教育に関わる部分
• 変に尖ったことをやると、当然ながらノウハウが少ない
• 世間の潮流に合わせたほうが、採用も教育も楽
• 技術的要素が多いことも尖ったことも、引き継ぎコスト
が高いけれど、文書化などでコスト低減はできる
• 結局はバランス
https://flic.kr/p/dhKBmw
今も昔も問題は一緒
• 残念なコードは、環境がモダンだろうとレガシーだろう
と残念な人から生み出されるもの
• レガシーのせいにして、本質的な問題から目をそらして
いませんか?
• 一番良くないのは「隣の芝は青い」とひがむこと
https://flic.kr/p/4NnMw1
みんな自信を持とう!
• レガシー環境にいる人、若い人、受託開発、中小企業、
初心者……いろんな人と話していてもみんな自信がない
• mod_perl だって CGI だって悪くない場面が多いんだよ
• スターエンジニアではない生き方だって楽しい!
• こんな私がこれだけのびのびとしているんですから
https://flic.kr/p/5pSnNR
人生、楽しまないと損だし
https://flic.kr/p/dQf8Wk
高度に発達したレガシー技術は
モダン技術と区別がつかない
https://flic.kr/p/51yLAe
🍺おしまい🍕

mod_perlプログラマーがYAPCで語るレガシー開発論