読者です 読者をやめる 読者になる 読者になる

akimachoのはてなブログ

ICTとデザインのためのブログ

Plackの成功の秘訣 - "The Tale of Plack"メモ

はじめに

ちょっと前に"The Tale of Plack"という電子書籍を読みました。この本は、YAPCでmiyagawaさんが行ったkeynoteを文字に起こしたものなんですが、そのkeynoteの動画はYoutubeにアップされています。私はそれを知らないで買っちゃいました…でも、電子書籍版では発表しているmiyagawaさんの写真が載っています。なのでmiyagawaさんのファンは買いですかね

www.youtube.com

www.youtube.com

今は、Plack Handbookを読んでます。こちらは、githubで公開されています。

Plack Handbook

Plack Handbook

Plackを使っている会社

The Secret of My Success

  1. “Good artists borrow, Great artists steal.”
  2. “Better late than never”
  3. “JFDI” - “just ‘fing” do it
  4. “Shut the fuck up and write some code.”
  5. TIMTOWTDI” and “BSCINABTE”
  6. Keep It Simple and Stupid
  7. glue language, glue interface
  8. cache invalidation and naming things
  9. +α It’s All About The People

“Good artists borrow, Great artists steal.”

あるものをそのまま盗んで模倣する

いろいろなアイディアをインスパイアして作るのは、いいアーティストなら誰でもできる。 しかし、もっとレベルが高いのは、あるものをそのまま盗んで模倣する

既存のあるものを借りてきて、そのまま引きずられていることが多かった

“Better late than never”

遅く来てやらないよりまし

遅く来るといろいろなものが残っている

始めるタイミングが遅かった分、WSGIとかRackのメーリングリストとか、ソースコードレポジトリとかは、基本的に見れば全部わかる。彼らが何を失敗したかとか、どこがうまくいったかとか、何が人気があるか、何を実験したけれどあまり受け入れられていないかというのが分かります。

“JFDI” - “just ‘fing” do it

やるしかない

何かコードを書こうと思ったら、誰かの許可を得なくても書くことはできるわけです

許可を得ずにやった者勝ち

コードの世界に行ったらもうやった者勝ち

Shut the fuck up and write some code

ぐだぐだ言ってないでコードを書けよ、ハゲ

書こうと思ったらどんどん書く、しゃべっている暇があったら書いたほうがいい

There Is More Than One Way To Do It

やり方はひとつじゃない

TIMTOWTDI, Tim Toady

ラリー・ウォールのニックネームでもある

http://d.hatena.ne.jp/keyword/TMTOWTDI

But Sometimes Consistency Is Not A Bad Thing Either

いろいろなやり方があるのはいいけど、時には共通のやり方があってもいい

BSCINABTE, Bicarbonate(炭酸塩なんとか)

http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it

PSGIは、乱立していたWAFとサーバのインタフェースをまとめた

Keep It Simple and Stupid

シンプルにしておけ!この間抜け、簡潔に単純にしておけ

KISS

http://ja.wikipedia.org/wiki/KISS%E3%81%AE%E5%8E%9F%E5%89%87

すごくシンプルなデータストラクチャーでOOのAPIにしてしまうと、既存のインタフェースに合わせるためのメソッドコールをまた読みかえなくちゃいけなくて、結局誰にとってもうれしくないということになってしまう

glue language, glue interface

PSGIとは、Perlフレームワークとサーバーのglue interfateなんです

人それぞれWAFの好みがある

  • モジュールへの依存が全くなくて軽いのが好きな人
  • フルスタックでスケーラブルなものが好きな人
  • その中間の人

Hash ReferenceやArray Referenceを生で返すのは全然美しくないんですけれど、それを1つのインタフェースにして、サーバを書く人、フレームワークを書く人が、ちょっとした3行4行のglue codeを書いてやるほうがみんな幸せになるんじゃないか

cache invalidationと名前を付けること

http://en.wikipedia.org/wiki/Cache_invalidation

覚えるのがラクな名前をつけよう的な意味だと思います。

Perlの大きなフレームワークでは名前空間が長くなってしまう

例 : MooseX::MetaAttribute::Role::Meta::Role

Rubyのやり方をパクる

Rubyの名前の付け方は、全部トップレベルの名前空間

サーバやフレームワークみたいなユーティリティを作るときは、できるかぎりトップレベルでいい

また、そうすることで愛着も湧くし、口頭やIRCtwitterで話すときに便利

まつもとゆきひろさんも「名前重要」といってましたね。

It’s All About The People

人が大切