Slide 1

Slide 1 text

Vue.js + Vuex νʔϜ։ൃ࣮ફ ͷࣄྫ 2018/12/08 Repro גࣜձࣾ Hiroaki Ninomiya Frontend Conference Fukuoka 2018

Slide 2

Slide 2 text

ΞΠεϒϨʔΫ

Slide 3

Slide 3 text

ΞΠεϒϨʔΫ • օ༷(ͱνʔϜ)ʹ͍ͭͯڭ͍͑ͯͩ͘͞ • ϑϩϯτΤϯυΤϯδχΞͰ͋Δ • αʔϏεΛ։࢝ͨ͠ͷ͕3೥Ҏ্લ • ϑϩϯτΤϯυͱαʔόαΠυͷ։ൃ͕໌֬ʹ෼͔Ε͍ͯ Δ

Slide 4

Slide 4 text

ΞΠεϒϨʔΫ • օ༷(ͱνʔϜ)ʹ͍ͭͯڭ͍͑ͯͩ͘͞ • ϑϩϯτΤϯυΤϯδχΞͰ͋Δ • αʔϏεΛ։࢝ͨ͠ͷ͕3೥Ҏ্લ • ϑϩϯτΤϯυͱαʔόαΠυͷ։ൃ͕໌֬ʹ෼͔Ε͍ͯ Δ #

Slide 5

Slide 5 text

ࣗݾ঺հ • Hiroaki Ninomia a.k.a treby • Reproגࣜձࣾ αʔόαΠυΤϯδχΞ • Shinjuku.rb Organizer • RubyͷΤϯδχΞίϛϡχςΟ • ෱Ԭग़਎(༗໌ߴઐˠ۝भେֶେֶӃ)

Slide 6

Slide 6 text

ΞδΣϯμ • νʔϜͱ࢖༻ٕज़ͷ঺հ • νʔϜͱٕज़ͷมભ • ૸Γͳ͕Βٕज़త݈߁ੑΛอͭͨΊʹ

Slide 7

Slide 7 text

ΞδΣϯμ • ͓࿩͢Δ͜ͱ • ࣌୅ͷมԽʹͲ͏νʔϜ͕ରԠ͖͔ͯͨ͠ • ٕज़ͷ֓ཁ • νʔϜ։ൃ࣮ફ • ͓࿩͠ͳ͍͜ͱ • ٕज़ͷ࢔ࡉͷ෦෼

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Reproגࣜձࣾ • 2014೥ઃཱͷελʔτΞοϓاۀ • https://repro.io/ • BtoB SaaS • ࣗࣾϓϩμΫτRepro SDKΛ։ൃ • ϞόΠϧΞϓϦͷ෼ੳɾϚʔέςΟϯά༻్ • ಛఆηάϝϯτʹ؆୯ʹϓογϡ௨஌͕ଧͯΔ • ݱࡏɺઈࢍٸ੒௕த

Slide 10

Slide 10 text

νʔϜͷεέʔϧ

Slide 11

Slide 11 text

νʔϜͷεέʔϧ

Slide 12

Slide 12 text

࠷ۙͷϓϨεϦϦʔε https://prtimes.jp/main/html/rd/p/000000072.000013569.html

Slide 13

Slide 13 text

γεςϜͷن໛ײ

Slide 14

Slide 14 text

਺ઍສDAU ਺ԯ௨/dayͷPush௨஌

Slide 15

Slide 15 text

ΞʔΩςΫνϟ

Slide 16

Slide 16 text

ΞʔΩςΫνϟ

Slide 17

Slide 17 text

ར༻ٕज़ • Πϯϑϥɿ AWS • ݴޠ • Ruby(Rails) • Python(AI෼໺) • Golang(ϓογϡ௨஌ج൫) • (ڧ͍ͯݴ͏ͳΒ͹)Rubyͷձࣾ • ʰύʔϑΣΫτRubyʱͷڞஶऀ͕CTO

Slide 18

Slide 18 text

։ൃνʔϜ • શ෦Ͱ6νʔϜ΄Ͳ • SDK։ൃ(iOS / Android) • όοΫΤϯυ • ΞϓϦέʔγϣϯ։ൃ • ΠϯϑϥνʔϜ • AIνʔϜ • CRE(ςΫχΧϧαϙʔτ) • QA

Slide 19

Slide 19 text

