ruby on rails ~ラク に開発できるのか - oisa.jp · rails(ruby on rails)とは?...

54
Ruby On Rails ラクに開発できるのか? 平成20年度 OISA 「技術研究会」 Ruby On Rails部会 報告書 20092

Upload: others

Post on 15-Oct-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

Ruby On Rails ~ラクに開発できるのか?~

平成20年度 OISA 「技術研究会」Ruby On Rails部会 報告書

2009年 2月

Page 2: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

1

部会員およびアドバイザー・技術委員

【部会委員】 (順不同)

川上 隆幸 大分シーイーシー(株)

佐藤 洋一 大分シーイーシー(株)

兒玉 清幸 大分大学

小野 可奈子 (株)富士通大分ソフトウェアラボラトリ

田中 康夫 九州東芝エンジニアリング(株)

【アドバイザー・技術委員】 (順不同)

築城 久敏 (株)システムトレンド

清水 太 (株)ワイズ・システムズ

三嶋 信太郎 大分ケーブルテレコム(株)

佐藤 清孝 (株)ウィルウェイ

安達 裕之 (株)システムトレンド

Page 3: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

2

目次

1.はじめに

1.1 はじめに

1.2 活動目的

2.Ruby と Rails2.1 Ruby

2.2 Rails

2.3 国内/海外での動向

3.検証・評価

3.1 サンプルシステム作成

3.2 Railsの利点/欠点

4.おわりに

4.1 まとめ

4.2 おわりに

参考資料

Page 4: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

1.はじめに

Page 5: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

4

1.はじめに

� 最近最近最近最近、、、、RubyRubyRubyRubyやややや Ruby On RailsRuby On RailsRuby On RailsRuby On Rails とととと言言言言ううううキーワードキーワードキーワードキーワードをををを

見見見見たりたりたりたり、、、、聴聴聴聴いたりしませんかいたりしませんかいたりしませんかいたりしませんか????

Railsって

スゴいらしいよ。

Javaの10倍の開発生産性 がある!

本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????

Page 6: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

5

1.2 研究目的

【【【【活動目的活動目的活動目的活動目的】】】】

� Ruby On RailsRuby On RailsRuby On RailsRuby On Railsのののの持持持持つつつつ開発生産性開発生産性開発生産性開発生産性をををを調査調査調査調査

– なぜ、支持を集めているのか?

– 国内・海外での動向

– ラクに開発できるのか?(開発生産性は高まる?)

本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????

Page 7: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

2. Ruby と Rails

Page 8: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

7

2.1 Rubyとは?

� インタプリタインタプリタインタプリタインタプリタ型型型型オブジェクトオブジェクトオブジェクトオブジェクト指向指向指向指向プログラミングプログラミングプログラミングプログラミング言語言語言語言語

� まつもとゆきひろまつもとゆきひろまつもとゆきひろまつもとゆきひろ氏氏氏氏によってによってによってによって開発開発開発開発されたされたされたされた、、、、国産言語国産言語国産言語国産言語

� オブジェクトオブジェクトオブジェクトオブジェクト指向指向指向指向、、、、正規表現正規表現正規表現正規表現、、、、ガーベージコレクタガーベージコレクタガーベージコレクタガーベージコレクタなどなどなどなど主要主要主要主要ななななプログラミングプログラミングプログラミングプログラミング言語言語言語言語がががが持持持持つつつつ機能機能機能機能をををを実装実装実装実装

� 最新最新最新最新バージョンバージョンバージョンバージョンはははは、、、、1.9.11.9.11.9.11.9.1

Page 9: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

8

文法構造~Javaとの比較~

◆クラスの定義

◆メソッドの定義

class クラス名 [<スーパークラス]文

end

[修飾子]class クラス名[extends スーパークラス]{文

}

def メソッド名文

end

[修飾子] 返り値の型 メソッド名{

文}

Ruby

Ruby Java

Java

Page 10: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

9

Rails(Ruby On Rails)とは?

� RubyRubyRubyRubyをををを用用用用いたいたいたいたWebWebWebWebアプリケーションフレームワークアプリケーションフレームワークアプリケーションフレームワークアプリケーションフレームワーク

� オープンソースオープンソースオープンソースオープンソースでででで開発開発開発開発((((現在現在現在現在のののの最新最新最新最新versionversionversionversionはははは2.22.22.22.2))))

