clrh56

Post on 12-May-2015

1,233 views 0 download

Tags:

description

clr/h 56 session slide. Fun Rails for .Netters.

transcript

Rails CLR/H

前鼻 毅 @sandinist

#CLRH56

たのしい for .Netter版

Friday, April 29, 2011

自己紹介

• 前鼻毅 @sandinist

• 三十路はいりました

• スープカレー好き

Friday, April 29, 2011

WORK

・RICOH IT SOLUTIONS

・quanp・quanp for iPhone

Friday, April 29, 2011

LANGUAGE

・VBA

・VisualBasic.Net

・C#

・Ruby

・Objective-C

Friday, April 29, 2011

COMMUNITY

・CLR/H

・Ruby札幌・数学勉強会札幌

Friday, April 29, 2011

Ruby / Rails

・札幌Ruby会議03

・日経ソフトウェア

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Rails 入門DAY

Friday, April 29, 2011

今日のゴール

•Ruby on Railsの特徴がわかる

•簡単なRailsアプリをつくれる

Friday, April 29, 2011

The Goal

•Know the Feature of Ruby on Rails

•Could create a simple Rails app

Friday, April 29, 2011

•Know the Feature of Ruby on Rails

Friday, April 29, 2011

Ruby on Rails

Friday, April 29, 2011

まずは外の世界からみてみようFriday, April 29, 2011

OutSideFriday, April 29, 2011

Ruby

Friday, April 29, 2011

オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。 エレガントな文法を持ち、自然に読み書き

ができます。Friday, April 29, 2011

・シンプルな文法・普通のオブジェクト指向機能(クラス、メソッドコールなど)

・特殊なオブジェクト指向機能(Mixin、特異メソッドなど)

・演算子オーバーロード・例外処理機能

・イテレータとクロージャ・ガーベージコレクタ

・ダイナミックローディング(アーキテクチャによる)

・移植性が高い。多くのUNIX上で動くだけでなく、DOSやWindows、Mac、BeOSなどの上でも動く

Friday, April 29, 2011

オブジェクト指向スクリプト言語

Friday, April 29, 2011

Matz

Rubyのお父さんMatz is nice and so we are nice.

Friday, April 29, 2011

http://www.ipa.go.jp/about/press/20110322.htmlFriday, April 29, 2011

Powerd by Ruby

Friday, April 29, 2011

http://www.slideshare.net/ossaj/ruby-6029382

超高密度リアルタイム地震防災システム SUPREME

地震防災という極めてミッションクリティカルな業務のためのシステム2009年10月にCからRubyへリニューアル

Friday, April 29, 2011

首都圏に地震センサー4000箇所→約3分で地震情報を収集→約5分で危険な地域を特定→約10分でガス供給停止SUPREME以前約2400分→以後約10分

SUPREME

Friday, April 29, 2011

一見の価値あり

Friday, April 29, 2011

http://dominion525.tumblr.com/post/2478993701/ruby-rubyFriday, April 29, 2011

http://thinkit.co.jp/story/2011/03/02/2036?page=0,2

“ところで、シリコンバレーやサンフランシスコといったWebのスタートアップ企業が集まるところで、Rubyができるプログラマは非常に高い給与水準で募集があるそうです。それは何故でしょうか。

Webをサービスしているスタートアップ企業にとって、もっとも重視するのはスピード感です。速いスピードを持って開発する為には、開発作業を外注する訳にはいかないので、必然的に内製化します。また、世の中にないまったく新しいサービスを作り出そうとする場合は、しっかり考え尽くしたとしても市場の反応が必ずしも良いとは限らないため、未成熟な状態でもローンチしつつ、得た経験をもとに改善を繰り返すことが最も効率が良い方法です。

理想のシステムを追い求めすぎて、世の中に出せないとしたら、スタートアップにとっては本当に意味がありません。自分たちで試行錯誤をするためにも、やはり内製化するのが一番です。内製をするのであれば、要件定義から詳細設計までドキュメントにして作っていくような形でなく、コミュニケーションを重視して少しずつ修正を繰り返していくという形が効率が良く、それに適しているのがRubyなのです。

