Slide 1

Slide 1 text

ίϛολʔ͔Βݟͨ Ruby on Rails @a_matsuda

Slide 2

Slide 2 text

Ruby on Railsͷίϛολʔ ΍ͬͯ·͢

Slide 3

Slide 3 text

ʮRailsͷίϛολʔʯͱ͸ʁ

Slide 4

Slide 4 text

Ruby on Railsͷίϛολʔ

Slide 5

Slide 5 text

18 Members • ίϛοτݖอ༗ऀ͸ݱࡏ18໊

Slide 6

Slide 6 text

41 Repositories • ϝΠϯϓϩμΫτ͸΋ͪΖΜ rails/rails • ಛʹ୲౰Λ࣋ͨͣɺશһͰ1ͭͷϦϙδτϦͷશମΛ د͔͍ͬͯͨͬͯ͡Δ • github.com/rails ഑ԼͷશϦϙδτϦʹ௚઀ίϛοτ
 Ͱ͖ΔݖݶΛ༗͢Δ

Slide 7

Slide 7 text

ࢀߟ·ͰʹRubyͷ৔߹ • Rubyͷίϛολʔ͸୲౰੍ • ॎׂΓͰ୲౰Ϟδϡʔϧ͕ܾ·͍ͬͯΔ΋ͷ͕ଟ͍ • github.com/ruby ഑ԼͷϦϙδτϦͷॻ͖ࠐΈݖ΋ɺ
 ڵຯͷ͋Δਓ͕ࣗ෼ͰΫϨͬͯݴΘͳ͍ͱ΋Β͑ͳ͍

Slide 8

Slide 8 text

Rubyίϛολʔͱ
 Railsίϛολʔͷҧ͍ • RubyํࣜͩͱɺશମΛ೺Ѳͯ͠ͳͯ͘΋ɺॲཧܥͷ
 ͋ΔҰ෦෼ͷΈʹؔ͢Δਂ͍஌͕ࣝ͋Ε͹຿·Δ • ͦͷ৔߹ɺଞͷϝϯόʔͱͷίϛϡχέʔγϣϯ΍
 ࿈ܞ͸ඞͣ͠΋ཁٻ͞Εͳ͍͔΋͠Εͳ͍ • Railsํࣜͩͱɺ͋Δఔ౓͸ओମతʹશମʹؔΘΔ஥ؒͰ ͋Δ͜ͱ͕ٻΊΒΕΔ

Slide 9

Slide 9 text

Rails͸ίϛολʔ͕ΞΫςΟϒ͡Όͳ͘ͳΔͱ
 ίϛοτݖΛฦ্ͨ͠ΓΞϨͨ͠Γ͢Δ׳श͕
 ͋ΔͷͰɺίϛολʔͷਓ਺͕গͳΊ

Slide 10

Slide 10 text

ҰํRubyͰ͸ • ίϛολʔ͸جຊతʹ͸Ӭੈίϛολʔɻ • ਓ਺͸શ෦Ͱ100ਓऑ͙Β͍ʁ(ৄ͘͠͸shugo͞Μʹ
 ฉ͍͍ͯͩ͘͞)ɻ • RubyKaigiͷίϛολʔେू߹اըͰஃ্ʹ্͕ͬͯ
 ͩ͘͞Δͷ͸30ਓલޙɻ

Slide 11

Slide 11 text

Ruby΋Rails΋νʔϜͷن໛ײ ͸͍͍ͩͨಉ͙͡Β͍ͱݴ͑Δ • 20ਓલޙͷΞΫςΟϒͳϝϯόʔ

Slide 12

Slide 12 text

RubyνʔϜͱRailsνʔϜͷ
 ӡ༻ख๏ͷҧ͍

Slide 13

Slide 13 text

Ruby • Ϟδϡʔϧ͝ͱʹ͓͓·͔ʹ୲౰ऀ͕ܾ·͍ͬͯΔ • ୲౰ൣғΛඈͼӽ͑ͯࣗ༝ʹίϛοτ͍ͯ͠Δਓؒ(ʁ) ͸ύονϞϯελʔ͙Β͍ • ϝϯςφ͕inactiveʹͳΔͱɺͦͷ··Ϟδϡʔϧࣗମ͕ unmaintainedঢ়ଶʹؕΔ

Slide 14

Slide 14 text

Rails • খϓϩδΣΫτ੍Έ͍ͨͳײ͡ • νʔϜ಺BasecampʹͯλεΫ͕ϦετΞοϓ͞Εͯɺ ΍Γ͍ͨਓ͕΍Γ͍ͨ΋ͷΛऔ͍ͬͯ͘ • ͋ͱɺGHͷ΀ΔΓΛͻͨ͢Βtriage͢Δ܎͕਺໊͍ͯɺ botͰ୲౰͕ϥϯμϜΞαΠϯ͞ΕΔ

Slide 15

Slide 15 text

ຊ೔ͷ͓୊

Slide 16

Slide 16 text

ʮRailsΞϓϦͷίʔυઃܭʯ

Slide 17

Slide 17 text

ୈҰ෦ • RailsΞϓϦͷίʔυઃܭ

Slide 18

Slide 18 text

ʮαʔϏε૚ͷ࡞Γ͔ͨʯ