� 高高高高いいいい開発効率開発効率開発効率開発効率がががが注目注目注目注目をををを集集集集めているめているめているめている!!!!

•Railsなら、ブログが10分で作れる!

•Railsなら、Javaより10倍早く開発できる!

Page 11: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

10

【疑問】:Railsの開発効率はなぜ高い?

1111....環境設定環境設定環境設定環境設定ががががラクラクラクラク

2222....コードコードコードコード量量量量がががが少少少少なくてなくてなくてなくてラクラクラクラク

3333....実行実行実行実行がしやすくてがしやすくてがしやすくてがしやすくてラクラクラクラク

Page 12: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

11

連携

環境設定【Javaの場合】

DB

MySQL

Hibernate連携

Struts

Tomcat

連携

DB WEB CLIENT

Page 13: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

12

Rails

環境設定【Railsの場合】

DB

MySQL

連携

連携

DB WEB CLIENT

CONTROLER

MODEL

VIEW

Page 14: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

13

環境設定がラク!

1111....環境設定環境設定環境設定環境設定ががががラクラクラクラク– 後付でフレームワークを導入する必要なし!

– 多様なフレームワークを扱う必要なし!

– Railsのみに注力することができる!

開発効率開発効率開発効率開発効率がががが上上上上がるがるがるがる!!!!!!!!((((ラクラクラクラクにににに開発開発開発開発できるできるできるできる!!)!!)!!)!!)

Page 15: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

14

� ユーザユーザユーザユーザにににに表示表示表示表示するするするする部分部分部分部分((((HTMLHTMLHTMLHTML))))のののの記述記述記述記述はははは、、、、RubyRubyRubyRubyととととJavaJavaJavaJavaでででで大大大大きなきなきなきな差差差差はないはないはないはない。。。。

� 設定設定設定設定ファイルファイルファイルファイルのののの記述量記述量記述量記述量にににに大大大大きなきなきなきな差差差差ができるができるができるができる。。。。

コード量比較【Ruby vs. Java】

<html>

・・・・<body>

・・・・<%= “Hello,World” %>

・・・・

<html>

・・・・<body>

・・・・<%out.println(“Hello,World”) %>

・・・・RHTMLファイル JSPファイル

Page 16: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

15

コード量の比較【Javaの場合】

連携

DB

MySQL

Hibernate連携

Struts

Tomcat

連携

DB WEB CLIENT

設定ファイル

設定ファイル

設定ファイル

Page 17: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

16

Rails

コード量の比較【Railsの場合】

DB

MySQL

連携

連携

DB WEB CLIENT

CONTROLER

MODEL

VIEW

設定ファイル

Page 18: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

17

コード量が少なくてラク!

2222....コードコードコードコード量量量量がががが少少少少なくてなくてなくてなくてラクラクラクラク– 複数の設定ファイルを作成する必要なし!

– 設定ファイルの記述もとても簡単!

– 余計な設定を行う必要なし!

開発効率開発効率開発効率開発効率がががが上上上上がるがるがるがる!!!!!!!!((((ラクラクラクラクにににに開発開発開発開発できるできるできるできる!!)!!)!!)!!)

Page 19: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

18

更新通知

開発のやり方【Javaの場合】

WEBWEBWEBWEBアプリケーションアプリケーションアプリケーションアプリケーションのののの作作作作りりりり方方方方::::

WEB

PROGRAM

A

PROGRAM

B

PROGRAM

C

System-X

【問題点】・再起動が必要・更新の反映が遅い・再起動に時間がかかる

更新

再起動

Page 20: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

19

Rails

開発のやり方【Railsの場合】

WEBWEBWEBWEBアプリケーションアプリケーションアプリケーションアプリケーションのののの作作作作りりりり方方方方::::

WEB

PROGRAM

A

PROGRAM

B

PROGRAM

C

System-X

【利点】・再起動は必要ない・更新の反映が早い【問題点】・実行時のオーバヘッド

更新

PROGRAM

A

最新状態に更新

実行時に評価

Page 21: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

20

実行がしやすくてラク!

3333....実行実行実行実行がしやすくてがしやすくてがしやすくてがしやすくてラクラクラクラク– システムを再起動させる必要なし!

– 更新がすぐに反映される!

– 実行⇒デバッグのサイクルが早くなる!

開発効率開発効率開発効率開発効率がががが上上上上がるがるがるがる!!!!!!!!((((ラクラクラクラクにににに開発開発開発開発できるできるできるできる!!)!!)!!)!!)