Friday, April 29, 2011

Rubyは楽しい

Friday, April 29, 2011

Ruby has value.

Friday, April 29, 2011

Rubyをキメルときもちいい

Friday, April 29, 2011

why?

Friday, April 29, 2011

全てを言語化はできないが一部を考える事は出来る

Friday, April 29, 2011

Rubyをつかうとどんどん書けるFriday, April 29, 2011

Ruby trusts programmers.

Friday, April 29, 2011

kakutani

Ruby has “Quality”.

Friday, April 29, 2011

オブジェクト指向スクリプト言語

Friday, April 29, 2011

Ruby

Friday, April 29, 2011

Rails

Friday, April 29, 2011

Webアプリケーションフレームワーク

Friday, April 29, 2011

Ruby on RailsデンマークのプログラマであるDavid Heinemeier Hanssonにより、プロジェクト管理ツー

ル"basecamp"の開発に用いられた知見やコードを抽出し、一般化することにより作成された。

Friday, April 29, 2011

David Heinemeier Hansson

DHH

Friday, April 29, 2011

2004年7月 最初のバージョン公開2005年12月13日 バージョン1.0

2007年12月7日 バージョン2.0

2010年8月29日 バージョン3.0

Friday, April 29, 2011

Powerd by Rails

Friday, April 29, 2011

http://tabelog.com/

Friday, April 29, 2011

http://cookpad.com/

Friday, April 29, 2011

https://my.rakuten.co.jp/

Friday, April 29, 2011

http://atnd.org/

Friday, April 29, 2011

http://twitter.com/

Friday, April 29, 2011

http://www.groupon.jp/

Friday, April 29, 2011

https://www.quanp.net/

Friday, April 29, 2011

More Rails

Friday, April 29, 2011

セールスフォース・ドットコムがRuby on Rails採用へ。Herokuを買収で。Dreamforce'10

http://www.publickey1.jp/blog/10/ruby_on_railsherokudreamforce10.htmlFriday, April 29, 2011

自治体向けCMSをRuby on Railsで「Pref Shimane CMS(島根県CMS)」

http://projects.netlab.jp/PrefShimaneCMS/

OSSとして公開中

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

詳細はおいおい

Friday, April 29, 2011

Webアプリケーションフレームワーク

Friday, April 29, 2011

Rails

Friday, April 29, 2011

InSide

Friday, April 29, 2011

いくつかの前提

Friday, April 29, 2011

web開発経験者?

Friday, April 29, 2011

HTTPURI

HTMLREST

Friday, April 29, 2011

山本陽平△

Webを支える技術

RestfulWebService

http://www.amazon.co.jp/dp/4774142042

http://www.amazon.co.jp/dp/4873113539

Friday, April 29, 2011

ASP.Net開発者?

Friday, April 29, 2011

ASP.Net MVC開発者?

Friday, April 29, 2011

MVC

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

MVC is a Architecture

PatternFriday, April 29, 2011

Architecture of Ruby on Rails Frameworkhttp://www.deknight.com/2010/06/architecture-of-ruby-on-rails-framework.html

Rails MVC Architecture

Friday, April 29, 2011

MVC

Friday, April 29, 2011

- SeasideSmalltalk

Friday, April 29, 2011

ASP.Net MVC

Friday, April 29, 2011

Active Server Pages

1.0 (IIS 3.0) 1996年12月2.0 (IIS 4.0) 1997年9月3.0 (IIS 5.0) 2000年11月

HTMLなどのマークアップ言語とVBScriptやJavaScriptなどのスクリプト言語を組み合わせるGUIによるページデザインが行えるようになっている

ASP.NETの動作に関する設定の多くは、*.configファイルを利用

ASP.NET