։ൃνʔϜ • શ෦Ͱ6νʔϜ΄Ͳ • SDK։ൃ(iOS / Android) • όοΫΤϯυ • ΞϓϦέʔγϣϯ։ൃ ɿϑϩϯτΤϯυ΋؅׋ • ΠϯϑϥνʔϜ • AIνʔϜ • CRE(ςΫχΧϧαϙʔτ) • QA

Slide 20

Slide 20 text

ΞϓϦέʔγϣϯ։ൃνʔϜ • ݱঢ়8ਓఔͰ։ൃશମͰҰ൪ׂ߹͸ଟ͍ • ϓϩμΫτͷ৽ػೳ։ൃ͕໾ׂ • ඞཁͳόοΫΤϯυɺΞϓϦέʔγϣϯɺϑϩϯτΤϯυ ·Ͱแׅͯ͠৮Δ

Slide 21

Slide 21 text

ར༻ٕज़(ΞϓϦέʔγϣϯ) • ϑϩϯτΤϯυ • Vue.js / Vuex • ES6ه๏Ͱ౷Ұ • (jQuery) • όοΫΤϯυ • Ruby on Rails

Slide 22

Slide 22 text

Vuejs • Progressive Framework • Declarative Rendering • Two-way Binding • An incrementally adoptable Ecosystem • ࠷খݶʹ࢝ΊΒΕΔ͜ͱ͔ΒಋೖΛܾఆ

Slide 23

Slide 23 text

Vuex • Vue.jsίϛϡχςΟ͕ެࣜʹαϙʔτ͢ΔVue.js֦ுͷҰͭ • FluxΞʔΩςΫνϟΛ࣮ݱ͢Δ࣮૷ͷҰͭ • ReproͰ͸ɺίϯϙʔωϯτؒΛෳࡶʹߦ͖དྷ͢Δσʔλͷ ड͚౉͠ʹར༻

Slide 24

Slide 24 text

Ruby on Rails (Rails) • ελʔτΞοϓͰਓؾͷϑϨʔϜϫʔΫͷҰͭ • ઃఆΑΓن໿(Convention over Configuration) • ʮRails͕ॻ͚Δʯ͜ͱ͕୲อͰ͖Ε͹େମͲ͜Ͱ΋׆༂Ͱ͖Δ • ࢓૊ΈΛ஌Βͳ͍ঢ়ଶͰಡΉͱԿ͕ى͍ͬͯ͜Δ͔෼͔Βͳ͍ ͱ͍͏ܽ఺΋ • όονॲཧ΍SDKͱͷ΍ΓऔΓ༻APIͳͲଟ͘ͷ෦෼Ͱ࢖ΘΕͯ ͍Δ

Slide 25

Slide 25 text

͜͜·Ͱͷ͓͞Β͍ • ϓϩμΫτͱ։ൃνʔϜ • ΞϓϦέʔγϣϯ։ൃ • ϑϩϯτΤϯυٕज़ • αʔόαΠυٕज़

Slide 26

Slide 26 text

͜͜·Ͱͷ͓͞Β͍ • ϓϩμΫτͱ։ൃνʔϜ • ΞϓϦέʔγϣϯ։ൃ • ϑϩϯτΤϯυٕज़ • αʔόαΠυٕज़ • => ͋͘·ͰΠϚͷ࿩

Slide 27

Slide 27 text

ສ෺ྲྀస

Slide 28

Slide 28 text

෺ࣄ͸มԽ͍ͯ͘͠ • ϑϩϯτΤϯυτϨϯυͷมԽ • αʔόαΠυτϨϯυͷมԽ • νʔϜͷมԽ

Slide 29

Slide 29 text

༷ʑͳมԽ

Slide 30

Slide 30 text

ϑϩϯτΤϯυτϨϯυͷมԽ

Slide 31

Slide 31 text

ϑϩϯτΤϯυτϨϯυͷมԽ

Slide 32

Slide 32 text

Vue.jsόʔδϣϯͷมભ • v0.10.4(2014/4) • v1.0.0(2015/10) • v2.0.0(2016/10)

Slide 33

Slide 33 text

ϑϩϯτΤϯυͷมԽ • ϑϨʔϜϫʔΫઓࠃ࣌୅͔Βͷ҆ఆظ • ReproͰ͸2014೥͔ΒVue.jsΛ࠾༻ • τϨϯυͷํ͕௥͍͍͖ͭͯͨ • 0ܥ͔Β1ܥɺ1ܥ͔Β2ܥ͸͘͢͝υϥεςΟοΫʹม Θͬͨɺɺɺ • ੈؒҰൠͷVue.jsͷॻ͖ํͱ͸ҧ͏ͱ͜Ζ΋͋Δ

