Slide 1

Slide 1 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ιϑτ΢ΣΞ։ൃ ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ 2018-01-21 ॾڮګհ @moro

Slide 2

Slide 2 text

‣ (ࣸਅ) ղফͰ͖ͨෆ҆

Slide 3

Slide 3 text

Kyosuke MOROHASHI moro moro

Slide 4

Slide 4 text

Kyosuke MOROHASHI https://speakerdeck.com/moro/

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

http://techlife.cookpad.com/entry/2017/04/06/172601

Slide 8

Slide 8 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτ΢ΣΞ։ൃ

Slide 9

Slide 9 text

‣ ར༻ऀʹՁ஋Λಧ͚ΔͨΊʹɺԿΒ͔ͷιϑτ΢ΣΞΛഔ հͱͯ͠։ൃ͢Δ׆ಈશൠΛ ‣ 1ΤϯδχΞͱ͍͏֯౓͔ΒோΊͨදݱͰ͢ɻ ‣ ͳͷͰɺαʔϏε։ൃɺࣄۀ։ൃɺetc… Ͱ΋͍͍͔΋ ‣ ͬ͘͠ΓདྷΔ֯౓ʹಡΈସ͓͑ͯฉ͖͍ͩ͘͞ ιϑτ΢ΣΞ։ൃ

Slide 10

Slide 10 text

‣ ར༻ऀʹՁ஋Λಧ͚ΔഔհͨΔʹ͸ɺϓϩάϥϜΛॻͩ͘ ͚Ͱ͸଍Γͳ͍ɻҎԼͷΑ͏ͳશମ͕ඞཁ: ‣ αΠτػೳ΍αʔϏεࢪࡦΛྑ͘͢Δ؍఺ͱ͔ ‣ ར༻ऀͷࠔΓ͝ͱʹدΓఴ͏؍఺ͱ͔ ‣ ։ൃͦΕࣗମΛޮ཰తʹ͢Δ؍఺ͱ͔ ‣ ࣄۀ/ࣄۀମͱͯ͠ܧଓͰ͖ΔΑ͏ʹ͢Δ؍఺ͱ͔ ιϑτ΢ΣΞ։ൃʺϓϩάϥϜΛॻ͘͜ͱ

Slide 11

Slide 11 text

‣ ͦ͏͍͏ΈΜͳ͕େࣄͳΘ͚Ͱ͢ɻ ‣ ͦͷ͏͑Ͱɺ1ΤϯδχΞ/ϓϩάϥϚʔͱͯ͠ͷ؍఺͔Β
 Ͳ͏͋Γ͍ͨͱࢥ͏͔ɺͱ͍͏࿩Λ͍ͭ΋͍ͯ͠·͢ɺ
 ͱ͍͏࿩Λ͠·͢ɻ ʮશମʯͱͯ͠ͷιϑτ΢ΣΞ։ൃ

Slide 12

Slide 12 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτ΢ΣΞ։ൃ

Slide 13

Slide 13 text

‣ ֤ϝϯόʔͷ಺తಈػ͚ͮΛҡ࣋ɾ࠶ੜ੒͍ͨ͠ɻ ‣ ͦΕΛଅ͢νʔϜͷ͋ΓΑ͏Λ໨ࢦ͢ɻ ͍͖͍͖ͱͨ͠

Slide 14

Slide 14 text