Slide 19

Slide 19 text

Έ͍ͨͳ࿩͸͠·ͤΜ

Slide 20

Slide 20 text

ʮίϛολʔ͔Βݟͨʯ
 ؍఺Ͱ࿩Λ͢ΔͳΒ • Railsͬͯօ͞Μ͕ࢥ͍ͬͯΔҎ্ʹΑ͘Ͱ͖ͯΔΜͰɺ ιʔείʔυΛΑ͘ಡΜͰษڧͯ͠ɺϑϨʔϜϫʔΫ
 ࣗମͷػೳΛ͏·͘࢖ͬͯΞϓϦΛ࡞ͬͯΈ͍ͯͩ͘͞

Slide 21

Slide 21 text

෭ಡຊ • Rails3 ϨγϐϒοΫɺͱ͔ʁ • ͪΐͬͱݹ͍͚Ͳɺ಺༰͕ਖ਼֬Ͱ͜Ε͚ͩ·ͱ·ͬͯ
 ͍Δॻ੶͕ࠓͷͱ͜Ζଞʹ͋Μ·Γݟ౰ͨΒͳ͍͔΋

Slide 22

Slide 22 text

΋͔ͯ͜͠͠͏͍͏࿩͕ظ଴ ͞ΕͯΔʁ • C○○kpadͰͲ͏΍ͬͯRailsΞϓϦΛεέʔϧͤͯ͞Δ ͔ • Speaker Deckʹ্͕ͬͯΔΜͰɺউखʹݟ͍ͯͩ͘͞
 https://speakerdeck.com/a_matsuda/the-recipe-for-the- worlds-largest-rails-monolith

Slide 23

Slide 23 text

Ϩʔϧͷ֎Εํ • ͋Δఔ౓Ҏ্ʹϏδωε͕ෳࡶʹͳͬͨΓن໛͕େ͖͘ ͳͬͨΓͨ͠ΞϓϦ͸෦෼తʹϨʔϧ͔Β֎ΕΔܾஅΛ ͨ͠΄͏͕ྑ͍͜ͱ΋͋Δ͔΋

Slide 24

Slide 24 text

ݱ৔ʹΑͬͯ͋·Γʹ΋
 έʔεόΠέʔεͳͷͰ • ҰൠԽͰ͖ΔιϦϡʔγϣϯ͸ಛʹ͋Γ·ͤΜ

Slide 25

Slide 25 text

ͦ͏͍͏ͱ͖͸

Slide 26

Slide 26 text

ωοτ্ͷ҆қͳ৘ใʹ
 ࿭Θ͞Εͣ • ࣗ෼ͷ಄ͰΑ͘ߟ͑ͯ

Slide 27

Slide 27 text

໰୊ͷຊ࣭Λ͖ͪΜͱ
 ݟۃΊͯ • ద੾ͳٕज़Λ࢖ͬͯ • ϝϯςφϯεՄೳͳίʔυΛ

Slide 28

Slide 28 text

Good Luckʂ

Slide 29

Slide 29 text

ୈҰ෦׬

Slide 30

Slide 30 text

Questions?

Slide 31

Slide 31 text

ୈҰ෦(ཪ)

Slide 32

Slide 32 text

γϯɾίϛολʔ͔Βݟͨ
 Ruby on Rails • ͱ͍͏͜ͱͰɺRuby on Railsࣗମͷ࿩Λ͠·͢ɻ

Slide 33

Slide 33 text

Ruby on Rails • 1stϦϦʔε͕2005

Slide 34

Slide 34 text

๻͕΢Υον࢝͠Ί͔ͯΒ
 ͪΐ͏Ͳ10೥͙Β͍

Slide 35

Slide 35 text

ͱ͍͏Θ͚Ͱɺͪΐͬͱ࣌୅ Λ௥ͬͯੲ࿩Λ͠·͢Ͷ

Slide 36

Slide 36 text

๻ͷ໨͔ΒݟͨRailsͷ10೥

Slide 37

Slide 37 text

1.x

Slide 38

Slide 38 text

1.x • BasecampͷόοΫΤϯυΛΦʔϓϯιʔεԽͨ͠΋ͷ • Basecamp੎͕ॻ͍ͨίʔυ͕େ൒ • @dhh, @jeremy, @sstephenson, @jamis ͋ͨΓ

Slide 39

Slide 39 text

AR finder • HashͰͳΜͰ΋౉͢ελΠϧ • ౰࣌͸Hash rocket͕ॻ͖ʹ͔ͬͨ͘ͷͰ͋ͷ࣌୅ʹ໭Γ ͍ͨͱ͸ࢥΘͳ͍͚ͲɺࠓͷHashه๏ͳΒҊ֎ѱ͘ͳ͍ API͔΋ʁ

Slide 40

Slide 40 text

WebϑϨʔϜϫʔΫͱͯ͠ • controllerͷivarʹಥͬࠐΜͩ΋ͷ͕viewͰݟ͑Δ
 Ṗͷ(ศརͳʁ)API • form_tag :controller => 'users', :action => 'create' • authenticity_tokenͱ͔ଘࡏ͠ͳ͍຀Վతͳ
 Πϯλʔωοτͷ࣌୅

Slide 41

