ruby on rails の特徴とそのエコシステム

23
Ruby on Rails の特徴と そのエコシステム 2014/2/15 cuzic

Upload: tomoya-cuzic

Post on 13-May-2015

2.072 views

Category:

Technology


0 download

DESCRIPTION

Innovation EGG 第二回 XEGG での発表資料です。

TRANSCRIPT

Page 1: Ruby on Rails の特徴とそのエコシステム

Ruby on Rails の特徴とそのエコシステム

2014/2/15

cuzic

Page 2: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

自己紹介

cuzic

きゅーじっく

Ruby 関西の co-founder の1人

amagasaki.rb の founder

Ruby関西の代表( 2014年~)

11

Page 3: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

今日話したいこと

Ruby を使おう!

Ruby on Rails の特徴とそのエコシステム

関西の Ruby コミュニティ

22

Page 4: Ruby on Rails の特徴とそのエコシステム

Ruby を使おう

Page 5: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Rubyを使う理由 1/2

Ruby はとっても楽しい

自由!

美しい!

強力!

44

http://www.flickr.com/photos/ykjc9/4143179870/in/faves-22948917@N04/

Page 6: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Rubyを使う理由 2/2

健全な進化を続ける Ruby

言語仕様等が強化され続ける Ruby

増え続ける強力なライブラリ

増え続ける Ruby を利用するアプリ、ツールたち

55

http://www.flickr.com/photos/48455792@N04/6155519047/

Page 7: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

みんなと仲良し! Ruby

Ruby はすぐれた Glue 言語

動的型付け言語

相手のメッセージを柔軟に解釈できる

内部DSL を作りやすい文法

記述性、可読性を両立できる

すっごくパワフル

なんでも実現できる強力なライブラリ群

Ruby on Rails

Webサービスネイティブなフレームワーク

JSON を返す REST API を簡単に外部に提供可能

簡単に外部の WEBサービス(JSON/REST API) を利用可能

ActiveResource

Rake

Ruby版の Make

いろんな処理を依存関係を含めて自動化できる

66

Page 8: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

クラウドネイティブな言語 Ruby

Ruby 製の多数のインフラ管理ツール群

Puppet、Chef

サーバーごとの設定変更作業を自動化

多数のサーバにインストール、設定作業を繰り返す場合に便利

Vagrant

仮想マシンの作成、環境構築などの自動化が可能

Red Hat CloudForms、Apache DeltaCloud

Ruby on Rails を利用。オープンソース

異種クラウドを統合管理可能

AWS、 VMware、 OpenStack、RHEV(KVM) などに対応

Red Hat OpenShift

Ruby on Rails を利用。オープンソース (OpenShift Origin)

Private PaaS を構築可能。異種アプリを統合管理できる

JBoss、NodeJS、PHP、Ruby on Rails、MongoDB

77

Page 9: Ruby on Rails の特徴とそのエコシステム

Ruby on Rails の特徴と

そのエコシステム

Page 10: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Ruby on Rails と関西

Ruby on Rails とは

Ruby Conf 2004 で発表された フレームワーク

2004年10月1~3日 ワシントンDC

日本初上陸は関西

K-OF 2004 10月23日

日本初の Ruby on Rails の発表

OSC 2005 Tokyo/Spring

オープンソースカンファレンス

関西在住の「ストヤン」さん が発表

日本の初期の Ruby on Rails 勉強会

Ruby 勉強会 第3回 2005年5月14日

Rails勉強会@東京 第0回 2005年11月5日

今をトキめく錚々たるメンバーが列席

Rails勉強会@大阪 第1回 2005年11月12日

99

Page 11: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Ruby on Rails の特徴 1/3

ハッカー養成ギブス Ruby on Rails

開発生産性を高めるアイデアがてんこもり

1010

採用技術 説明

アーキテクチャパターン MVC Model-View-Controller / Routing

モデル ActiveRecord DAO、オブジェクト永続化

フィクスチャ FactoryGirl テストデータの生成

HTML Haml 簡潔な HTML の記述

CSS SCSS (Compass) 簡潔な CSS の記述が可能

JavaScript CoffeeScript Rubyライクな構文の JS 代替言語

JavaScript ライブラリ jQuery DOM選択、イベント処理、CSS操作など

アセットパイプライン sprocket JS、CSS の結合、圧縮

受け入れテスト Capybara 他 ブラウザアクセスレベルのテスト

クラウド Heroku、EngineYard他 Rails アプリを簡単デプロイ

Page 12: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Ruby on Rails の特徴 2/3 1111

HTML

Slim-

Template

CSS

SASS/SCSS

Compass

<ul class="nav nav-tabs"><li class="active">

<a href="#">Home</a></li><li><a href="#">Profile</a></li><li><a href="#">Messages</a></li>

</ul>

ul.nav.nav-tabsli.active

a[href="#"] Homelia[href="#"] Profile

lia[href="#"] Messages

ul.nav.nav-tabs {margin-left: 10px;border-bottom: none;

}ul.nav.nav-tabs li * {

margin-right: 5px;margin-left: 5px;margin-bottom: 10px;font-weight: bold;

}

ul.nav.nav-tabs {margin-left: 10px;border-bottom: none;li * {margin: {right: 5px;left: 5px;bottom: 10px;

}font-weight: bold;

}}

ベストプラクティスに従うことで、作業量を減らし、保守性を向上できる

