Sun Microsystems, Inc. Agenda - - PDF document

sun microsystems inc
SMART_READER_LITE
LIVE PREVIEW

Sun Microsystems, Inc. Agenda - - PDF document

Sun Microsystems, Inc. Agenda


slide-1
SLIDE 1

Sun Microsystems, Inc.

Page 1

  • Agenda
  • !"!!

#

Who am I

  • $%!&
  • '!!()*+,
  • -.)
  • /"!
  • 01.
  • 2

> $3$++3$43333'3 > !--.-35&53

slide-2
SLIDE 2

Sun Microsystems, Inc.

Page 2

6

What Is Ruby

  • "3%%

> 5 > %3$ > 733389 > 33389

  • $)::#;8.<9.

> 8.%%9

  • 1!3
  • )=>=23)=:!

=*

?

Ruby Quick Tour: Pure OO

  • -!%@

> $=(6, AB$ > 89= AB# > )=C

AB8)9

  • 0%@$

> )=

AB/2

  • "5
  • %@

D

Ruby Quick Tour: Basics

  • '

> Fixnum: 1 > Float: 1.0 > Bignum: 12345678987654321 > String: “one” 'one' %Q[one] %q[one] ... > Multiline string (“here doc”):

x = <<EOS extend across two lines EOS

> Symbol: :one, %s[one] > Regexp: /^foo\w+.*bar$/, %r[^foo$] > Array: [1, “ein”, :ichi] > Hash: {:one => 1, :two => 2}

slide-3
SLIDE 3

Sun Microsystems, Inc.

Page 3

E

Ruby Quick Tour: Basics

  • String substitution

> a = “foo” > b = “bar#{a}baz” => “barfoobaz”

  • Operator overloading

> def +(arg); ...

  • Attributes

> class Foo

attr_accessor :a end x = Foo.new x.a = “hello” puts x.a => “hello”

>

Ruby Quick Tour: Duck Typing

  • 85F===9

> G! def make_it_waddle(waddler) waddler.waddle end make_it_waddle(Duck.new) make_it_waddle(Penguin.new) make_it_waddle(Octopus.new)

:

Ruby Quick Tour: A Simple Class

  • !""#
slide-4
SLIDE 4

Sun Microsystems, Inc.

Page 4

)*

Ruby Quick Tour: Blocks

$%&'((( )**+&,,-&'-' )**+,,

  • &'-
  • (.
  • /.

.--

  • ))

Ruby Quick Tour: Modules

!$

  • 01((

(

  • ($(
  • &,,2 !""'

&,*,32' 4

)

JRuby

  • !
  • **33
  • 0!
  • &!3
  • **E)=*3
  • **E)=)3
slide-5
SLIDE 5

Sun Microsystems, Inc.

Page 5

)#

JRuby Compiler

5. # 3

  • $678$67
  • &$%&$6"''

)6

JRuby Compiler