Slide 34

Slide 34 text

αʔόαΠυτϨϯυͷมԽ(Railsͷ όʔδϣϯ) • v4.0.0(2013/06): RubyͷΤίγεςϜʹJavaScript • v4.2.0(2014/12) • v5.0.0(2016/07): Action Cable / Rails API • v5.1.0(2017/04): Webpack / jQuery͕default͔Βফ͑Δ • v5.2.0(2018/04) • v6.0.0(༧ఆ): CoffeeScript͕ES6ʹஔ͖׵ΘΔ • https://github.com/rails/rails/pull/33079

Slide 35

Slide 35 text

Rails4ܥ(3,4೥લ) • Α͘ग़Δొ৔ਓ෺ • Sprockets(Asset Pipeline) • jQuery • CoffeeScript • ʰRailsͷΤίγεςϜ্ͷJavaScriptʱ • rails-assets

Slide 36

Slide 36 text

Rails Assets • Rails Assets is the frictionless proxy between Bundler and Bower. • ϑϩϯτΤϯυͷϥΠϒϥϦ͸ xxx-rails ͷΑ͏ͳ໊લͰఏ ڙ͞Ε͍ͯΔ΋ͷ͕͕͋ͬͨ • JavaScriptଆ(ຊՈ)΁ͷ௥ै͕஗͍ͱ͍͏χʔζʹͨ͑ͨ͜ αʔϏε • rails-assets-xxx ͷ໊લͰGemԽ͞ΕΔ

Slide 37

Slide 37 text

Rails4ܥͰͷGemfileྫ source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.0.2' : : gem 'rails-assets-vue' # Use CoffeeScript for .js.coffee assets and views gem 'coffee-rails', '~> 4.0.0' # Use jquery as the JavaScript library gem 'jquery-rails'

Slide 38

Slide 38 text

Rails4ܥͰͷϑϩϯτΤϯυ $ -> $btn = $("[data-toggle='backToTop']") $btn.hide() $(window).scroll -> if window.scrollY > 100 $btn.fadeIn() else $btn.fadeOut() $btn.on 'click', (e) -> $('html,body').animate({ scrollTop: 0 }, 500)

Slide 39

Slide 39 text

Rails5ܥ(௚ۙ1,2೥) • Α͘ग़Δొ৔ਓ෺ • Webpack / Browserify • React / Vue.js • FluxܥϥΠϒϥϦ • ESNextɺ΋͘͠͸AltJS • ʰRailsͱJavaScriptͷΤίγεςϜ͸ಠཱʱ

Slide 40

Slide 40 text

Rails 5.0ͷϦϦʔεϊʔτ https://edgeguides.rubyonrails.org/50release_notes.html

Slide 41

Slide 41 text

Rails 5.0ͷϦϦʔεϊʔτ • Action Cable • Rails API • Active Record Attributes API • Test Runner • Exclusive use of rails CLI over Rake • Sprockets 3 • Turbolinks 5 • Ruby 2.2.2+ required

Slide 42

Slide 42 text

Rails 5.1ͷϦϦʔεϊʔτ https://edgeguides.rubyonrails.org/51release_notes.html

Slide 43

Slide 43 text

Rails 5.1ͷϦϦʔεϊʔτ • Yarn Support • Optional Webpack support • jQuery no longer a default dependency • System tests • Encrypted secrets • Parameterized mailers • Direct & resolved routes • Unification of formfor and formtag into form_with

Slide 44

Slide 44 text

(͞ΒʹRails6Ͱ͸) https://github.com/rails/rails/pull/33079

Slide 45

Slide 45 text

ݱࡏਐߦܥ !

Slide 46

Slide 46 text

Rails5ܥͰͷGemfile gem "rails", "5.2.0" : : gem "sass", "3.4.16" # JS translation generator gem "i18n-js", require: false group :assets do : : gem "sassc-rails" gem "browserify-rails" : end

Slide 47

Slide 47 text

Rails5ܥͰͷϑϩϯτΤϯυ import cookie from 'utils/cookie'; import Deactivater from 'mixins/deactivater'; export default { mixins: [Deactivater], data() { return { expanded: true, appListShown: false, }; }, methods: { toggleAppList() { this.appListShown = !this.appListShown; }, closeAppList() { this.appListShown = false; }, : } : };

