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