clrh56
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
https://my.rakuten.co.jp/
Friday, April 29, 2011
More Rails
Friday, April 29, 2011
http://www.atmarkit.co.jp/fcoding/rails/index/examination.html
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
Model-view-controller concept. The solid line represents a directassociation, the dashed an indirect association (via an observer for example).
Friday, 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
Ruby on Railsによって提唱。規定の場合は設定不要。
開発者の決定すべきことを減少させ、単純にするが柔軟性は失わせないというソフトウェア設計パラ
ダイム。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
• rails new sample
http://wiki.usagee.co.jp/ruby/rails/RailsGuides%E3%82%92%E3%82%86%E3%81%A3%E3%81%8F%E3%82%8A%E5%92%8C%E8%A8%B3%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%88/Getting%20Started%20with%20Rails
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
Rails情報源の歩き方(前編)@IT編集部 西村賢 協力 松田明2011/2/24http://www.atmarkit.co.jp/fcoding/rails/articles/resources/01/resources01a.html
github_explorehttp://www.flickr.com/photos/franck_/4456914448/sizes/l/in/photostream/
Introducing Rails 3http://rubyonrails.org/screencasts/rails3
Friday, April 29, 2011
Flickr
http://www.flickr.com/photos/jesper/252308266/http://www.flickr.com/photos/john_lam/1910968816/http://www.flickr.com/photos/koichiroo/4945805140/http://www.flickr.com/photos/koichiroo/5244613311/http://www.flickr.com/photos/marcomagrini/698692268/http://www.flickr.com/photos/minifig/3174009125/
Friday, April 29, 2011