Active Server Pages の.Net版2000年にコンセプトを発表・プレリリース版の提供を開始

2002年に最初の正式版をリリース

ASP.NET MVC2009年4月 追加コンポーネントとしてリリース

ASP.NET MVC 22010年3月 リリース ASP.NET 4への対応など

ASP.NET MVC 32011年1月 正式リリース Razor構文サポート

ASP.Net History

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

CoC

Friday, April 29, 2011

Convention over Configuration

Friday, April 29, 2011

設定より規約を

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

DRY

Friday, April 29, 2011

Don't repeat yourself

Friday, April 29, 2011

Friday, April 29, 2011

DRY 原則がうまく適用されたとき、システムに対するいかなる要素の変更も、論理的に関連のない他の要素の変更にはつながらない。さらに、論理的に関連した要素は予測できる形で統一的に変更され、したがってそれらの変更は同

期が取れたものとなる。

Friday, April 29, 2011

情報の重複をなくす

Friday, April 29, 2011

DRY原則

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

ASP.Net MVC Feature

Friday, April 29, 2011

作ろう

Friday, April 29, 2011

環境•Ruby 1.8.7

•Rails 3.0.5

•Mac OS X 10.6.7

Friday, April 29, 2011

http://codezine.jp/article/detail/4046?p=5ASP.NET で簡単なアプリケーションを構築しよう

スキャフォールディングを利用したデータアクセスアプリケーション

Friday, April 29, 2011

DEMO

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

• rails new sample

Friday, April 29, 2011

• rails new sample

Friday, April 29, 2011

• rails new sample

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

• rails scaffold pubs note:text

Friday, April 29, 2011

• rails scaffold pubs note:text

• db migration• model• model test• routing• controller• controller のメソッドに対応するview

• unit test• helper • helper test• stylesheet

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

• rake db:migrate

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

It Works!

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

Friday, April 29, 2011

The Goal

•Know the Feature of Ruby on Rails

Friday, April 29, 2011

MVCCoCDRY

DynamicLanguagesObjectRelationalMapping

TestingTools

Rails Culture & Feature

Friday, April 29, 2011

• rails scaffold pubs note:text

• db migration• model• model test• routing• controller• controller のメソッドに対応するview

• unit test• helper • helper test• stylesheet

Friday, April 29, 2011

Full Stack

Friday, April 29, 2011

The Goal

•Know the Feature of Ruby on Rails

•Could create a simple Rails app

Friday, April 29, 2011

Create Sample Pubs

• rails new sample

• rails scaffold pubs note:text

• rake db:migrate

• rails server

Friday, April 29, 2011

Routes

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do end

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do get "hello/world" end

#=> GET hello#world

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do match "hello/world" end

#=> hello#world

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do get "greeting.html" => "hello#world"end

#=> GET hello#world

Friday, April 29, 2011

RoutesAppName::Application.routes.draw do resources :products end

#=> products GET /products(.:format) {:action=>"index", :controller=>"products"} POST /products(.:format) {:action=>"create", :controller=>"products"} new_product GET /products/new(.:format) {:action=>"new", :controller=>"products"}edit_product GET /products/:id/edit(.:format) {:action=>"edit", :controller=>"products"} product GET /products/:id(.:format) {:action=>"show", :controller=>"products"} PUT /products/:id(.:format) {:action=>"update", :controller=>"products"} DELETE /products/:id(.:format) {:action=>"destroy", :controller=>"products"}

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do root :to => "welcome#index"end

#=> .

Friday, April 29, 2011

Routes

AppName::Application.routes.draw do match ':controller(/:action(/:id(.:format)))'end

#=> /action/id

Friday, April 29, 2011

The Goal

•Could create a simple Rails app

Friday, April 29, 2011

はじめる!Rails3(1)

Ruby環境構築講座 Windows編http://tatsu-zine.com/books/rails3

http://tatsu-zine.com/books/winrubybuild

達人出版会

Friday, April 29, 2011