Slide 41 text

RJS • JavaScriptΛॻ͔ͣʹAjax! • ͍͢͝ςΫϊϩδʔͩͬͨ • Turbolinksͷݪ఺ͱ΋ݴ͑Δ • (Turbolinksͱҧͬͯ)࣮຿Ͱ΋ΊͪΌΊͪΌ࢖ͬͯͨ

Slide 42

Slide 42 text

ActiveSupport • ݴޠΛ֦ு͢Δͱ͔͍͏ؾͷ৮Εͨൃ૝ • Jakarta Commons͋ͨΓͱ͸࣍ݩ͕ҧ͍͗ͨ͢ • AMC • Symbol#to_proc • ఱ࠽ͨͪͷ࠽ೳᷓΕΔίʔυ͕ຯΘ͑ͨ

Slide 43

Slide 43 text

2.0

Slide 44

Slide 44 text

2.0 - RESTֵ໋ • verb == HTTP method • RESTΛ࣠ʹͨ͠ن໿Ͱ࠶ߏங͞Εͨ࠷ߴʹΧοί͍͍ ੈք؍ • ϞσϧΦϒδΣΫτͷURLදݱͱ͔·͞ʹఱ࠽ͷൃ૝ • form_for @user ͱ͔ॻ͚ΔΑ͏ʹͳͬͨ

Slide 45

Slide 45 text

2.1

Slide 46

Slide 46 text

2.1 • ͜ͷ΁Μ͔ΒύονΛ౤͛ͯؔΘΓ࢝ΊΔ • ஍ͷར(Asakusa)Λ׆͔ͨ͠Ruby 1.9ରԠͷύονΛ ৭ʑ

Slide 47

Slide 47 text

2.2

Slide 48

Slide 48 text

named scope • ޙʹArel΁ͱ࣮݁ • ͜ΜʹͪͷAR APIͷํ޲ੑΛܾఆ͚ͮͨస׵఺ • @nk • ৄ͘͠͸gihyo.jpͷهࣄΛࢀর
 http://gihyo.jp/dev/serial/01/ruby/0043

Slide 49

Slide 49 text

I18n • I18nϓϩδΣΫτʹࢀը • Ϧʔμʔ͸υΠπͷ @svenfuchs • ถࠃओಋͰ͸ͳ͍ଟࠃ੶܉ʹΑΔϓϩμΫτͩͬͨ͜ͱ͸ҙٛਂ͍ • ϓϩμΫτࣗମ͸ɺ·͊࢒೦ͳग़དྷ • I18n.t ͷμα͞͸΋͏ͪΐͬͱͲ͏ʹ͔ͳΒͳ͔ͬͨ΋ͷ͔ɺࠓͰ΋ߟ͑Δ • i18nͷίʔυϕʔεͷͻͲ͞ • ͜ΜͳʹͻͲ͘ͳΔͳΒ͜ͷ࣌ʹϓϩδΣΫτͷίϛοτݖ΋Β࣮ͬͯ૷ʹ ؔΘ͓͚ͬͯ͹ྑ͔ͬͨ…͔΋

Slide 50

Slide 50 text

I18n - ෭࢈෺ • i18n_generators • GHͰॳΊͯެ։ͨࣗ͠࡞Gemɺͩͬͨͱࢥ͏ • ੈքͰԿ൪໨͔ʹI18nʹৄ͔ͬͨ͠஌ݟΛ׆͔ͯ͠ɺ
 ݱ৔ͰΊͪΌΊͪΌ໾ཱͭϓϩμΫτΛ࡞ͬͨ • ࠷ۙ͸࿩୊ʹͳΔ͜ͱ΋গͳ͍͚Ͳɺ࣮͸Rails 5Ͱ΋ όονϦ࢖͑Δݱ໾ϓϥάΠϯ

Slide 51

Slide 51 text

Rackͱ͍͏HTTP૚ந৅Խ
 ϨΠϠʔͷొ৔ • PythonͷWSGIͷϙʔςΟϯάͳΜ͚ͩͲɺRubyͳΒ call() ΛAPIʹ͢Ε͹ProcͰ΋ΠέΔ͡ΌΜʂͱ͍͏ɺ
 ൃ૝ͱ࣮૷ͷΧοίྑ͞

Slide 52

Slide 52 text

Rackͷొ৔ʹ൐͏ɺWeb Ap αʔόʔ࣮૷ϒʔϜͷນ։͚ • WEBrick͕࣌୅ͷ໾ׂΛऴ͑Δ͜ͱʹ

Slide 53

Slide 53 text

Merb͍ͬͯ͏͍͢͝ΠέͯΔRails alternative͕ ೔ຊͰ΋࿩୊ʹͳͬͨͷ͸͜ͷ͜Ζ͙Β͍
 ͔ͩͬͨ • ໊ࣈ͕ಡΊͳ͍͜ͱͰ༗໊ͳࠓ͸๢͖ @ezmobius ͕
 ఏএ͢Δbetter Rails

Slide 54

Slide 54 text

͜ͷ͜Ζɺhpricotͱ͍͏_whyͷײಈతͳ
 XMLύʔαʔͷalternativeΛ࡞ͬͨAaron͞Μ
 ͱ͍͏੎͍ͷ͋Δएऀ͕ొ৔ • RubyKaigiʹͯεϐʔΧʔσϏϡʔ • (̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋ ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋ ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋)