Slide 48

Slide 48 text

αʔόαΠυτϨϯυͷมԽ • Rails4ܥ • ʰRails্ͷJSʱ • Rails5ܥ • ʰRails͔Βಠཱͨ͠JSʱ • ϑϩϯτͷ੒ख़ͱͱ΋ʹRailsଆ΋มԽ

Slide 49

Slide 49 text

։ൃνʔϜ(࠶ܝ) • શ෦Ͱ6νʔϜ΄Ͳ • SDK։ൃ(iOS / Android) • όοΫΤϯυ • ΞϓϦέʔγϣϯ։ൃ ɿϑϩϯτΤϯυ΋؅׋ • ΠϯϑϥνʔϜ • AIνʔϜ • CRE(ςΫχΧϧαϙʔτ) • QA

Slide 50

Slide 50 text

ΞϓϦέʔγϣϯ։ൃνʔϜ(࠶ܝ) • ݱঢ়8ਓఔͰ։ൃશମͰҰ൪ׂ߹͸ଟ͍ • ग़͕ࣗSDK / ServerͷServer (SDKҎ֎શ෦) • ඞཁͱ͞ΕΔٕज़஌ࣝ͸෯޿͍ • ϓϩμΫτͷ৽ػೳ։ൃ͕໾ׂ • ඞཁͳόοΫΤϯυɺΞϓϦέʔγϣϯɺϑϩϯτΤϯυ ·Ͱแׅͯ͠৮Δ

Slide 51

Slide 51 text

։ൃνʔϜͷมભ

Slide 52

Slide 52 text

։ൃνʔϜͷมભ • ૊৫ͷ੒௕΍ࣄۀʹ߹Θͤͯॊೈʹ࠶ฤ • ࣍ͷQͰ΋࠶ฤ༧ఆ • ϑϩϯτΤϯυઐ೚ͷνʔϜ͕ࠓ͸ͳ͍ • ϑϩϯτΤϯυ͸ΞϓϦέʔγϣϯ։ൃνʔϜͷ༗ࢤͰ໘ ౗Λݟ͍ͯΔ

Slide 53

Slide 53 text

༷ʑͳมԽ

Slide 54

Slide 54 text

༷ʑͳมԽ

Slide 55

Slide 55 text

༷ʑͳมԽ

Slide 56

Slide 56 text

͜͜·Ͱͷ·ͱΊ • ෺ࣄ͸มԽ͍ͯ͘͠ • ϑϩϯτΤϯυ • αʔόαΠυ • ։ൃνʔϜ • มԽͷֻ͚߹ΘͤͰෳࡶ౓্͕͕Δ

Slide 57

Slide 57 text

զʑࣗ਎΋มԽ͍ͯ͘͠தͰ զʑΛऔΓר͘มԽʹ Ͳ͏ରԠ͖͔ͯͨ͠

Slide 58

Slide 58 text

ReproͰͷࣄྫͷ঺հ • ͖Ε͍ʹ෼͚ΒΕΔΘ͚Ͱ͸ͳ͍͕4ͭʹ෼ղ • ᴈ໌ظ • ٕज़໛ࡧظ • ٕज़౷Ұظ • νʔϜ֦େظ

Slide 59

Slide 59 text

ReproͰͷࣄྫͷ঺հ

Slide 60

Slide 60 text

ᴈ໌ظ(ʙ2015೥) • νʔϜͷঢ়گ • গਓ਺Ͱ͢΂ͯͷϨΠϠʔΛݟͳ͚Ε͹ͳΒͳ͍ • Railsͷঢ়گ • CoffeeScript + jQuery / ϑϩϯτΤϯυ͸RubyͷΤίγεςϜ্ • ϑϩϯτΤϯυͷঢ়گ • backbone.js / Vue.js 0.10 • jQueryΑΓϦονͰෳࡶͳڍಈΛ࣮ݱ͍ͨ͠χʔζ͔ΒVue.jsΛબ୒

Slide 61

Slide 61 text

ᴈ໌ظ(ʙ2015೥)

Slide 62

Slide 62 text

