the essence of using ruby on rails in corporations
TRANSCRIPT
企業システム開発におけるRuby/Railsの活用
伊藤忠テクノソリューションズ(株)[email protected]
[email protected]大場 光一郎JUAS OSS活用研究プロジェクト; 2008-11-11(火)
1
CTCはRuby技術者認定試験をやってます。
2
自己紹介クロスファンクショングループシステムエンジニアリング室SI推進部開発環境推進課
3
開発システムジャーナル vol.7(マイコミ)RoR逆引きクイックリファレンス(マイコミ)まるごとRuby vol.1(Impress)JavaExpert #02(技術評論社)Scarabによるバグ追跡システム(オーム社)
Now Printing
4
JRubyと私
•NKF•Iconv
5
資料は公開します
6
Agenda•Railsの特徴を紹介•特徴にあった活用•人の育成•実際にやってみた
7
Rubyの特徴
•オブジェクト指向言語•スクリプト言語•動的な言語
8
まつもとゆきひろ氏9
10年以上の歴史
Ruby1.0
Ruby1.1
20001995 2010
Ruby1.2
Ruby1.3
Ruby1.4
Ruby1.6
Ruby1.8
Ruby1.9
Java1.0
Java1.1
Java1.2
Java1.3
Java1.4
Java5.0 Java 6
2005
10
Railsの概要
•Webアプリケーションフレームワーク
•MVC
11
MVC
Ruby on Rails
Browser
Database
Controller
ModelView
11
1214
15 13
16
12
デザインパターン
13
Railsで構築したサイト
14
Rails2つの理念
18
DRY1Don’t Repeat Yourself
19
CoC2Convention over Configuration
20
例:Controllerhttp://website.com/greeting/say
class GreetingController < App.. def say “Hello World.” endend
Greeting
greeting
say
say
21
例:Modelclass User < Act... has_many :blogsend
class Blog < Act... belongs_to :userend
number
varcharmail
id
passwordname varchar
char
users
number
datetimeupdated_at
id
entryuser_id number
varchar
blogs
22
DSL
•Domain Specific Language
•ドメイン特化言語23
コード量が激減する
24
ジェネレータとは違います
25
メタプログラミング
26
実践Rails
オライリー・ジャパン社Brad Ediger著(株)クイープ訳3150円
目次
27
Scaffold•足場、ひな型•マスタメンテ•本格的アプリケーションでは使われない
28
Rai lsってなに?
29
オブジェクト指向(Ruby)+
デザインパターン(Rails)||
メタプログラミング(DSL)
30
Railsの特徴
31
Railsに先進的な発明が盛り込まれているわけではない
32
なにが人々を惹きつけるのか
33
プログラミングする上でよいとされるプラクティスが詰め込んである
34
アジャイル
35
アジャイル支援•マイグレーション•DBの変更がクラス並みに容易に
•少しづつ理想的なスキーマに育てる
36
テスト•ユニットテスト•ファンクショナルテスト•インテグレーションテスト•テスト駆動開発(TDD)
37
テストが変更する力を生み出す
38
RESTful39
REST
•かっこいいURL•規則的なURL•HTTPを活用しよう
40
http://unrest.com/login.do?jsessionid=09834ljjfsdioreiw8043
41
http://rest.com/entries/10/edit
42
Ra i l sのパワー
43
バランスの妙
44
パレートの法則
•80-20ルール•20の力で80のことを•80まではカバーする
45
Railsの楽しさ
•小さな力•大きな変化•全能感
46
DRY,デザインパターン,メタプログラミング,
TDD,REST||
Rails
まとめ
47
得手不得手
(c) mckaysavage
mckaysavage
48
合わないプロジェクト
49
DRYじゃないDRYにしなくていい
(c) Jun Seita50
多数で同時開発
51
オブジェクト指向に不慣れ
52
テストを使わない
53
RESTじゃない
54
DB変更できない
55
Railsが得意とする武器が封じられる
56
できることJava Ruby
WebAppMailDB
Web ServiceAsyncLegacyAuth*
● ●● ●● ●● ▲● ▲● ▲● ▲
57
マッチするプロジェクトとメンバーならたいへんなパワーを生み出す
58
マッチするプロジェクトに適用する
59
Railsにマッチするメンバーを育てるには
60
プログラミング言語を使うと
61
思考のプロセスに影響する
62
RubyらしいRubyっぽい
63
The Ruby Way64
65
オブジェクト指向に精通デザインパターンに造詣
テストを愛する
66
王道は無い
67
みんながエキスパートでなくてもいい
68
Railsの性質を理解することで効果的に使える
69
Railsは自転車だ
70
背景の理論が分からなくても乗れる。原理、姿勢の出し方、力の入れ方を知ってると速く走れる。
71
人を育てるプロジェクト
とは72
ソースコードレビュー
73
ペアプログラミング
74
コミュニケーション
75
名前重要
76
Railsが取り入れているプラクティスを活用する
77
実際にやってみた
78
•10人は多い•6人以下くらい•1名は経験者が欲しい•経験者いなければ作る
79
進化の速いRails
80
Railsの歴史
Rails1.0.0
Rails1.1.0
Rails1.2.1
Rails2.0.0
Rails2.1.0
Rails2.2RC1
2005-12 2006-03 2007-01 2007-07 2008-06 2008/10
81
プラグインヘル
82
Enginesの悪夢
83
後方互換性の無い変更
84
追いつくのが大変更新も大変人に勧めるのも大変参考書籍が無い
85
鮫は泳ぐのを止めると死ぬ
86
バージョンを固定することでスキル停滞をまねく
87
新しいRailsには機能だけでなく新しい考え方が導入される
88
•Rails 2.0 → REST•Rails 2.1 → named_scope
•Rails 2.2 → 国際化、MT-safe
89
パフォーマンスが上がる
90
セキュリティの向上
91
Railsを使うということ•Rails的に行動する•オブジェクト指向•デザインパターン•メタプログラミング•テスト
92
まとめ•Railsの魅力•Railsに合うプロジェクトを選ぶ
•Railsをうまく使うには•Railsを使う上での課題
93
Rai lsは人を育てる
94
Any Question?
95