Slide 55

Slide 55 text

2.3

Slide 56

Slide 56 text

ΦϥΠϦʔͷHead First Rails Λ؂༁

Slide 57

Slide 57 text

Head First Rails؂༁ͷ෭࢈෺ • ίʔυΛͨ͘͞ΜಡΜ͍ͩͭͰʹύονΛྔ࢈

Slide 58

Slide 58 text

3.0

Slide 59

Slide 59 text

Merb Merger • MerbνʔϜͷcarlhudaϖΞ(̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋
 ̋̋̋̋̋̋̋̋̋̋̋̋̋)͕ɺAPIޓ׵ੑΛอͬͨ··શͯΛϦϥΠτͱ͍͏ ཭ΕۀΛୡ੒ • ୅ঈͱͯ͠ɺಈ࡞͕͑Β͘ಷॏʹͳͬͨ • ͦͷޙRuby͕ண࣮ʹ଎͘ͳ͍͔ͬͯͬͨΒϓϥϚΠθϩ͙Β͍ʹ͸ͳ͔ͬͨ ͳ͊ • ৭ʑ͚͋ͬͨͲɺBundler͕ര஀ͨ͠ͷ͕࠷େͷ੒Ռ෺Ͱ͸ͳ͍͔ • ThorΛϕʔεʹͨ͠Ṗͷgenerator࣮૷ͳͲ̋̋̋̋̋΋࢈·ΕΔ
 (GSoCͰJose܅͍ͬͯ͏एऀ͕औΓ૊ΜͩσϏϡʔ࡞)

Slide 60

Slide 60 text

Merb Merger • Rails Engines, Applicationͱ͍͏֓೦ɺ৽͍͠ϓϥάΠ ϯγεςϜ • طଘͷϓϥΪϯͷޓ׵ੑΛ׬ෘͳ͖·Ͱʹഁյ • kaminari஀ੜͷ͖͔͚ͬ (͋Ε͔Β5೥ɺ΍ͬͱ1.0͕
 ग़ͤͦ͏ʂ)

Slide 61

Slide 61 text

͜ͷ͋ͨΓͷৄࡉ͸
 WEB+DB PRESSͷRails 3ಛूΛࢀর • Vol. 58 • WEB+DBࣥචͷ෭࢈෺ • ίʔυΛͨ͘͞ΜಡΜ͍ͩͭͰʹύονΛྔ࢈ • ͜ͷ͜ΖʹCampfire্ͷRailsίϛολʔνϟοτʹট଴ ͞Εͯɺίϛολʔͨͪͱձ࿩͢ΔΑ͏ʹͳΔ

Slide 62

Slide 62 text

At Matz-e • 3.0ϦϦʔε௚લʹୈ1ճRWC • JeremyͷײಈతʹΠΠ࿩

Slide 63

Slide 63 text

3.1

Slide 64

Slide 64 text

Sprocketsͱ͔͍͏ෛͷҨ࢈ • Basecamp͔Βొ৔ • ·ͨͯ͠΋sstephensonͱ͍͏͍͢͝ϋοΧʔ • Railsͷͤ͘ʹ؀ڥߏஙͱ͔σϓϩΠ͕΍ͨΒ೉͍͠΋ͷ ʹͳΔ • ޙͷల։ʹͭͳ͕Δ෍ੴ

Slide 65

Slide 65 text

Arel/ARͷվྑ • Aaron͕ArelʹखΛೖΕͯvisitorύλʔϯΛۦ࢖ͨ͠
 ೉͍͠ίʔυʹॻ͖׵͑ͯίʔυ͕୭ʹ΋ಡΊͳ͘ͳΔ

Slide 66

Slide 66 text

Rails 3ϨγϐϒοΫࣥච • ࣥචͷ͍ͭͰʹύονΛྔ࢈

Slide 67

Slide 67 text

RailsConf • ͜ͷ͜Ζ͙Β͍(͍΍ɺ΋͏ͪΐͬͱલ͔΋ʁ)ʹ RailsConfʹॳࢀՃͯ͠ɺίϛολʔͨͪʹϦΞϧͰձ͏ • Ҏ߱ຖ೥ࢀՃ͢ΔΑ͏ʹͳΔ

Slide 68

Slide 68 text

3.2

Slide 69

Slide 69 text

where.not • ࠷ॳͷύον͸ΊͬͪΌΤϨΨϯτͳ࣮૷ͩͬͨ(̋̋̋
 ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋) • ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋ ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋ ̋̋̋̋̋̋ • like΋ҰॹʹೖΕͨΜ͚ͩͲDHHʹݴ͍ෛ͔͞Εͯrevert

Slide 70

Slide 70 text

Aaron͕͞ΒʹARΛ͍͡Γ·ͬͯ͘
 ޓ׵ੑΛ೿खʹഁյ • ΍ͬͱग़ἧ͖ͬͯͨAR֦ுܥϓϥΪϯͨͪʹ࠶ͼக໋త ͳμϝʔδ

Slide 71

Slide 71 text