Page 22: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

21

【疑問】:Railsは使われているのか?

ビジネスビジネスビジネスビジネスではではではでは…………活用事例活用事例活用事例活用事例がががが増増増増えてきたえてきたえてきたえてきた!!!!

Page 23: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

22

活用事例紹介

①①①①::::国内企業編国内企業編国内企業編国内企業編---- ニフティニフティニフティニフティ株式会社株式会社株式会社株式会社のののの事例事例事例事例---- 株式会社株式会社株式会社株式会社リコーリコーリコーリコーのののの事例事例事例事例

②②②②::::海外企業編海外企業編海外企業編海外企業編---- TwitterTwitterTwitterTwitter社社社社のののの事例事例事例事例

Page 24: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

23

国内企業編:ニフティ株式会社

� WebWebWebWebアプリケーションアプリケーションアプリケーションアプリケーションををををRailsRailsRailsRailsでででで作成作成作成作成・・・・公開公開公開公開

– @nifty TimeLine β(誰でも年表が作れるソフト)

– Web開発プラットフォームの選定のために開発

– 4~5人月くらいで作成

– @nifty開発後も積極的Railsを利用している。

Page 25: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

24

@niftyTimeLine

Page 26: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

25

国内企業編:株式会社リコー

� WebWebWebWebアプリケーションアプリケーションアプリケーションアプリケーションををををRailsRailsRailsRailsでででで作成作成作成作成・・・・公開公開公開公開

– quanp(ファイル共有サービス)

– 有料サービス

– 現在も、Ruby/Railsを使用して開発を続けている。

Page 27: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

26

quanp

Page 28: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

27

国内企業とRails

� まだまだまだまだまだまだまだまだ、、、、導入実績導入実績導入実績導入実績はははは少少少少ないないないない。。。。

� 着実着実着実着実にににに増加増加増加増加しているしているしているしている。。。。有料有料有料有料サービスサービスサービスサービスでのでのでのでの導入実績導入実績導入実績導入実績もももも見見見見られるようになったられるようになったられるようになったられるようになった。。。。

� 現在現在現在現在はははは、、、、啓蒙活動啓蒙活動啓蒙活動啓蒙活動のののの段階段階段階段階ともいえるともいえるともいえるともいえる。。。。⇒⇒⇒⇒Ruby Business CommonsRuby Business CommonsRuby Business CommonsRuby Business Commons

Page 29: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

28

米Twitter社

� WebWebWebWebアプリケーションアプリケーションアプリケーションアプリケーションににににRailsRailsRailsRailsをををを利用利用利用利用

– Twitterは、海外で人気を誇るコミュニケーションサービス

– 2006年7月にサービス開始、2008年4月より日本語版も登場している。

– Railsベースのキラーアプリケーション

Page 30: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

29

Twitter

Page 31: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

30

海外企業とRails

� ベンチャーベンチャーベンチャーベンチャー企業企業企業企業でよくでよくでよくでよく利用利用利用利用されるされるされるされる。。。。

� 日本日本日本日本よりもよりもよりもよりも人気度人気度人気度人気度・・・・注目度注目度注目度注目度はははは高高高高いいいい

� TwitterTwitterTwitterTwitterのようなのようなのようなのようなキラーアプリケーションキラーアプリケーションキラーアプリケーションキラーアプリケーションもももも登場登場登場登場しているしているしているしている

Page 32: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

3. 検証・評価

Page 33: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

32

【疑問】ラクに開発できるのか?

�ラクラクラクラクにににに開発開発開発開発できるのかできるのかできるのかできるのか????

自自自自らららら試試試試してしてしてして評価評価評価評価するするするする!!!!

Page 34: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

33

評価方法

� 評価方法評価方法評価方法評価方法::::

– 2つのフレームワークで同じアプリケーションを作る。

– 比較するフレームワークは、Javaを採用。

– 二つのアプリケーションの開発で得られた知見から評価する。

� 作成作成作成作成するするするするアプリケーションアプリケーションアプリケーションアプリケーション::::

– ログイン管理システム

Page 35: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

34

ログイン管理システム:画面遷移図

ログイン画面 メニュー画面ログイン

検索条件画面

検索

検索結果画面

検索開始

登録画面

更新画面

削除画面

削除

更新

戻る

戻る

戻る

登録