ᴈ໌ظ(ʙ2015೥) • औͬͨબ୒ • εϐʔυ໋͕ • ࣄۀ͕ੜ͖࢒Βͳ͚Ε͹ݩ΋ࢠ΋ͳ͍ • ͱʹ͔͘౰࣌ͷ࠷ળ(ͱࢥΘΕΔ)ํ๏Ͱ࣮ݱ͍ͯ͘͠ • ౰࣌ͱͯ͠͸ےͷѱ͘ͳ͍બ୒

Slide 63

Slide 63 text

ReproͰͷࣄྫͷ঺հ

Slide 64

Slide 64 text

ٕज़໛ࡧظ(ʙ2017೥) • νʔϜͷঢ়گ • ϓϩμΫτਖ਼ࣜϦϦʔε / εϐʔυͱ඼࣭ͷཱ྆ • Railsͷঢ়گ • Rails 5ϦϦʔε / ϑϩϯτΤϯυ෼཭ͷྲྀΕ • ϑϩϯτΤϯυͷঢ়گ • Vue.js 1 & Vue.js 2, Vuex • ES6Λ࢝Ίͱͨ͠ඪ४Խͷ೾

Slide 65

Slide 65 text

ٕज़໛ࡧظ(ʙ2017೥) • ىͬͨ͜͜ͱ • ϑϩϯτΤϯυΛ৮Δਓ͕໨·͙Δ͘͠มΘͬͨ • ES6ͳͲ৽͍͠΋ͷΛऔΓೖΕ͍ͯ͘ػӡɻ݁Ռɺ • ES6ͷτϥϯεύΠϧʹBrowserifyͱSprockets྆ํ࢖ͬ ͍ͯͨΓ • CoffeeScriptͱES6͕ڞଘ͢Δੈքʹ

Slide 66

Slide 66 text

ٕज़໛ࡧظ(ʙ2017೥)

Slide 67

Slide 67 text

ٕज़໛ࡧظ(ʙ2017೥)

Slide 68

Slide 68 text

ٕज़໛ࡧظ(ʙ2017೥) ࠷ۙॻ͍ͨࣾ಺υΩϡϝϯτ

Slide 69

Slide 69 text

ٕज़໛ࡧظ(ʙ2017೥)

Slide 70

Slide 70 text

ٕज़໛ࡧظ(ʙ2017೥)

Slide 71

Slide 71 text

ٕज़໛ࡧظ(ʙ2017೥) • ىͬͨ͜͜ͱ • ੈͷதͷٕज़ʹ߹Θͤͯίʔυ͕͕Μ͕ΜมΘͬͨ • ਓ΋͕Μ͕ΜೖΕସΘͬͨ • औͬͨબ୒ • CoffeeScript΍jQuery͸ݹ͍ΑͶɺͱ͍͏߹ҙܗ੒ • ͦ΋ͦ΋߹ҙܗ੒Λߦ͏ͱ͍͏͜ͱ

Slide 72

Slide 72 text

ReproͰͷࣄྫͷ঺հ

Slide 73

Slide 73 text

ٕज़౷Ұظ(ʙ2018೥) • νʔϜͷঢ়گ • ։ൃऀ਺͕20ਓۙ͘ʹͳΓDaily͕શһͰߦ͑ͳ͘ͳΔ • αϒνʔϜʹ෼͚ΔΑ͏ʹɻ • Railsͷঢ়گ • Rails5.1ϦϦʔε • ϑϩϯτΤϯυͷঢ়گ • ΤίγεςϜ͕҆ఆͯ͘͠Δ / npm v5ͷϦϦʔε • ·ͨɺ਺೥લʹ͋ͬͨΧΦεײ͕ͳ͘ͳͬͯ͘Δ

Slide 74

Slide 74 text

ٕज़౷Ұظ(ʙ2018೥) • ىͬͨ͜͜ͱ • ϑϩϯτΤϯυΛ৮Δਓһ਺ࣗମ͸ͦΜͳʹมΘΒͳ͔ͬͨ • ݹ͍ίʔυͱ৽͍͠ίʔυ͕ࠞࡏ͠ɺ౷Ұ͞Ε͍ͯͳ͍ঢ়گ • CoffeeScriptͱES6͕ڞଘ͢Δੈքʹ • Vue componentϕʔεͷϖʔδ΋͋Ε͹ɺjQueryϕʔεͷϖʔ δ΋͋Δঢ়ଶ • Vue componentͷେن໛Խ

Slide 75

Slide 75 text

Rails 5.1ͷϦϦʔεϊʔτ(࠶ܝ) https://edgeguides.rubyonrails.org/51release_notes.html