ϧʔςΟϯά஗͍໰୊ΛAaron͕Journeyͬ ͍ͯ͏࣍ੈ୅routerʹஔ͖׵͑ͯ՚ྷʹղܾ • visitorύλʔϯΛۦ࢖ͨ͠೉͍͠ίʔυʹͳͬͯɺී௨ ͷਓʹ͸ಡΊͳ͘ͳΔ • ͜Εʹؔͯ͠͸ɺҎલͷίʔυ͕͋·Γʹ΋μϝ͗ͨ͢ ͚ͩͰɺ͍ͬͯ͏͔ɺ͜ͷલͷੈ୅ͷϧʔλʔ̋̋̋̋
 ̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋̋

Slide 72

Slide 72 text

ϦϦʔεϚωδϝϯτ͕
 େࠞཚ • ηΩϡϦςΟΞοϓσʔτʹฆΕͯؔ܎ͳ͍ίϛοτ͕ ೖͬͯσάϨʔυΈ͍ͨͳࣄ͕݅සൃ • ͜ͷ͜Ζ๻ࣗ਎΋ϦϦʔεʹؔΘΔηΩϡϦςΟύον Λ͍͔ͭ͘ॻ͍ͨهԱ͕͋Δ

Slide 73

Slide 73 text

4.0

Slide 74

Slide 74 text

Ruby

Slide 75

Slide 75 text

Turbolinks • SprocketsͰͷ෬ઢ͕ͭͳ͕Δ • DHH΍ͬͺఱ࠽ • Ͱ΋jQueryͱͷ৯͍߹Θ͕ͤѱ͗ͯ͢ਏ͔ͬͨ

Slide 76

Slide 76 text

ए͖ϗʔϓjonleighton͕ϦϑΝΫλϦϯάͱশͯ͠
 ARΛແବʹ͍͡Γ·ͬͯ͘ഁյ • Ϋϥε໊ͱ͔ϑΝΠϧ໊·ͰΉ΍Έʹมߋ͢Δͷ͸
 ΄Μͱצห…

Slide 77

Slide 77 text

Object#try ͱ try! ͷ࢓༷มߋΛ
 ఏҊͨ͠ͷ͸͔֬͜ͷ΁Μ

Slide 78

Slide 78 text

WEB+DBͰRails 4ಛूࣥච • Vol. 74 • ࣥචͷ͍ͭͰʹ΍ͬͱίϛοτݖΛऔಘ

Slide 79

Slide 79 text

͜ͷ͜Ζ͙Β͍͔ΒϦϦʔεϚωδϝϯτͷ
 ϧʔϧΛ಺෦Ͱ࿩͠߹ͬͯɺ
 ͖ͪΜͱ΍ΔΑ͏ʹͳͬͨ • 2ੈ୅͙Β͍͸ηΩϡϦςΟύονΛड͚෇͚Δ • 1ੈ୅લ͙Β͍͸όάfixύον΋ड͚෇͚Δ • ͋͘·Ͱ΋ϒϥϯνϝϯςφͷؾ෼Λ༏ઌ

Slide 80

Slide 80 text

4.2

Slide 81

Slide 81 text

4.2ʙ • ৽Ωϟϥͷsgrif͕ARΛ͍͡Γ·ͬͯ͘ޓ׵ੑͱ
 ύϑΥʔϚϯεΛ༰ࣻͳ͘ഁյ

Slide 82

Slide 82 text

ARͷड೉ͷྺ࢙ • ΍Δؾͷ͋Δ৽ೖΓίϛολʔ͕͙͢ʹΦϞνϟʹ
 ͕ͨ͠ΔͷͰɺ͍ͭ΋͔Θ͍ͦ͏ͳ໨ʹૺ͏…

Slide 83

Slide 83 text

5.0

Slide 84

Slide 84 text

ruby 2.2+

Slide 85

Slide 85 text

WebϑϨʔϜϫʔΫతʹ͸
 ଴๬ͷ͋ͷػೳ

Slide 86

Slide 86 text

Symbol GC!!! • @nari3 ΧοίΠΠʂ

Slide 87

Slide 87 text

GCབྷΈͰ΋͏Ұͭ • ۭલͷ .freezeϒʔϜ • Ruby 2.3ͷfrozen_string_literalಋೖͷ͖͔͚ͬ

Slide 88

Slide 88 text

Rails 5͔Β2.3+ ʹͨ͠΄͏͕
 ྑ͍ͷͰ͸ʁͱ͍͏ٞ࿦΋͋ͬͨ • frozen_string_literal ࢖͍͍ͨ • ରԠRubyόʔδϣϯͷδϟϯϓ͕େ͖͗ͯ͢Ҡߦύε͕ ݫ͗͢͠ΔͷͰ٫Լ • 2.2Ͱಈ͔ͨ࣌͠ͱ2.3Ͱಈ͔ͨ࣌͠Ͱڍಈ͕มΘΔͷ͸ ϝϯς/σόοά͕େม͗͢ΔͷͰಋೖ͸·ͩ೉ͦ͠͏

Slide 89

Slide 89 text

ͦ͏͍͑͹5.0ͷͱ͖͸WEB+DBॻ͍ͯͳ͍͔Β
 ͋Μ·ΓίʔυಡΜͰͳ͍͠ίϛοτͯ͠ͳ͍
 ͔΋