Page 36: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

35

使用フレームワーク(1):Rails

利用利用利用利用フレームワークフレームワークフレームワークフレームワーク一覧一覧一覧一覧::::

� Ruby version 1.8.6Ruby version 1.8.6Ruby version 1.8.6Ruby version 1.8.6

� Ruby On Rails version 1.2.6Ruby On Rails version 1.2.6Ruby On Rails version 1.2.6Ruby On Rails version 1.2.6

利用利用利用利用するするするするDB:DB:DB:DB:

� My SQL version 5.0.6.7My SQL version 5.0.6.7My SQL version 5.0.6.7My SQL version 5.0.6.7

Page 37: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

36

使用フレームワーク(2):Java

利用利用利用利用フレームワークフレームワークフレームワークフレームワーク一覧一覧一覧一覧::::

� Java version 1.4.2Java version 1.4.2Java version 1.4.2Java version 1.4.2

� Tomcat version 5.5Tomcat version 5.5Tomcat version 5.5Tomcat version 5.5

� Hibernate version 3.2Hibernate version 3.2Hibernate version 3.2Hibernate version 3.2

� Struts version 1.3.8Struts version 1.3.8Struts version 1.3.8Struts version 1.3.8

利用利用利用利用するするするするDB:DB:DB:DB:

� My SQL version 5.0.6.7My SQL version 5.0.6.7My SQL version 5.0.6.7My SQL version 5.0.6.7

Page 38: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

37

作成したシステム:ログイン画面

Page 39: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

38

作成したシステム:メニュー画面

Page 40: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

39

作成したシステム:ユーザ検索画面

Page 41: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

40

作成したシステム:検索結果

Page 42: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

41

評価:Railsを使ってみて良かった点

� 1111....準備準備準備準備((((環境設定環境設定環境設定環境設定))))ががががラクラクラクラク

� 2222....設定設定設定設定ファイルファイルファイルファイルががががラクラクラクラク

� 3333....実行実行実行実行しやすくてしやすくてしやすくてしやすくてラクラクラクラク

Page 43: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

42

利点1.環境設定がラク 【Java編】

� JavaJavaJavaJavaでのでのでのでのインストールインストールインストールインストールからからからから開発開発開発開発までのまでのまでのまでのフローフローフローフロー

– Javaをインストール

– Tomcatをインストール &&&& 設定設定設定設定

– MySQLをインストール

– Strutsをインストール &&&& 設定設定設定設定

– Hibernateをインストール &&&& 設定設定設定設定

– 開発スタート!

開発までの、環境設定が煩雑!

Page 44: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

43

利点1.環境設定がラク 【Rails編】

� RailsRailsRailsRailsでのでのでのでのインストールインストールインストールインストールからからからから開発開発開発開発までのまでのまでのまでのフローフローフローフロー

– Rubyをインストール

– Railsをインストール

– MySQLをインストール

– 開発スタート!

開発までの、環境設定がラク!

Page 45: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

44

利点2.設定ファイルがラク

� RailsRailsRailsRailsでのでのでのでの設定設定設定設定ファイルファイルファイルファイルはははは記述記述記述記述がががが少少少少ないないないない!!!!

【【【【JavaJavaJavaJava版版版版システムシステムシステムシステム::::設定設定設定設定ファイルファイルファイルファイル】】】】

---- hibernate.cfg.xml , USERS.hbm.xmlhibernate.cfg.xml , USERS.hbm.xmlhibernate.cfg.xml , USERS.hbm.xmlhibernate.cfg.xml , USERS.hbm.xml

---- strutsstrutsstrutsstruts----config.xmlconfig.xmlconfig.xmlconfig.xml

---- server.xml , web.xml, etc....server.xml , web.xml, etc....server.xml , web.xml, etc....server.xml , web.xml, etc....

【【【【Rails Rails Rails Rails 版版版版システムシステムシステムシステム::::設定設定設定設定ファイルファイルファイルファイル】】】】

---- database.ymldatabase.ymldatabase.ymldatabase.yml

XML設定ファイル

Page 46: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

45

利点2.デバッグしやすくてラク

� RailsRailsRailsRailsではではではでは、、、、更新更新更新更新がすぐにがすぐにがすぐにがすぐに反映反映反映反映されるされるされるされる。。。。

� 再起動待再起動待再起動待再起動待ちがないためちがないためちがないためちがないため、、、、ストレスストレスストレスストレスをををを感感感感じないじないじないじない。。。。