Slide 76

Slide 76 text

ٕज़౷Ұظ(ʙ2018೥) • औͬͨબ୒ • ϦϑΝΫλϦϯά • CoffeeScriptΛ׬શʹES6ʹஔ͖׵͑ͨ • ϖʔδ΁ͷJavaScriptͷΞλονΛVue componentϕʔ εʹ౷Ұͨ͠

Slide 77

Slide 77 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 78

Slide 78 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 79

Slide 79 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 80

Slide 80 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 81

Slide 81 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 82

Slide 82 text

ٕज़౷Ұظ(ʙ2018೥)

Slide 83

Slide 83 text

ٕज़౷Ұظ(ʙ2018೥) • औͬͨબ୒ • ϦϑΝΫλϦϯά • CoffeeScriptΛ׬શʹES6ʹஔ͖׵͑ͨ • ϖʔδ΁ͷJavaScriptͷΞλονΛVue componentϕʔεʹ ౷Ұͨ͠ • ͦͷޙʹଓ͘ػೳ։ൃΛཧ༝ʹϦϑΝΫλϦϯάͷ༧ࢉΛऔͬ ͨ

Slide 84

Slide 84 text

ReproͰͷࣄྫͷ঺հ

Slide 85

Slide 85 text

νʔϜ֦େظ(2018೥ʙ) • νʔϜͷঢ়گ • Web SDKͷ։ൃͷඞཁ • ϑϩϯτΤϯυΛ৮Δਓ͕ؒ૿͑Δ • Railsͷঢ়گ • ͞ΒʹϑϩϯτΤϯυΛ෼཭ͨ͠ྲྀΕʹ • Webpack༏੎ͬΆ͍ • ϑϩϯτΤϯυͷঢ়گ • ϑϩϯτΤϯυͱ͍͑͹ Vue.js / React / Angular2 Έ͍ͨͳঢ়گʹͳΔ

Slide 86

Slide 86 text

νʔϜͷεέʔϧ

Slide 87

Slide 87 text

Repro Webͷొ৔ https://jp.techcrunch.com/2018/10/04/reproweb/

Slide 88

Slide 88 text

νʔϜ֦େظ(2018೥ʙ) • ىͬͨ͜͜ͱ • γεςϜελοΫͷෳࡶԽʹΑΔΦϯϘʔσΟϯάͷ೉͠ ͞ • ϝϯόʔ͕૿͑ͨ͜ͱʹReproಛ༗ͷ҉໧஌ͷ࿐ݟ • ॻ͖ํ͕Θ͔Βͳ͍ࢫΛ৽ϝϯόʔ͔Βࢦఠ͞ΕΔ • Repro Webͱ͍͏৽ͨͳϑϩϯτٕज़ͷࣄۀ্ͷधཁ

Slide 89

Slide 89 text

ؔΘΓ࢝Ίͨ࣌ظͷࠩʹΑͬͯɺ৘ใ͕֨ࠩੜ·ΕΔ

Slide 90

Slide 90 text

จࣈʹͯɺ҉໧஌ΛΞ΢τϓοτ

Slide 91

Slide 91 text

౎౓ޱ಄ͰͷίϛϡχέʔγϣϯΛͳͨ͘͢ΊʹυΩϡϝϯτԽ

Slide 92

Slide 92 text

ڞ௨ೝࣝͷৢ੒ʹ࢖͏υΩϡϝϯτ(͖ͨͨ୆)

Slide 93

Slide 93 text

ڞ௨ೝࣝͷৢ੒ʹ࢖͏υΩϡϝϯτ(͖ͨͨ୆)

Slide 94

Slide 94 text

νʔϜ֦େظ(2018೥ʙ) • औͬͨબ୒ • υΩϡϝϯςʔγϣϯ • ࢝Ί͸ݸผʹ఻͍͕͑ͯͨɺ৽ೖࣾһ͕ೖΔͨͼʹઆ໌͢Δ͜ͱ ʹͳ͖͍ͬͯͯͨͷͰจষͱͯ͠·ͱΊΔ͜ͱʹͨ͠ • ڞ௨ೝࣝͷৢ੒ • υΩϡϝϯτ΍Pull Requestϕʔε • ద౓ʹن཯Λ࡞ͬͯɺద౓ʹଥڠ͢Δ / ࣗసंখ԰ͷٞ࿦Λආ͚Δ

Slide 95

Slide 95 text

