フレームワーク使おうぜ!

Post on 30-Jun-2015

1.358 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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!

top related