サクサク開発できている気がする!

Page 47: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

46

評価:Railsを使ってみて困った点

� 1111....簡潔簡潔簡潔簡潔すぎるすぎるすぎるすぎるコードコードコードコード

� 2222....実行効率実行効率実行効率実行効率

Page 48: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

47

簡潔すぎるコード

� RailsRailsRailsRailsはははは、、、、““““設定設定設定設定よりよりよりより規約規約規約規約””””((((CoC:Convention over CoC:Convention over CoC:Convention over CoC:Convention over Configuration)Configuration)Configuration)Configuration)というというというという哲学哲学哲学哲学によりによりによりによりコードコードコードコードをををを書書書書くくくく量量量量がががが減減減減るるるる。。。。

� 前提前提前提前提となるとなるとなるとなる概念概念概念概念やややや知識知識知識知識をををを理解理解理解理解していなければしていなければしていなければしていなければ、、、、デバッグデバッグデバッグデバッグすることがすることがすることがすることが難難難難しいしいしいしい。。。。

– 命名規則

– MVCモデル

– 暗黙変数, etc...

言い換えると

Page 49: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

48

実行効率

� 実行速度実行速度実行速度実行速度のののの遅遅遅遅さがさがさがさが、、、、各方面各方面各方面各方面からからからから指摘指摘指摘指摘されているされているされているされている。。。。

– 高負荷に対するスケーラビリティの低さ

– Rubyの実行速度の遅さ

� 今後今後今後今後ののののバージョンアップバージョンアップバージョンアップバージョンアップをををを注視注視注視注視するするするする必要必要必要必要アリアリアリアリ!!!!

– 現行Rubyの5倍速い、Ruby version 1.9

– Ruby on Rails 2.x or 3.x

Page 50: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

49

Ruby vs. Java

Gentoo : Intel Pentium 4 Computer Language Shootout より抜粋

全全全全てのてのてのての項目項目項目項目でででで遅遅遅遅いいいい

実行速度実行速度実行速度実行速度 メモリメモリメモリメモリ効率効率効率効率 ソースサイズソースサイズソースサイズソースサイズRuby

Java

Page 51: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

5.おわりに

Page 52: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

51

結論

本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????本当本当本当本当ににににラクラクラクラクにににに開発開発開発開発できるのできるのできるのできるの????

確確確確かにかにかにかにラクラクラクラクしてしてしてして開発開発開発開発ができたができたができたができた!!!!!!!!

Page 53: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

52

まとめ

� Ruby On RailsRuby On RailsRuby On RailsRuby On Railsをををを使使使使ったったったった開発開発開発開発のののの利点利点利点利点・・・・欠点欠点欠点欠点をまとめるをまとめるをまとめるをまとめる。。。。

【【【【利点利点利点利点】】】】

---- 環境設定環境設定環境設定環境設定ががががラクラクラクラク

---- 設定設定設定設定ファイルファイルファイルファイルががががラクラクラクラク

---- 実行実行実行実行がしやすくてがしやすくてがしやすくてがしやすくてラクラクラクラク

【【【【欠点欠点欠点欠点】】】】

---- 簡潔簡潔簡潔簡潔すぎるすぎるすぎるすぎるコードコードコードコード

---- 実行効率実行効率実行効率実行効率

•Railsは開発効率を高める!

•Railsを効果的に使うためには、知識・経験が必要!!

Page 54: Ruby On Rails ~ラク に開発できるのか - oisa.jp · Rails(Ruby On Rails)とは? RubyをRubyををを用用用いたいいたたいたWeb WebWebアプリケーションフレームワークアプリケーションフレームワーク

大分県情報大分県情報大分県情報大分県情報サービスサービスサービスサービス産業協会産業協会産業協会産業協会

53

おわりに

� RailsRailsRailsRailsのののの登場以降登場以降登場以降登場以降、、、、様様様様々々々々ななななWebWebWebWebアプリケーションフレームアプリケーションフレームアプリケーションフレームアプリケーションフレームワークワークワークワークがががが登場登場登場登場しているしているしているしている。。。。

Ruby On Rails

JRuby on Rails

Grails

Django

Seasar2

etc...

� 技術動向技術動向技術動向技術動向をををを注視注視注視注視するするするする必要必要必要必要があるがあるがあるがある!!!!!!!!