ReproͰͷࣄྫͷ঺հ

Slide 96

Slide 96 text

ReproͰͷஈ֊ͷมԽ

Slide 97

Slide 97 text

(͜Ε͔Β(2019೥ʙ)) • νʔϜ͸͞Βʹεέʔϧ • ϑϩϯτΤϯυઐ໳ͷνʔϜ • ͦͷͨΊʹ͋Δఔ౓αʔόαΠυʗϑϩϯτΛ෼཭͢Δඞཁ ͕ग़͖ͯͦ͏

Slide 98

Slide 98 text

αʔό / ϑϩϯτͷࠞࡏ

Slide 99

Slide 99 text

αʔό / ϑϩϯτͷࠞࡏ

Slide 100

Slide 100 text

͜͜·Ͱͷ·ͱΊ • νʔϜͱίʔυͷ࠷௿ݶͷ݈߁ੑΛอͭͨΊʹߦͬͨ͜ͱΛ঺հ • ࠓ͔ΒͷνʔϜ։ൃͰ΋࢖͑ͦ͏ͳ಺༰ • ࣄۀͷϑΣʔζʹԠͨ͡બ୒Λߦ͏͜ͱɻελʔτΞοϓͷಛʹॳظஈ֊ Ͱ͸εϐʔυ͕େࣄɻ • ͱ͸͍͑ɺίʔυͷվળܥ΋ϦϑΝΫλϦϯά޻਺ͱͯ͠༧ࢉΛऔΔ͜ͱ • ڞ௨ೝࣝͷৢ੒Ͱ͸νʔϜΛר͖ࠐΜͩର࿩Λߦ͏͜ͱ • ͦͷࡍɺద౓ʹن཯Λ࡞Γద౓ʹଥڠ͢Δ͜ͱ

Slide 101

Slide 101 text

νʔϜ։ൃ͸ͳͥ೉͍͠ͷ͔

Slide 102

Slide 102 text

ߟྀ͢΂͖ม਺͕ଟ͍͔Β

Slide 103

Slide 103 text

ͦͯ͠৬ۀΤϯδχΞͰ ͋ΔҎ্͸ࣄۀߩݙ͕ٻ ΊΒΕΔ

Slide 104

Slide 104 text

ͦͷதͰίʔυͷ݈߁ੑ Λอͪଓ͚Δʹ͸

Slide 105

Slide 105 text

ϦϑΝΫλϦϯάͳͲɹ టष͍౒ྗ͕ඞཁͳ͜ͱ ͕ଟ͍ (ؾΛൈ͘ͱ͙͢ʹϨΨγʔԽ͍ͯ͘͠)

Slide 106

Slide 106 text

ϨΨγʔͩͱ͜΅͢લʹ Pull Requestग़͢Α͏ͳ ελΠϧͰ͋Γ͍ͨ

Slide 107

Slide 107 text

·ͱΊ • ࣄۀͱΤϯδχΞϦϯάͷཱ྆ • ຊ࣭తʹటष͍΋ͷ • ৗʹ๚ΕΔมԽʹରԠͰ͖Δঢ়ଶ͕େࣄ • Ұྫͱͯ͠ɺReproͷνʔϜͷྫΛ঺հ

Slide 108

Slide 108 text

·ͱΊ • టष͞ΛѪ͠ɺటष͞ʹ؁Μ͡ͳ͍ͨΊʹ • νʔϜϝϯόʔͱର࿩͢Δɾڠௐ͢Δ • ద౓ʹن཯Λ࡞ͬͯɺద౓ʹଥڠ͢Δ • ্ه͕ࣗવʹߦ͑ͳ͍ͷͰ͋Ε͹ɺνʔϜΛม͑Δͱ͍͏બ ୒ࢶ΋

Slide 109

Slide 109 text

·ͱΊ • టष͞ΛѪ͠ɺటष͞ʹ؁Μ͡ͳ͍ͨΊʹ • νʔϜϝϯόʔͱର࿩͢Δɾڠௐ͢Δ • ద౓ʹن཯Λ࡞ͬͯɺద౓ʹଥڠ͢Δ • ্ه͕ࣗવʹߦ͑ͳ͍ͷͰ͋Ε͹ɺνʔϜΛม͑Δͱ͍͏બ ୒ࢶ΋ • => We're Hiring!!

Slide 110

Slide 110 text

ྑ͍νʔϜ։ൃΛʂ