2015/04/11 第4回g-study発表資料 risoluto開発に見る車輪の再発明
TRANSCRIPT
Risoluto開発にみる 車輪の再発明
2015年4月11日 第4回G-Study発表資料
自己紹介• ハムスターとペペロンチーノをこよなく愛する自称GNU/Linux&PHP使いのエンジニア(かわいい系NEKOMIMI男子)
• 株式会社グロージェントという会社でお仕事してます。
• PHP向けフレームワーク「Risoluto」の自称プロマネやってます
• もうごーるしてもいいよね(白目
• 詳しくはこちら!http://about.me/yuta.hayakawa
私はなぜ PHP向けフレームワーク
という車輪を再発明したのか
その前に…… 「車輪の再発明」とは何ですか?
Wikipedia先生曰く、こういうこと出典:http://ja.wikipedia.org/wiki/%E8%BB%8A%E8%BC%AA%E3%81%AE
%E5%86%8D%E7%99%BA%E6%98%8E
非常にネガティブなワード (´・ω・`)
でもちょっと待って! その下に良いこと書いてある!
あえての「車輪の再発明」出典:http://ja.wikipedia.org/wiki/%E8%BB%8A%E8%BC%AA%E3%81%AE
%E5%86%8D%E7%99%BA%E6%98%8E
そうなんです! 「あえて」しているんです!(震え声
自己肯定 done. (`・ω・´)b
Risolutoの特長• Ver.1は2008年12月から開発スタート
• 「シンプルで軽い」がコンセプト
• PHPさえ知っていれば使える
• フレームワークとしてのルールが少ない
• セットアップも簡単
• PHP5.5系以上で動く!PHP5.6でももちろんOK!
すでに山ほど存在する Webアプリケーションフレームワーク
私はなぜPHP向けフレームワーク という車輪を再発明したのか
それがぼくには楽しかったから Just For Fun
おしょうしな!訳:ありがとう_ノ乙(、ン、)_
……コレで終わると時間が余りまくりなので……
真の理由をおはなししましょう(キリッ
フレームワークを 自作することで見えてくるモノ
フレームワークを自作すると見えてくるモノ
• ブートシーケンスの作りはどうなっているのか
• クラスのオートロードはどうするのか
• ライブラリとして何をどういう粒度で用意するか
• QA(Quality Assurance)への考慮はどうすべきか
• PHPの標準規格(PSR-* etc…)はどう扱うか
Risoluto作るときに考えたこと
ブートシーケンスの作りはどうなっているのか
• スタートはひとつのPHPプログラム
• それが必要な処理を順番に行う
• 色々なクラスを呼び出し……
• ユーザアプリケーションを呼び出す……
• ココが長いとオーバーヘッドになり得る
• 最終的に貴方のお手元に届くまでの道のりをどうする?
クラスのオートロードはどうするのか
• require/include系はダサイ、ナウくない
• 今はnewとかしたら自動でロードしてくれる
• どうやってるの?
• PSR-0/4に準拠しておくと、オートロードしてくれるアレが沢山あってアレ
• 依存性管理ツールであるComposerを使うとオートローダももれなくついてくる
ライブラリとして何をどういう粒度で用意するか
• 思いついたモノを片っ端から用意するのも正解
• 選りすぐりの厳選したブツだけ用意するのも正解
• フレームワークの立ち位置、使えるリソースで考慮が吉
• 何を「再発明」するのかを決める
QA(Quality Assurance)への考慮はどうすべきか
• 動かないモノはゴミ!動かないことには始まらない!
• 動くだけのモノはゴミ!動いただけじゃ終わらない!
• いかに品質をキープするか、どの程度の品質を担保するのか
• TDD(Test Driven Development)やってみる?
PHPの標準規格(PSR-* etc…)はどう扱うか
• 標準に配慮すると相互運用性が高まる
• 全部まともにやろうとすると結構大変だったり
• どこまでやるの?どこからやるの?順番はどうするの?
• 標準もいろいろ追加されたり変更されたりする
• どういうペースで追随していくの?
ほんの少し考えただけで こんなに沢山見えてくる
便利なモノは 複雑ななにかの寄せ集めでできている
ためになったね!(`・ω・´)b
ここからは、ついでのお話。
便利なモノ = 複雑ななにかの寄せ集め
複雑ななにか = ?
複雑ななにか = シンプルななにかの寄せ集め
「シンプルななにか」を知ることで、 「複雑ななにか」を知ることができる
でも、遠回りだよね(´・ω・`) 遠回りは嫌だよね(´・ω・`)
そんな皆さんには 偉大なる先人の歌を授けましょう
– 柴屋軒宗長(室町時代後期の連歌師)
“武士(もののふ)の矢橋(やばせ)の船は速けれど
急がば回れ瀬田(せた)の長橋”
出典:http://ja.wiktionary.org/wiki/%E6%80%A5%E3%81%8C%E3%81%B0%E5%9B%9E%E3%82%8C
滋賀から京都に行くなら、 八橋からの船で琵琶湖を渡った方がはやいお(`・ω・´)b でも比叡山からの風が強くて大変だし危険だお(´・ω・`)
着実安全に行くなら瀬田の唐橋(長橋)経由がおすすめだお(´▽`*)
要は、「急がば回れ」 近道が常に正しいとは限らない
例えば、こんな「急がば回れ」
フルスタックなフレームワークを習得したい
でもその前に
その言語についてちゃんと理解しよう
これ、アリじゃないですか?(Y/n)
今度こそ本当におしょうしな!訳:ありがとう_ノ乙(、ン、)_