((*(( 9:7 7;($7 71 6$61 <=>=>>>>>>>>>><=>=>>><=>?>>> <===>>>>>>>>>><===>>><===>>> <=?@>>>>>>>>>><=?@>>><=?@>>> <=A@>>>>>>>>>><=A@>>><=A<>>> <BB<>>>>>>>>>><BB<>>><BB<>>> ( 9:7 716$61 >BB<>>>>>>>>>>>BB<>>>>BB<>>> >=AB>>>>>>>>>>>=AB>>>>=AC>>> >=AB>>>>>>>>>>>=AB>>>>=AD>>> >=A=>>>>>>>>>>>=A=>>>>=A?>>> >=@?>>>>>>>>>>>=@?>>>>=@?>>>

)?

JRuby Compiler

9:6$61 E$6$61 6$61 9:. E$.. 9:F 6$61. 6$61. 9:F 9:1716$61 >BB<>>>>>>>>>>>BB<>>>>BB<>>> >=AB>>>>>>>>>>>=AB>>>>=AC>>>

slide-6
SLIDE 6

Sun Microsystems, Inc.

Page 6

)D

Calling Ruby from Java (Java 6)

GG"7( H0I$ H0IJ H0 $0KLJ GG01 ($ & 1J 'H044& 4H.MJ '

)E

Calling Java from Ruby

151. (&' ( 1() 14&* . () $&*-+HNOLPH#Q $((( 33$ &,$,$6""*""'

)>

JRuby Enables Tooling

  • H5-

> & > - II03' J3# > 5 > -

slide-7
SLIDE 7

Sun Microsystems, Inc.

Page 7

):

Swing GUI Programming

  • 05!32

>

  • !!!

>

  • &"7G5

> !!(!,

  • &""2

> &

*

Option 1: Direct approach

14&* 14&$ $&*H# $6""*"" $66 &$R# ((66,1, 14;# 1(

  • $((

$

slide-8
SLIDE 8

Sun Microsystems, Inc.

Page 8

  • Option 2: Cheri (builder approach)

(,%%-./ $$H(#&,$, ""*"" 46$*%S6!TOH 6&.(%NOM0' 01(&,, 6.&4S.(#' ' ' $1

#

Option 3: Profligacy (targeted fixes)

/0 14F (/

  • )3+)F+)2+
  • ./%%))&**&,*,

&$M &12* &) &,(*1, 4 1 4 ' &%2' '

  • 6

Option 4: MonkeyBars (tool-friendly)

  • 7G5(==&8.9,
  • .1$"05
  • $
slide-9
SLIDE 9

Sun Microsystems, Inc.

Page 9

?

MonkeyBars + NetBeans Matisse

D

MonkeyBars Controller

+,3%%%, 61U 6(I(

  • 6%4

((6%2%* %2)K*V+

  • /###16*1

($(616$(6 3($(6( +--%%*

  • (&,,'

(64 ,4MIV)"+( (61

  • E

Web applications

  • $!!

> .H

  • %!"23!"

> $!

  • !!

> !!

Footnote position, 12 pts.

slide-10
SLIDE 10

Sun Microsystems, Inc.

Page 10

>

Option 1: The Rails Way

55#! ,3(, $$(%

  • :

The Rails Way: Controllers

55#! ,3(, 1$%(2%* %2)%*%(*%(+

  • 6$(%
  • %(4%
  • $()%(+

(6)%+ #%2

  • !!!

#*

The Rails Way: Views

67885'.55!889 69 69 6:!#:9 696:;!#:9659 6::9 659

  • 6:<:9

69 6:!#:9 696:;!=!>:9659 6::9 696:;%#?-.?@A;9?.?@A;9:9659 696:;%#??@A;9??@A;9:9659 696:;%#?0?@A;9??@A;9@ A;9?(B?@A;9A:9659 659 6::9 659 6:;%#?'/?@A/;9<#/!!' <#/!!':9 6:;%#?C2/?@A/;9<#/!!2 <#/!!2:9

slide-11
SLIDE 11

Sun Microsystems, Inc.

Page 11

#)

Option 2: Ruvlets (Ruby servlets)

  • -2!05

> K > ====K > -2"

  • L

= -!G' = /@H!H =%@F

#

Bare Bones Ruvlets

D '4*5* 64G 333370"W 32 3(232N(#3G23G(2 3(2N(#3G(2 3G2 0"W

  • D

##

Servlet-like Ruvlets

D311+' 44*5* 64G 333370"W 32 3(232N(#3G23G(2 3(2N(#3G(2 3G2 0"W

  • 4*5*
  • D
slide-12
SLIDE 12

Sun Microsystems, Inc.

Page 12

#6

Ruvlets with Meta-Magic

11+' '4*5* MMR(R"HM2((R ((85(( /

  • 66(66(*4*5*

C 4X((%( (64*5**E7

  • #4*5**
  • #?

Persistence

  • &"

>

  • .330%

> 3!

  • 0!!

> !

  • -23H

> !

#D

Option 1: ActiveRecord

  • ('+AA$!#=

A;9FGF@A;9FF@ A;9FF@A;9F#F@ A.;9FF> H ,6('+AA$

  • 7

,!FF;9F,CF@ FF;9F&+0'F ,!FF;9F1F@FF;9F&+0'F G ,!=A>!II! ;,!##=F,CF>

  • !;F0%J'K'F

!'

slide-13
SLIDE 13

Sun Microsystems, Inc.

Page 13

#E

ActiveRecord Migrations

5/5""###! (K16('+AA/ ! #AII !A#@A/ !A#@A/ !A@A

  • !.

#A

  • #>

Option 2: ActiveHibernate

($(4 H ( 66R" 0EMH

  • 6.6%(*%*%R" 0EM6O;

6%*% 6%4*%(

  • ('60$#,JC*4
  • H%2 *%42"

1 6(( 5 6H$(% 6H$(6( ( 64L 61

#:

Build Automation

  • &@0

> @

  • .!!"

>

  • !

>

Footnote position, 12 pts.

slide-14
SLIDE 14

Sun Microsystems, Inc.

Page 14

6*

Option 1: AntBuilder

$3$%%($

  • %121
  • ((%6.*%6.

1%((266(* %(2* %2161& %26( %$(2( %$(21 '

  • 6)

Option 2: Rake

.%($2% (E1 .%2%(P (

  • (

.%2)%+

  • 6

Option 3: Buildr

33%GGG1<G JC&()%7%%>CD+ (E7. ($.7 1Y>J $)E+!OE<>>D (!( ($ JC&( &66' .%

  • 1(

.%1(

slide-15
SLIDE 15

Sun Microsystems, Inc.

Page 15

6#

Test and Behavior-driven

  • "!!!

> 3

  • 33!

> ===M

  • H

> !"!!

Footnote position, 12 pts.

66

Option 1: test/unit

5G 1-'-%

  • %1,31%%K%%1,

#'## .-'-%MLNO 65MLNO*.VR

  • 6?

Option 2: RSpec

1-'-% 4H1H. $(. 16.-'-% MLN 16.VR( MLN

slide-16
SLIDE 16

Sun Microsystems, Inc.

Page 16

6D

Takeaways

  • 3

> 3! > /3 > .

  • 1.

> /05 > > /2

6E

Links

=@=

  • &

==

="=

==

  • $

==

==I

  • .

==

  • 0!L

==II!

=I@I@"2

==

==

==