“ And there's business value in fun - after all motivation is a major factor in programmer productivity. 
 ͦΕ͔Βɺʮָ͠͞ʯʹ΋ϏδωεՁ஋͕͋Γ·͢ŠŠ݁ہɺϞνϕʔγϣϯ ͕ͦ͜ϓϩάϥϚͷੜ࢈ੑΛࠨӈ͢ΔͷͰ͢ɻ https://martinfowler.com/bliki/DynamicTyping.html 
 ( http://bliki-ja.github.io/DynamicTyping/ )

Slide 15

Slide 15 text

“ ΘΕΘΕ͸ػցͰ͸ͳ͍ͷͰɺ΍Γ͍ͨͱࢥ͏ͱ͖ ʹɺԿ͔Λୡ੒Ͱ͖ΔΜͰ͢ɻԿ͔Λୡ੒͢Δʹ͸ɺ ಥ͖ಈ͔͢಺ͳΔྗ͕ඞཁͰ͢ɻͦΕ͸Ϟνϕʔγϣ ϯʹΑͬͯݱΕΔΜͰ͢Ͷɻ ུ ϞνϕʔγϣϯΛ সͬͯ͸͍͚ͳ͍ɻ 「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え
 
 http://el.jibun.atmarkit.co.jp/rails/2012/10/ruby-matz-7080.html

Slide 16

Slide 16 text

http://modernagile.org/

Slide 17

Slide 17 text

‣ ೉͍͜͠ͱΛ͏·͘΍Δʹ͸ɺؔ܎ऀશһͷ
 ओମతͳࢀՃ͕ඞཁͰ͋Δɻ ‣ ʮओମੑʯ͸ଞਓ͕஫ೖͨ͠ΓͰ͖ͳ͍ɻ ‣ ͦΕͧΕͷʮྑ͍࢓ࣄ͕͍ͨ͠ؾ࣋ͪʯΛ
 ৴ͯ͡ɺݟ͚ͭͯɺ૬ޓʹྭ·͋͠͏ɻ ͍͖͍͖ͱͨ͠

Slide 18

Slide 18 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτ΢ΣΞ։ൃ

Slide 19

Slide 19 text

‣ ΋Γ΋Γ࣮૷͢ΔएखΤϯδχΞ @iguchi1124 ‣ υϝΠϯΤΩεύʔτ / Done ͷఆٛ / MTGϑΝγϦςʔ τ / νʔϜ֎ͱͷ૭ޱ ͳͲΛҰखʹ୲͏σΟϨΫλʔ ‣ ( ͳͷ͚ͩͲɺReactॳಋೖͱ͔΋ͯ͘͠Ε͓ͯΓ͍͢͝ ) ‣ γχΞͳྲྀ͠ͷRubyist (ि2ϦϞʔτ) ‣ ͱɺࢲ @moro ձһࣄۀ෦Ϣʔβʔج൫νʔϜ

Slide 20

Slide 20 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτ΢ΣΞ։ൃ

Slide 21

Slide 21 text

ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΢ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ

Slide 22

Slide 22 text

ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΢ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ

Slide 23

Slide 23 text

http://techlife.cookpad.com/entry/2017/04/06/172601

Slide 24

Slide 24 text

http://techlife.cookpad.com/entry/2017/04/06/172601

Slide 25

Slide 25 text

‣ πʔϧ΍ϑϨʔϜϫʔΫΛͨͩద༻͢Δ͚ͩͰ͸
 ͏·͍͔͘ͳ͍ɻ ‣ ʮRailsͭΒ͍ʯ໰୊ ‣ എܠʹͳ͍ͬͯͦ͏ͳίϯηϓτΛɺࣗ෼ͨͪͰ
 ͪΌΜͱࢼͯ͠ΈΑ͏ɻ ͜ͷ10೥ͷֶͼ:

Slide 26

Slide 26 text

αʔϏε૚ͱͯ͠ͷ Form Object ΛΑ͘ߟ͑ͯΈΔ

Slide 27

Slide 27 text

Value ObjectΛൃݟ͢Δ

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

‣ ;Γ͔͑Γ ‣ ݟੵΓͱܭըͮ͘Γ ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:

Slide 33

Slide 33 text

‣ ;Γ͔͑Γ ‣ ͜Ε·ͰʹԿΛ͔ͨ͠ ‣ ݟੵΓͱܭըͮ͘Γ ‣ ͜Ε͔ΒԿΛ͢Δ͔ ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:

Slide 34

Slide 34 text

Slide 35

Slide 35 text

‣ ຖि n ϙΠϯτਐΜͰ͍Δͷ͸Θ͔ͬͨɻ͕ɺ ʮ͍ͭͰ͖Δʯ͔͕ݟ͑ͮΒ͔ͬͨɻ ‣ ࣮ࡍʹॻ͍ͯΈͨΒɺײ͕֮දݱͰ͖ͯͨɻ

Slide 36

Slide 36 text

Slide 37

Slide 37 text

‣ ࣾ಺ͷϓϥΫςΟεΛ༌ೖͨ͠ɻ ‣ υϝΠϯΤΩεύʔτʹ͞Θͬͯ΋Β͏ɻ ‣ େখ༷ʑͷؾ͍ͮͨ͜ͱΛͲΜͲΜ௚͢ɻ

Slide 38

Slide 38 text

Χϯόϯʹ5SZΛషΔ

Slide 39

Slide 39 text

‣ TryΛ͍ͭ΋໨ʹ͢ΔΑ͏ʹɺషͬͨɻ ‣ ͜Ε͸ະମݧͩͬͨΑ͏ͳɻ

Slide 40

Slide 40 text

‣ ʮ͜Ε·ͰʯʹֶΜͰ ‣ RailsҰൠ΍ΞϓϦέʔγϣϯίʔυͷۤ࿑ ‣ ػೳͷ࢖ΘΕํ ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ ‣ ͪΐͬͱͣͭʮΑ͍ʯઃܭΛ͢Δ ‣ ඞཁͳΒٕज़తෛ࠴ΛआΓೖΕΔ ֶशͱϑΟʔυόοΫ

Slide 41

Slide 41 text

‣ ʮ͜Ε·ͰʯʹֶΜͰ ‣ ͜Ε·ͰͷνʔϜͷਐΊํɻ ‣ ࡞Ζ͏ͱͨ͠ػೳͰ΄Μͱ͏ʹඞཁͩͬͨ΋ͷɻ ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ ‣ Try ‣ ͜Ε·ͰΛ౿·͑ͨݟੵΓͱܭըͮ͘Γɻ ֶशͱϑΟʔυόοΫ

Slide 42

Slide 42 text

ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΢ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ

Slide 43

Slide 43 text

ʮ஌͍ͬͯͨʯ͜ͱ

Slide 44

Slide 44 text

“ ͕ͩɺߴΈʹ౸ୡ͢Δ͜ͱ͕໨తͰ͋Ε͹ɺιϑτ ΢ΣΞ։ൃ͸ʮϓϩάϥϚʔͱͦͷଞେ੎ʯͰ੒ཱ ͢Δ΋ͷͰ͸ͳ͍ɻͦΕ͕ɺաڈ೥ؒͰࢲֶ͕Μ ͩ͜ͱͩɻ — エクストリーム・プログラミング 「第25章 結論」

Slide 45

Slide 45 text

Slide 46

Slide 46 text

‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ ‣ Ϣʔβʔ͞Μʹ޲͚ͨࢪࡦΛاը͢ΔଞͷνʔϜ ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕੹຿ͷνʔϜ ‣ ଞͷج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ ‣ … ʮϢʔβʔج൫ʯͷؔ܎ऀ

Slide 47

Slide 47 text

‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕੹຿ͷνʔϜ ‣ ج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ ‣ Ϣʔβʔج൫νʔϜ ‣ … ʮϢʔβʔ͞Μʹ޲͚ͨࢪࡦΛاը͢ΔଞͷνʔϜʯͷؔ܎ऀ

Slide 48

Slide 48 text

‣ ͋ΔࢪࡦͷϦʔνΛ૿΍ͨ͢Ίɺͦ͜ΛϝΠϯͰקΊ͍ͯΔνʔϜͱڞಉͯ͠ɺ Ϣʔβʔσʔλͷѻ͍ΛΨϥοͱม͑ͨɻ
 Ϣʔβʔج൫νʔϜͰ͸αʔόଆAPIΛ࣮૷ͨ͠Γɺ݁Ռͱͯ͠Ϣʔβʔମݧ ͕Ͳ͏͋Δ΂͖͔Λઃܭͨ͠Γɺ࠷ऴ֬ೝͨ͠Γͨ͠ɻiOSΞϓϦಘҙͳਓ͕ গͳ͔ͬͨͨΊɺࢪࡦνʔϜͷΤϯδχΞ͕ࢪࡦͦΕࣗମͷΈͰͳ͘ɺΞϓϦ ্Ͱͷج൫෦෼΋Ұॹʹ࡞ͬͯ͘Εͨɻٕज़ج൫ܥνʔϜ(αʔόଆɺΞϓϦ ଆɺQA)΋ઃܭɾ࣮૷ΛҰॹʹਐΊͯ͘Εͨɻ
 ݁Ռͱ͍͍ͯ͠ײ͡ʹಈ͘΋ͷΛఏڙͰ͖ͨɻ͕ɺେ͖ͳϦϦʔεͩͬͨͷͰ ଟগͷෆ۩߹΋ग़ͯ͠·͍ͬͯΔɻαϙʔτܥνʔϜͱڧௐͯ͠ਵ࣌ରԠதɻ ‣ ͱ͍͏ͷΛɺ஥ྑ͘ɺϢʔβʔ͞ΜͷํΛ޲͖ͳ͕Β΍ΕͨͷͰͨ͠ɻ ઌ೔ͷࣄྫ: (͘Θ͘͠͸WebͰ)

Slide 49

Slide 49 text

http://techlife.cookpad.com/entry/2017/04/06/172601

Slide 50

Slide 50 text

“ ʰॊೈͰ͍͍ײ͡ͷϢʔβʔج൫Λ໨ࢦ͢ʱͱ͍͏ͷ͕͜ͷ ࠶ߏஙϓϩδΣΫτͷ໨తͰ͢ɻ http://techlife.cookpad.com/entry/2017/04/06/172601

Slide 51

Slide 51 text

ʮ෼͔͖ͬͯͨʯ͜ͱ

Slide 52

Slide 52 text

“ 91ͷՁ஋͸ɺϏδωεͷੈքͰ࣮ફ͢΂͖΋ͷͩɻշదʹ฻ ΒͤΔੜ׆ΛૹΔ͚ͩͰͳ͘ɺؔ܎ऀશһ͕͓ޓ͍ʹϦεϖ Ϋτͨ͠ਓؒؔ܎ʹΑͬͯɺ৽͍͠ಇ͖ํΛ։ൃ͢ΔͷͰ͋ Δɻ׆ൃʹੵۃతʹɺੈքʹߩݙͰ͖Διϑτ΢ΣΞΛ࡞Γ ग़͢ͷͰ͋Δɻ૑଄తʹ͍͖͍͖ͱಇ͘ͷͰ͋Δɻ — エクストリーム・プログラミング 「第25章 結論」

Slide 53

Slide 53 text

ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΢ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ

Slide 54

Slide 54 text

νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ιϑτ΢ΣΞ։ൃ ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ 2018-01-21 ॾڮګհ @moro