Slide 90

Slide 90 text

͜ͷ͜Ζɺkamipo͞Μʹձ͏ͨΊʹԿ͔ ͷษڧձʹࢀՃͯ͠ɺkamipo͞ΜΛἤΔ

Slide 91

Slide 91 text

5.1 • JSपΓͰ͍Ζ͍Ζ

Slide 92

Slide 92 text

͜Μͳ;͏ʹɺਓΛ஌ͬͯίϛοτΛ௥ͬͯ
 ϓϩμΫτΛ΢Υονͯ͠Δͱݟ͔͕͑ͨมΘΔ • ΈΜͳ͕Φʔϓϯʹ׆ಈ͍ͯ͠ΔOSSͳΒͰ͸

Slide 93

Slide 93 text

OSS͸ͨͷ͍͠ʂ • ͱ͍͏͔ɺ͜͜Λָ͠·ͳ͍ͱɺOSSΛ࢖ͬͯΔ୉ޣຯ ͷେ൒ΛࣺͯͯΔΜ͡Όͳ͍͔

Slide 94

Slide 94 text

RailsʹԿ͔৽ػೳ͕ೖΔͷ͸ɺԿ͔௒ࣗવͷ
 େ͖ͳྗ͕ಇ͍ͯఱ͔Β߱ͬͯ͘Δ͔Βͱ͔Ͱ͸
 ͳͯ͘ɺͦͷػೳ͕ཉ࣮ͯ͘͠૷ͨ͠ਓ͕ډΔ͔Β

Slide 95

Slide 95 text

͜͏͍͏৘ใ͸ද޲͖͸ίϛοτϩάʹ͔͠
 ؚ·Εͳ͍৔߹͕ଟ͍ͷͰɺίʔυϦʔσΟϯά ͷجຊ͸ίϛοτΛಡΈ·͠ΐ͏

Slide 96

Slide 96 text

͋Δ࣌఺Ͱ۠੾ͬͨฏ໘తͳίʔυΛݟΔ
 ͷͰ͸ͳ͘ɺਓʑͷ૝͍͕ࠐΊΒΕͯ
 ๰͕Ε͖ͯͨྲྀΕΛಡΈऔΔ

Slide 97

Slide 97 text

๻͔Βݟͨίϛολʔͷ ਓʑ • ruby: ͍͢͝Ϡό͍಄ͷ͓͔͍͠ҞΕଟ͍ਓʑ • rails: ΈΜͳ༑ୡ

Slide 98

Slide 98 text

ͳ͔ͥʁ • ੈ୅ަ୅ͯ͠Δ͔Ͳ͏͔ͷҧ͍ • ೥ྸͱྺͷ྆ํͷҙຯͰ

Slide 99

Slide 99 text

OSS͸ਓͰ΋ͭ • ΞΫςΟϒͳίϛολʔ͸20ਓલޙ • Ruby΋ͦΜͳ΋Μ • RubyνʔϜͷن໛ײ͸ɺΞΫςΟϒͳίϛολʔ͸ຖ೥ਆࡏ݄ʹ8ׂ͕ͨౡࠜʹ
 ू݁͢ΔͷͰɺ͜͜ͷօ͞Μ͸͝ଘ஌ͷ͸ͣ • ͪΐ͏Ͳ͜ͷ෦԰ʹ͍Δਓ਺ͱಉ͘͡Β͍ • ίʔυʹ͸΋ͷ͘͢͝౰ਓͷݸੑ͕ग़ΔͷͰɺࣗ෼͕࢖͏ϓϩμΫτʹ͍ͭͯ͸
 ࡞ऀΛ஌Δ͜ͱ͕େࣄ • ಛʹɺOSS׆ಈ͕ͨ͠Δ͚Ͳίʔυ͕࢒೦ͳ஍ཕͳਓɺΈ͍ͨͳͷ͸ɺ͍Ζ͍Ζ
 ίʔυΛಡΜͰΔ͏ͪʹ࡯͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ͠ɺ໰୊ղܾͷେ͖ͳखॿ͚ ʹͳΓ·͢

Slide 100

Slide 100 text

Railsͷίϛολʔʹ
 ձ͍ʹߦ͜͏

Slide 101

Slide 101 text

RubyKaigi? • Railsͷίϛολʔ͸RubyKaigiʹ΋໓ଟʹདྷ·ͤΜ • աڈʹRubyKaigiʹདྷͨ͜ͱ͕͋ΔRailsίϛολʔ͸ɺ dhh, tenderlove, wycats, carllerch, josevalim, chancancode, schneems ͙Β͍ͳ͸ͣɻ

Slide 102

Slide 102 text

RubyKaigiʹݺΜͰ΋
 ͍͍Μ͚ͩͲ • ೔ຊͷΈΜͳ͕Railsίϛολʔͱ͔஌Βͳ͗ͯ͢ɺ
 ݺΜͰ΋ʮ୭ʁʯͬͯͳΔ͚ͩͰ͠ΐʁ • Ͱ΋ͦ͏Ͱ΋͠ͳ͍ͱΈΜͳͱ஌Γ߹͏ػձ΋ͳ͍
 ͱ͍͏ܲ&ཛঢ়ଶ • ͋ͱɺඇӳޠωΠςΟϒ࿩ऀ͕ଟ͍ͷͰɺਓલͰ࿩͢ͷ ͕ۤखͳਓ͕ҙ֎ͱଟ͍ͷ΋೉͍͠ͱ͜Ζ

