SlideShare a Scribd company logo
Ruby on Rails の特徴と
そのエコシステム
2014/2/15
cuzic
自己紹介
cuzic
きゅーじっく
Ruby 関西の co-founder の1人
amagasaki.rb の founder
Ruby関西の代表( 2014年~)

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

1
今日話したいこと
Ruby を使おう!
Ruby on Rails の特徴とそのエコシステム
関西の Ruby コミュニティ

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

2
Ruby を
使おう
Rubyを使う理由 1/2
Ruby はとっても楽しい
自由!
美しい!
強力!

http://www.flickr.com/photos/ykjc9/4143179870/in/faves-22948917@N04/
2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

4
Rubyを使う理由 2/2
健全な進化を続ける Ruby
言語仕様等が強化され続ける Ruby
増え続ける強力なライブラリ
増え続ける Ruby を利用するアプリ、ツールたち

http://www.flickr.com/photos/48455792@N04/6155519047/
2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」

5
みんなと仲良し! Ruby
Ruby はすぐれた Glue 言語
動的型付け言語
相手のメッセージを柔軟に解釈できる

内部DSL を作りやすい文法
記述性、可読性を両立できる

すっごくパワフル
なんでも実現できる強力なライブラリ群

例
Ruby on Rails
Webサービスネイティブなフレームワーク
JSON を返す REST API を簡単に外部に提供可能
簡単に外部の WEBサービス(JSON/REST API) を利用可能
ActiveResource

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

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

6
クラウドネイティブな言語 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

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

7
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日

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

9
Ruby on Rails の特徴 1/3

10

ハッカー養成ギブス Ruby on Rails
開発生産性を高めるアイデアがてんこもり
採用技術

説明

アーキテクチャパターン

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 アプリを簡単デプロイ

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

Ruby on Rails の特徴 2/3
ベストプラクティスに従うことで、作業量を減らし、保守性を向上できる
HTML
SlimTemplate

CSS
SASS/SCSS
Compass
JavaScript

CoffeeScript

<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-tabs
li.active
a[href="#"] Home
li
a[href="#"] Profile
li
a[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;
}
}

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://") == -1
event.preventDefault()
a = "about:blank"
w = window.open(a, "_blank")
$(w.document).ready ->
w.open(url, "_self")

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

12

デフォルト設定が良い
高いセキュリティ、デバッグしやすい、生産性が高い
採用技術

説明

セキュリティ

・CSRF対策
・XSS対策
・SQLインジェクション対策

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

静的アセットの提供

HTTP ヘッダの生成

適切な HTTP ヘッダ
cache-control、ETAG、If-Modified-Since

セッションストア

クッキーストアなど
を選択可能

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

デバッグ表示

・例外表示
・変数の内容表示

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

ログ出力

Rails.logger

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

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

13

非常に活発な開発コミュニティ
3,000+ のコントリビュータ
http://contributors.rubyonrails.org/

継続的カイゼン
積極的な機能追加、セキュリティ・柔軟性の強化
ときには後方互換性を犠牲にしつつもカイゼンを続ける

コミッターと開発コミュニティの距離の近さ
Github & pull request 文化
開発コミュニティ全体で、プロダクトを改善していく文化

Rubyの動的で柔軟性が高い文法
オープンクラス
定義済みクラスへのメソッドの追加、再定義が可能

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
アイドルだって、プルリク

14

参考:
https://twitter.com/ikeay/status/430281088150151168
http://www.toho-ent.co.jp/actress/show_profile.php?id=5198
http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002298

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
いつでも!どこでも! Ruby on Rails !

15

Ruby on Rails:モジュラーに構造化されている
そのため、多様な状況に適用・対応可能
性能重視!スピード狂!の場合
ActionController::Metal
Ruby on Rails の大部分の機能を無効化
代わりに高速化を実現

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

RDBMS 以外を使う場合
Mongoid (MongoDB 用 ORM)
Moneta (多様な KVS を統一的に扱える)
ActiveModel::Model
自作のモデルを Rails のコントローラやビューと連携させる

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

