フレームワーク使おうぜ!
DESCRIPTION
オープンソースカンファレンス2010 Hokkaido 【企画セミナー】次の一歩・LL編 フレームワーク使おうぜ 一般社団法人LOCAL 佐藤琢哉(nazo) http://labs.nazone.info/TRANSCRIPT
フレームワーク使おうぜ
オープンソースカンファレンス 2010 Hokkaido【企画セミナー】次の一歩・LL編
担当 一般社団法人LOCAL 佐藤 琢哉(nazo)
注意
● 独自解釈が多数登場します● 鵜呑みにすると他で通用しないかもしれません
いまさら聞けない「フレームワーク」
とは何か
そもそも「フレームワーク」って?
● 枠組み● 枠組みの中で何かをする
わかりづらいので仕事に例える
● 皆さんどうやって仕事していますか?● 「枠組みの中で仕事をしている」● 「枠組みが特に無い仕事をしている」
実は
● ほとんどの人は枠組みの中で仕事をしている● 自覚しているかどうかというだけ
もう少しわかりやすく!
● 料理で説明● 料理で言うところの「フレームワーク」とは?
● レシピ?
料理だと?
● レシピはあくまでも「その料理を作るための手順」→ルーチン● 「その料理を作るための枠組み」とは言えるが、
「フレームワーク」はもう少し広い範囲
● 料理における「(もうちょっと広い)枠組み」とは?
料理におけるフレームワーク
● 台所全体● さしすせそ(砂糖・塩・酢・醤油・味噌)● そんなに料理しないのであまり思いつかない…
仕事におけるフレームワーク
● 料理の例から考えてみましょう● どんなのが思いつきますか?
仕事におけるフレームワーク
● 報連相
● 5W1H● GTD● KPT● PDCA
つまりフレームワークとは?
● 「ある程度の粒度における、何かを達成するために汎用的に使える手順」● レシピがフレームワークでないのは、レシピで達成
できるものは1つでしかないため。
● 「ライブラリ」は、様々な目的を達成する中での、ある1つの決められた項目を達成するためのもの。
● 「フレームワーク」は、様々な目的を達成するための、目的までの過程をわかりやすくしたもの。
フレームワークで次の一歩!
ここで話すフレームワークって?
● Webアプリケーションを作成するために使うフレームワーク
使うとどういいことがあるの?
● 作り方の幅が狭まる● 流れに沿って作ればそれなりのものが簡単に作
れる● 誰でもそれなりに似たようなものが出来上がる
フレームワークを使わないと?
● みんなばらばらに作業してしまう● ある人にとっては快適に作れるかもしれない
が、他の人がそれを扱えるかどうかは謎
フレームワークを使わないと?
ノンフレームワーク。相手は死ぬ。 V ∧_∧ ( ´・ω・`) ∧_∧ / \ (´Д` ) .__| | .| |_ / ヽ ||\  ̄ ̄ ̄ ̄ / .| | | ||\..∧_∧ (⌒\|__./ ./ ||. ( ) ~\_____ノ| ∧_∧ / ヽ \| ( ) | ヽ \/ ヽ. | |ヽ、二⌒) / .| | | .| ヽ \∧_∧ (⌒\|__./ /
デメリットとかないの?
● 覚えるのがちょっと面倒● 今までの書き方が雑だった人ほど大変
● でも学習コストは簡単に回収できる
どうすれば導入できる?
● 現行プロジェクトをリプレイスするのは敷居が高い● 新規プロジェクトがおすすめ
● 本当にフレームワークが必要なのか?● 今までどんなことに苦労したか?
– SQL書くのがめんどい– 同じことをするのに違うコードを書いている– テンプレートが汚い
言語別フレームワーク紹介
Perl● Catalyst
● http://www.catalystframework.org/● Sledge
● http://sl.edge.jp/
PHP● CakePHP
● http://cakephp.jp/● symfony
● http://www.symfony-project.org/● Zend Framework
● http://framework.zend.com/
Ruby● Ruby On Rails
● http://rubyonrails.org/● Sinatra
● http://www.sinatrarb.com/● merb
● http://www.merbivore.com/
Java● Struts
● http://struts.apache.org/● Wicket
● http://wicket.apache.org/● Spring
● http://www.springsource.org/
Python● Django
● http://www.djangoproject.com/● TurboGears
● http://turbogears.org/● Pylons
● http://pylonshq.com/
enjoy!