JavaScript

CoffeeScript

open_new_tab = function(url, event) {if (url.indexOf("file://") === -1){

event.preventDefault();var a = "about:blank";var w = window.open(a, "_blank");return $(w.document).ready(

function() {return w.open(url, "_self");

});}

}

open_new_tab = ( url , event ) ->if url.indexOf("file://") == -1event.preventDefault()a = "about:blank"w = window.open(a, "_blank")$(w.document).ready ->

w.open(url, "_self")

Page 13: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Ruby on Rails の特徴 3/3

デフォルト設定が良い

高いセキュリティ、デバッグしやすい、生産性が高い

1212

採用技術 説明

セキュリティ ・CSRF対策・XSS対策・SQLインジェクション対策

・リクエストにトークンを自動付与・自然で自動的なエスケープ処理

静的アセットの提供 HTTPヘッダの生成 適切な HTTP ヘッダcache-control、ETAG、If-Modified-Since

セッションストア クッキーストアなどを選択可能

・デフォルトはクッキーストア・RDBMS や KVS に保存することもできる。・クッキーストアでは、改ざん検出用の署名情報も自動挿入される

デバッグ表示 ・例外表示・変数の内容表示

・開発時は見やすいスタックトレース・本番ではそれなりのエラーページ・better_errors を使えば、変数の参照も可能

ログ出力 Rails.logger ・見やすいカラーで出力される・開発/本番でそれぞれ適切なログレベルで表示

Page 14: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

みんなで作る Ruby on Rails

非常に活発な開発コミュニティ

3,000+ のコントリビュータhttp://contributors.rubyonrails.org/

継続的カイゼン

積極的な機能追加、セキュリティ・柔軟性の強化

ときには後方互換性を犠牲にしつつもカイゼンを続ける

コミッターと開発コミュニティの距離の近さ

Github & pull request 文化

開発コミュニティ全体で、プロダクトを改善していく文化

Rubyの動的で柔軟性が高い文法

オープンクラス

定義済みクラスへのメソッドの追加、再定義が可能

1313

Page 15: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

アイドルだって、プルリク 1414

参考:https://twitter.com/ikeay/status/430281088150151168http://www.toho-ent.co.jp/actress/show_profile.php?id=5198

http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002298

Page 16: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

いつでも!どこでも! Ruby on Rails !

Ruby on Rails:モジュラーに構造化されている

そのため、多様な状況に適用・対応可能

性能重視!スピード狂!の場合

ActionController::Metal

Ruby on Rails の大部分の機能を無効化

代わりに高速化を実現

API を提供するだけの場合

rails-api

API だけを提供する場合に最適化。軽量、高速

RDBMS 以外を使う場合

Mongoid (MongoDB 用 ORM)

Moneta (多様な KVS を統一的に扱える)

ActiveModel::Model 自作のモデルを Rails のコントローラやビューと連携させる

1515

Page 17: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

公開カンタン! Ruby on Rails!

Heroku でカンタンにデプロイできる!

@ayumin さん、素晴らしい説明ありがとうございましたっ!

Git を活用したカンタンデプロイ

Git を使うのがベストプラクティスというメッセージ

一定レベル以上の開発者を前提としたエコシステム

慣れるとすごく快適な開発・デプロイ環境

1616

Page 18: Ruby on Rails の特徴とそのエコシステム

関西のRubyコミュニティ

Page 19: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

関西の Ruby コミュニティ

Ruby関西

2004年~

次回は 3月29日(土)グランフロント大阪開催予定

講師による発表/セミナー形式

minami.rb

2010年~

大阪なんば地域で継続的に開催

Ruby on Rails の初心者向けレッスンがある

kyoto.rb、西脇&東灘.rb、wakayama.rb、shinosaka.rb

この1~2年に発足

少人数(10名程度)で、もくもく会中心

amagasaki.rb

cuzic が設立

コンピュータ関連書籍の読書会中心

Ruby と実はあまり関係ない。初心者向けじゃない。

1818

Page 20: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

ハブとしての Ruby関西

「Ruby関西」は、関西 Ruby コミュニティのハブ

相互に集客を支援しあう

1919

JAWS-UG

Ruby協Ruby関西

Ruby

AssociationXEgg

K-OF

amagasaki.rb 、 minami.rb 、 西脇&東灘.rb 、Kyoto.rb 、 wakayama.rb、 shinosaka.rb

地域ミニ Ruby コミュニティ

Page 21: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

Ruby 関西のお願い

Facebook に「いいね!」してください

http://www.facebook.com/rubykansai

関西地域の Ruby 勉強会イベントなどを周知しています

Twitter をフォローしてください

https://twitter.com/rubykansai

Doorkeeper に登録してください

http://rubykansai.doorkeeper.jp/

Ruby 関西主催イベントの情報を配信しています

2020

Page 22: Ruby on Rails の特徴とそのエコシステム

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

まとめ

Ruby

とっても楽しい

とってもパワフル。とっても自由。

インストールで挫折しないでね。

Ruby on Rails

ハッカー養成ギブス

みんなで良くしていく Ruby on Rails

関西の Ruby コミュニティ

Ruby関西 10周年

活発な Ruby コミュニティがいっぱい

みんな、来てね。こわくないよ。

2121

Page 23: Ruby on Rails の特徴とそのエコシステム

ご清聴ありがとうございました