16

Heroku でカンタンにデプロイできる!
@ayumin さん、素晴らしい説明ありがとうございましたっ!

Git を活用したカンタンデプロイ
Git を使うのがベストプラクティスというメッセージ
一定レベル以上の開発者を前提としたエコシステム
慣れるとすごく快適な開発・デプロイ環境

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

18

Ruby関西
2004年~
次回は 3月29日(土)
グランフロント大阪開催予定
講師による発表/セミナー形式

minami.rb
2010年~
大阪なんば地域で継続的に開催
Ruby on Rails の初心者向けレッスンがある
kyoto.rb、西脇&東灘.rb、wakayama.rb、shinosaka.rb
この1~2年に発足
少人数(10名程度)で、もくもく会中心

amagasaki.rb
cuzic が設立
コンピュータ関連書籍の読書会中心
Ruby と実はあまり関係ない。初心者向けじゃない。
2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
19

ハブとしての Ruby関西
「Ruby関西」は、関西 Ruby コミュニティのハブ
相互に集客を支援しあう

JAWS-UG
XEgg
K-OF

Ruby関西

Ruby
Association
Ruby 協

地域ミニ Ruby コミュニティ
amagasaki.rb 、 minami.rb 、 西脇&東灘.rb 、
Kyoto.rb 、 wakayama.rb、 shinosaka.rb
2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
Ruby 関西 のお願い

20

Facebook に「いいね!」してください
http://www.facebook.com/rubykansai
関西地域の Ruby 勉強会イベントなどを周知しています

Twitter をフォローしてください
https://twitter.com/rubykansai

Doorkeeper に登録してください
http://rubykansai.doorkeeper.jp/
Ruby 関西主催イベントの情報を配信しています

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

21

Ruby
とっても楽しい
とってもパワフル。とっても自由。
インストールで挫折しないでね。

Ruby on Rails
ハッカー養成ギブス
みんなで良くしていく Ruby on Rails

関西の Ruby コミュニティ
Ruby関西 10周年
活発な Ruby コミュニティがいっぱい
みんな、来てね。こわくないよ。

2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
ご清聴ありがとう
ございました

More Related Content

What's hot