Slide 103

Slide 103 text

Asakusa.rb? • ্هҎ֎ͰAsakusa.rbʹདྷͨ͜ͱ͕͋ΔRailsίϛολʔ ͸ senny ͙Β͍ɻ

Slide 104

Slide 104 text

Railsίϛολʔ͸෺ཧతʹ͸ ͳ͔ͳ͔ձ͑ͳ͍

Slide 105

Slide 105 text

ͳ͔ͥʁ

Slide 106

Slide 106 text

Rubyίϛολʔͱ
 Railsίϛολʔͷҧ͍ • Ruby: ͍͍ͩͨ೔ຊʹॅΜͰΔɻ͝ொ಺Ͱձ͑ͨΓ
 ͢Δ • Rails: ੈքதͷ͋ͪͪ͜ʹࢄΒ͹ͬͯΔ

Slide 107

Slide 107 text

Railsίϛολʔͷࠃ੶
 (͍͍ͩͨډॅ஍) • ถࠃ: 6 • ϒϥδϧ: 3 • ΢ϧάΞΠ: 1 • εϖΠϯ: 1 • ίϩϯϏΞ: 1 • ӳࠃ: 1 • εΠε: 1 • Χφμ: 1 • ΦʔετϥϦΞ: 1 • σϯϚʔΫ: 1 • ೔ຊ: 1

Slide 108

Slide 108 text

͜ͷਓʑʹ·ͱΊͯձ͑Δ
 །Ұͷػձ • RailsConf (ʹซઃ͞ΕΔίϛολʔύʔςΟʔ)

Slide 109

Slide 109 text

ͳͷͰɺRailsʹڵຯ͕͋ͬͯRailsͷ͜ͱΛ΋ͬͱ
 ਂ͘Θ͔Γ͍ͨਓ͸RailsConfʹߦͬͯΈΔͱ
 Α͍ͱࢥ͍·͢

Slide 110

Slide 110 text

RailsConf • ถࠃͰ೥ʹ1౓։࠵͞ΕΔɺੈք࠷େͷRubyؔ࿈
 Πϕϯτ (ࢀՃऀ͸2000ਓ͙Β͍)

Slide 111

Slide 111 text

RailsConfͷ͓͢͢ΊϙΠϯτ • Ruby Hero Awardͷදজ͕ࣜߦΘΕΔͷͰɺͦͷ೥ͷ(ੈ քͷ)Rubyք۾ͷ(͍ΖΜͳҙຯͰ)࿩୊ͷਓʹձ͑Δ • ΈΜͳ͕RailsΞϓϦͰ࢖ͬͯΔGemͷ࡞ऀͱ͔͕͚ͬ͜ ͏དྷΔ(RubyKaigiʹ͸͋Μ·Γདྷͳ͍Ͱ͢Ͷ)

Slide 112

Slide 112 text

RailsConfͷ͓͢͢Ί͡Όͳ͍ ϙΠϯτ • ࢀՃඅͷ҆͞ʹఆධͷ͋ΔRubyKaigiͱҧͬͯɺνέο τ୅͚ͩͰ750υϧͱ͔͔͔Δ • RubyKaigiͱҧͬͯɺτʔΫ͕ͲΕ΋ϏοΫϦ͢Δ͙Β ̋̋̋̋̋̋ • RubyKaigiͱҧͬͯɺถࠃͷͲ͔͜ͷ౎ࢢͰ։࠵͞ΕΔ ͷͰɺجຊతʹϝγ͕Ϛζ͍

Slide 113

Slide 113 text

Railsίϛολʔ͔Βݟͨ
 Railsͷݟ͑ํ • 18ਓத16ਓ͸ձͬͯ࿩ͨ͜͠ͱ͕͋Δ • Railsͷ͋ΔػೳΛݟͨͱ͖ʹɺ͍ͭ୭͕࣮૷ͨ͠ίʔυ ͔͕͍͍ͩͨࢥ͍ग़ͤΔ • ओཁͳGemΛ࡞ͬͯΔਓ΋͍͍ͩͨ஌Γ߹͍ • ͍͟ͱ͍͏࣌ʹͳΜͱ͔Ͱ͖Δ

Slide 114

Slide 114 text

༑ୡ͕ؔΘͬͯΔ΋ͷͬͯड͚औΔ
 ͱ͖ͷؾ͕࣋ͪ͘͢͝มΘΔͰ͠ΐʁ • ༑ୡ͕ॻ͍ͨຊ • ༑ୡ͕ԋ૗ͯ͠ΔCD • ༑ୡ͕ग़ԋͯ͠Δ෣୆ • ༑ୡ͕ௐཧͯ͠ΔϨετϥϯ • ༑ୡ͕ৢͨ͠ञ

Slide 115

Slide 115 text

ࣗ෼͕ͪΐͬͱʮίϯτϦ Ϗϡʔτʯͯͨ͠Γ͢Δͱ • ࣗ෼΋ϨϏϡʔͨ͠༑ୡͷຊΈ͍ͨͳײ͡

