the essence of using ruby on rails in corporations

Post on 08-May-2015

1.966 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

企業システム開発におけるRuby/Railsの活用

伊藤忠テクノソリューションズ(株)koichiro@ctc-g.co.jp

koichiro@meadowy.org大場 光一郎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

例: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

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

top related