[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
Deep Learning JP
 
【メタサーベイ】Video Transformer
 【メタサーベイ】Video Transformer 【メタサーベイ】Video Transformer
【メタサーベイ】Video Transformer
cvpaper. challenge
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
Deep Learning JP
 
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
catupper
 
最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ
Yusuke Uchida
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
Takuto Wada
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka
 
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
 
ダブル配列の実装方法
ダブル配列の実装方法ダブル配列の実装方法
ダブル配列の実装方法Higashiyama Masahiko
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
Masato Fujitake
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
JunSuzuki21
 
ドラレコ + CV = 地図@Mobility Technologies
ドラレコ + CV = 地図@Mobility Technologiesドラレコ + CV = 地図@Mobility Technologies
ドラレコ + CV = 地図@Mobility Technologies
Kazuyuki Miyazawa
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
Shohei Hido
 

What's hot (20)

[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
[DL輪読会]A Simple Unified Framework for Detecting Out-of-Distribution Samples a...
 
【メタサーベイ】Video Transformer
 【メタサーベイ】Video Transformer 【メタサーベイ】Video Transformer
【メタサーベイ】Video Transformer
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
 
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
 
最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ最近のSingle Shot系の物体検出のアーキテクチャまとめ
最近のSingle Shot系の物体検出のアーキテクチャまとめ
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
ダブル配列の実装方法
ダブル配列の実装方法ダブル配列の実装方法
ダブル配列の実装方法
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
 
ドラレコ + CV = 地図@Mobility Technologies
ドラレコ + CV = 地図@Mobility Technologiesドラレコ + CV = 地図@Mobility Technologies
ドラレコ + CV = 地図@Mobility Technologies
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
 

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

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
Takafumi ONAKA
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudKazuki Aranami
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerTakuro Sasaki
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
 
Pry による repl 駆動開発について
Pry による repl 駆動開発についてPry による repl 駆動開発について
Pry による repl 駆動開発について
Tomoya Kawanishi
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
 
Zabbix API
Zabbix APIZabbix API
Zabbix API
Shuhei Hayashibara
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
kamiyam .
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門
だいすけ さとう
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
Uchio Kondo
 
Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13
Sea Mountain
 
A Road map of Data Analysis for Visualization with D3.js
A Road map of Data Analysis for Visualization with D3.jsA Road map of Data Analysis for Visualization with D3.js
A Road map of Data Analysis for Visualization with D3.js
博三 太田
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
 
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise Environment
Tomoya Kawanishi
 
Ruby on Rails on Azure
Ruby on Rails on AzureRuby on Rails on Azure
Ruby on Rails on Azure
Masaki Yamamoto
 

Similar to Ruby on Rails の特徴とそのエコシステム (20)

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Pry による repl 駆動開発について
Pry による repl 駆動開発についてPry による repl 駆動開発について
Pry による repl 駆動開発について
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考えるRailsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
 
Zabbix API
Zabbix APIZabbix API
Zabbix API
 
Async Enhancement
Async EnhancementAsync Enhancement
Async Enhancement
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13
 
A Road map of Data Analysis for Visualization with D3.js
A Road map of Data Analysis for Visualization with D3.jsA Road map of Data Analysis for Visualization with D3.js
A Road map of Data Analysis for Visualization with D3.js
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
 
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise Environment
 
Ruby on Rails on Azure
Ruby on Rails on AzureRuby on Rails on Azure
Ruby on Rails on Azure
 

More from Tomoya Kawanishi

英単語の覚え方
英単語の覚え方英単語の覚え方
英単語の覚え方
Tomoya Kawanishi
 
ENECHANGE社での Scout APM 利用事例
ENECHANGE社での Scout APM 利用事例ENECHANGE社での Scout APM 利用事例
ENECHANGE社での Scout APM 利用事例
Tomoya Kawanishi
 
エンジニア転職のノウハウ
エンジニア転職のノウハウエンジニア転職のノウハウ
エンジニア転職のノウハウ
Tomoya Kawanishi
 
Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列について
Tomoya Kawanishi
 
Ruby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構についてRuby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構について
Tomoya Kawanishi
 
Ruby初心者からよく質問されること
Ruby初心者からよく質問されることRuby初心者からよく質問されること
Ruby初心者からよく質問されること
Tomoya Kawanishi
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler について
Tomoya Kawanishi
 
Ruby の正規表現について
Ruby の正規表現についてRuby の正規表現について
Ruby の正規表現について
Tomoya Kawanishi
 
Ruby での外部コマンドの実行について
Ruby での外部コマンドの実行についてRuby での外部コマンドの実行について
Ruby での外部コマンドの実行について
Tomoya Kawanishi
 
Ruby のワンライナーについて
Ruby のワンライナーについてRuby のワンライナーについて
Ruby のワンライナーについて
Tomoya Kawanishi
 
AWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったことAWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったこと
Tomoya Kawanishi
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
Tomoya Kawanishi
 
HTTPと Webクローリングについて
HTTPと WebクローリングについてHTTPと Webクローリングについて
HTTPと Webクローリングについて
Tomoya Kawanishi
 
Rake
RakeRake
Active record query interface
Active record query interfaceActive record query interface
Active record query interface
Tomoya Kawanishi
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能について
Tomoya Kawanishi
 
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナーRuby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Tomoya Kawanishi
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO について
Tomoya Kawanishi
 
Thread の利用事例紹介
Thread の利用事例紹介Thread の利用事例紹介
Thread の利用事例紹介
Tomoya Kawanishi
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについて
Tomoya Kawanishi
 

More from Tomoya Kawanishi (20)

英単語の覚え方
英単語の覚え方英単語の覚え方
英単語の覚え方
 
ENECHANGE社での Scout APM 利用事例
ENECHANGE社での Scout APM 利用事例ENECHANGE社での Scout APM 利用事例
ENECHANGE社での Scout APM 利用事例
 
エンジニア転職のノウハウ
エンジニア転職のノウハウエンジニア転職のノウハウ
エンジニア転職のノウハウ
 
Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列について
 
Ruby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構についてRuby on Rails のキャッシュ機構について
Ruby on Rails のキャッシュ機構について
 
Ruby初心者からよく質問されること
Ruby初心者からよく質問されることRuby初心者からよく質問されること
Ruby初心者からよく質問されること
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler について
 
Ruby の正規表現について
Ruby の正規表現についてRuby の正規表現について
Ruby の正規表現について
 
Ruby での外部コマンドの実行について
Ruby での外部コマンドの実行についてRuby での外部コマンドの実行について
Ruby での外部コマンドの実行について
 
Ruby のワンライナーについて
Ruby のワンライナーについてRuby のワンライナーについて
Ruby のワンライナーについて
 
AWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったことAWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったこと
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
 
HTTPと Webクローリングについて
HTTPと WebクローリングについてHTTPと Webクローリングについて
HTTPと Webクローリングについて
 
Rake
RakeRake
Rake
 
Active record query interface
Active record query interfaceActive record query interface
Active record query interface
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能について
 
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナーRuby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO について
 
Thread の利用事例紹介
Thread の利用事例紹介Thread の利用事例紹介
Thread の利用事例紹介
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについて
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 

Recently uploaded (12)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 

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

  • 1. Ruby on Rails の特徴と そのエコシステム 2014/2/15 cuzic
  • 2. 自己紹介 cuzic きゅーじっく Ruby 関西の co-founder の1人 amagasaki.rb の founder Ruby関西の代表( 2014年~) 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 1
  • 3. 今日話したいこと Ruby を使おう! Ruby on Rails の特徴とそのエコシステム 関西の Ruby コミュニティ 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 2
  • 6. Rubyを使う理由 2/2 健全な進化を続ける Ruby 言語仕様等が強化され続ける Ruby 増え続ける強力なライブラリ 増え続ける Ruby を利用するアプリ、ツールたち http://www.flickr.com/photos/48455792@N04/6155519047/ 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 5
  • 7. みんなと仲良し! Ruby Ruby はすぐれた Glue 言語 動的型付け言語 相手のメッセージを柔軟に解釈できる 内部DSL を作りやすい文法 記述性、可読性を両立できる すっごくパワフル なんでも実現できる強力なライブラリ群 例 Ruby on Rails Webサービスネイティブなフレームワーク JSON を返す REST API を簡単に外部に提供可能 簡単に外部の WEBサービス(JSON/REST API) を利用可能 ActiveResource Rake Ruby版の Make いろんな処理を依存関係を含めて自動化できる 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 6
  • 8. クラウドネイティブな言語 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 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 7
  • 9. Ruby on Rails の 特徴と そのエコシステム
  • 10. 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日 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」 9
  • 11. Ruby on Rails の特徴 1/3 10 ハッカー養成ギブス Ruby on Rails 開発生産性を高めるアイデアがてんこもり 採用技術 説明 アーキテクチャパターン 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 アプリを簡単デプロイ 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 12. 11 Ruby on Rails の特徴 2/3 ベストプラクティスに従うことで、作業量を減らし、保守性を向上できる HTML SlimTemplate CSS SASS/SCSS Compass JavaScript CoffeeScript <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-tabs li.active a[href="#"] Home li a[href="#"] Profile li a[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; } } 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://") == -1 event.preventDefault() a = "about:blank" w = window.open(a, "_blank") $(w.document).ready -> w.open(url, "_self") 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 13. Ruby on Rails の特徴 3/3 12 デフォルト設定が良い 高いセキュリティ、デバッグしやすい、生産性が高い 採用技術 説明 セキュリティ ・CSRF対策 ・XSS対策 ・SQLインジェクション対策 ・リクエストにトークンを自動付与 ・自然で自動的なエスケープ処理 静的アセットの提供 HTTP ヘッダの生成 適切な HTTP ヘッダ cache-control、ETAG、If-Modified-Since セッションストア クッキーストアなど を選択可能 ・デフォルトはクッキーストア ・RDBMS や KVS に保存することもできる。 ・クッキーストアでは、改ざん検出用の 署名情報も自動挿入される デバッグ表示 ・例外表示 ・変数の内容表示 ・開発時は見やすいスタックトレース ・本番ではそれなりのエラーページ ・better_errors を使えば、変数の参照も可能 ログ出力 Rails.logger ・見やすいカラーで出力される ・開発/本番でそれぞれ適切なログレベルで表示 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 14. みんなで作る Ruby on Rails 13 非常に活発な開発コミュニティ 3,000+ のコントリビュータ http://contributors.rubyonrails.org/ 継続的カイゼン 積極的な機能追加、セキュリティ・柔軟性の強化 ときには後方互換性を犠牲にしつつもカイゼンを続ける コミッターと開発コミュニティの距離の近さ Github & pull request 文化 開発コミュニティ全体で、プロダクトを改善していく文化 Rubyの動的で柔軟性が高い文法 オープンクラス 定義済みクラスへのメソッドの追加、再定義が可能 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 16. いつでも!どこでも! Ruby on Rails ! 15 Ruby on Rails:モジュラーに構造化されている そのため、多様な状況に適用・対応可能 性能重視!スピード狂!の場合 ActionController::Metal Ruby on Rails の大部分の機能を無効化 代わりに高速化を実現 API を提供するだけの場合 rails-api API だけを提供する場合に最適化。軽量、高速 RDBMS 以外を使う場合 Mongoid (MongoDB 用 ORM) Moneta (多様な KVS を統一的に扱える) ActiveModel::Model 自作のモデルを Rails のコントローラやビューと連携させる 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 17. 公開カンタン! Ruby on Rails! 16 Heroku でカンタンにデプロイできる! @ayumin さん、素晴らしい説明ありがとうございましたっ! Git を活用したカンタンデプロイ Git を使うのがベストプラクティスというメッセージ 一定レベル以上の開発者を前提としたエコシステム 慣れるとすごく快適な開発・デプロイ環境 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 19. 関西の Ruby コミュニティ 18 Ruby関西 2004年~ 次回は 3月29日(土) グランフロント大阪開催予定 講師による発表/セミナー形式 minami.rb 2010年~ 大阪なんば地域で継続的に開催 Ruby on Rails の初心者向けレッスンがある kyoto.rb、西脇&東灘.rb、wakayama.rb、shinosaka.rb この1~2年に発足 少人数(10名程度)で、もくもく会中心 amagasaki.rb cuzic が設立 コンピュータ関連書籍の読書会中心 Ruby と実はあまり関係ない。初心者向けじゃない。 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 20. 19 ハブとしての Ruby関西 「Ruby関西」は、関西 Ruby コミュニティのハブ 相互に集客を支援しあう JAWS-UG XEgg K-OF Ruby関西 Ruby Association Ruby 協 地域ミニ Ruby コミュニティ amagasaki.rb 、 minami.rb 、 西脇&東灘.rb 、 Kyoto.rb 、 wakayama.rb、 shinosaka.rb 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 21. Ruby 関西 のお願い 20 Facebook に「いいね!」してください http://www.facebook.com/rubykansai 関西地域の Ruby 勉強会イベントなどを周知しています Twitter をフォローしてください https://twitter.com/rubykansai Doorkeeper に登録してください http://rubykansai.doorkeeper.jp/ Ruby 関西主催イベントの情報を配信しています 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」
  • 22. まとめ 21 Ruby とっても楽しい とってもパワフル。とっても自由。 インストールで挫折しないでね。 Ruby on Rails ハッカー養成ギブス みんなで良くしていく Ruby on Rails 関西の Ruby コミュニティ Ruby関西 10周年 活発な Ruby コミュニティがいっぱい みんな、来てね。こわくないよ。 2014/2/15 Innovation EGG 第2回 XEgg 1st 「Ruby on Rails の特徴とそのエコシステム」