Slide 116

Slide 116 text

ࣗ෼͕ओମతʹؔΘͬͯΔͱ • ࣗ෼͕ओԋͯ͠Δөըͱ͔ࣗ෼͕࡞ۂͨ͠ۂͷԋ૗ձ
 Έ͍ͨͳࢥ͍ೖΕ

Slide 117

Slide 117 text

ࣗ෼͕࡞ͬͨgem͕࢖ΘΕͯΔ ΞϓϦ • ࣗ෼ͷࢠڙ͕૸ͬͯΔӡಈձͷ͔͚ͬ͜ΛݟकΔؾ࣋ͪ

Slide 118

Slide 118 text

શ͘஌Βͳ͍ਓͷϓϩμΫτ Λ࢖͏ͷ͸ෆ҆ʹͳΔ • ࣗ෼͕Α͘Θ͔͍ͬͯͳ͍΋ͷΛ͓٬͞Μʹग़ͨ͘͠
 ͳ͍ • ͍͟ͱ͍͏࣌ʹίϯτϩʔϧͰ͖ͳ͍

Slide 119

Slide 119 text

༑ୡͷGemͷόάΛ
 ౿Μͩͱ͖ • ʮ͓ʔ͍ɺ͜Μͳόάݟ͚ͭͨͧʔɻ͜ΕͰି͠1ͭ ͳʔʯ • ʮ͓ͬͱɺαϯΩϡʔɻࠓ౓ձͬͨͱ͖Ϗʔϧ1ഋᇋΔ Θʔʯ • ͬͯͳ۩߹ʹͳΔ

Slide 120

Slide 120 text

͍͍ͩͨͦΜͳײ͡ • OSS͕΋ͬͱࣗ෼͝ͱʹͳΔ • ࢖͏ͷָ͕͘͠ͳΔ • (ͦͯ͠ͲΜͲΜপʹϋϚΔ) • (Ͱ΋ແঈͷ׆ಈͳͷͰ͓ۚʹ͸ͳΒͳ͍)

Slide 121

Slide 121 text

ʮRailsίϛολʔ͔Βݟͨʯ ਖ਼͍͠Ϩʔϧͷ৐Γํ • ਓͷߟ͑ํΛ஌Δ • ਓΛ஌Δ • ਓͱ࿩͢

Slide 122

Slide 122 text

ίʔυͷಡΈํ • ͋Δ࣌ؒ࣠Ͱ੾ͬͨίʔυΑΓ΋࣌ܥྻʹԊͬͯ
 ίϛοτϩάΛಡΉ • ίʔυΛॻ͍ͨਓ෺΁ͷཧղΛத৺ʹɺྲྀΕΛ೺Ѳ͢Δ • ྺ࢙ͷษڧͷָ͠Έํʹ͍͔ۙ΋

Slide 123

Slide 123 text

ίϛοτ͸
 ίϛϡχέʔγϣϯͷखஈ • ͦͷͱ͖ࣗ෼ͷ໨ͷલʹ͋ͬͨ໰୊ʹରͯ͠ԿΛߟ͑ͯ ͲͷΑ͏ʹରԠ͔ͨ͠Λޙੈͷಡऀʹ఻͑Δ

Slide 124

Slide 124 text

༏ΕͨOSS։ൃऀʹͳΔʹ͸ • ಛผͳεΩϧ͸ཁΒͳ͍ • ࡢࠓ͸͓࢓ࣄͷ։ൃݱ৔ͱOSS։ൃͰ࢖ΘΕͯΔಓ۩͸΄ͱΜͲಉ͡΋ͷʹͳͬͯ ͖͍ͯΔ • ΋ͦ͠͏Ͱͳ͍ͳΒ࢓ࣄͷ΍ΓํΛม͑Δ͔ɺ৬৔ͦͷ΋ͷΛҠΔ͔ͨ͠΄͏ ͕ྑ͍ • ໰୊Λ୳ͯͦ͠ΕΛղ͍ͯίϛοτʹͨͨ͠Ίͯɺ୭͔ʹՁ஋ΛೝΊͤ͞Ε͹ྑ͍ ͚ͩ • ύονΛ౤͚͛ͭΔ૬ख͕৬৔ͷಉ྅Ͱ͸ͳͯ͘ɺੈքͷͲ͔͜ʹډΔRailsνʔϜ ͷਓ΍Gemͷ࡞ऀʹͳΔ͚ͩ • ೔ʑͷ1ͭ1ͭͷίϛοτΛେࣄʹ

Slide 125

Slide 125 text

ͦͷ͋ͨΓͷɺOSSͷίʔυ Λॻ͘࿩͸·ͨ໌೔

Slide 126

Slide 126 text

ࠓ೔͸ɺRailsʹؔΘΔਓʑΛ΢Υον͠ͳ͕Β RailsͷίʔυΛಡΉָ͠͞ΛޠΓʹ͖·ͨ͠ • ๻ͷײ͍ͯ͡Δָ͕͠͞গ͠Ͱ΋఻Θ͍ͬͯΕ͹޾͍
 Ͱ͢

Slide 127

Slide 127 text

end