Slide 1

Slide 1 text

ϓϩάϥϚ͕ίʔυΛ ॻ͖ͳ͕Βߟ͑Δ͜ͱ גࣜձࣾιχοΫΨʔσϯ ҏ౻३Ұ / @jnchito 2019.8.29 ۜ࠲Rails #12 ʙ෼Ͱ࡞Δʁ8FCΫϩʔϥʔ։ൃʙ

Slide 2

Slide 2 text

ಥવͰ͕͢ɺΈͳ͞Μɻ ؾʹͳΓ·ͤΜ͔ʁ

Slide 3

Slide 3 text

͜Μͳ͜ͱɺؾʹͳΓ·ͤΜ͔ʁ • ʮ˓˓͞Μ͕ॻ͍ͨίʔυʯ͸GitHubͰݟΔ͜ͱ͕Ͱ͖Δ • Ͱ΋ɺʮ˓˓͞Μ͕ίʔυΛॻ͘աఔʯΛ໨ʹ͢Δ͜ͱ͸໓ଟʹͳ͍ • ͲΜͳεϐʔυͰίʔυΛॻ͍ͯΔΜͩΖ͏ʁ • ͲΜͳπʔϧ΍ςΫχοΫΛ࢖ͬͯίʔυΛॻ͍ͯΔΜͩΖ͏ʁ • ͦ΋ͦ΋ɺ಄ͷதͰ͸ͲΜͳ͜ͱΛߟ͑ͯΔΜͩΖ͏ʁ • ͡Ό͋ɺ˓˓͞Μͷྡͷ੮Ͱݟͤͯ΋Β͏ʁ͍΍͍΍ϜϦʂ

Slide 4

Slide 4 text

˓˓͞Μ͸͖ͬͱɺ͜͏ʢͱ͍͏զʑͷউखͳໝ૝ʣ ↑ߴ଎ͰλΠϐϯά͢ΔೣͷΞχϝgif ↑ߴ଎ͰλΠϐϯά͞Ε͍ͯ͘Ξχϝgif

Slide 5

Slide 5 text

ͦ͜Ͱɾɾɾ

Slide 6

Slide 6 text

ࠓ೔͸ʮ๻͕ίʔυΛॻ͘աఔʯΛ Ұྫͱ͓ͯ͠ݟͤ͠·͢ʂʂ ʢͪΐͬͱஏ͔͍͚ͣ͠Ͳɾɾɾʣ

Slide 7

Slide 7 text

ͯ͞ɺ࿩͸มΘΓ·͕͢

Slide 8

Slide 8 text

ࠓ೥ͷ݄ʹ͋ͬͨग़དྷࣄ • Ո଒ͰσΟζχʔϥϯυ΁ߦ͘͜ͱʹͳͬͨͷͰϗςϧΛ༧໿ͨ͠ • ࣄ৘͕͋ͬͯ೔ఔΛมߋ͢Δඞཁ͕ग़͖ͯͨʢ॓ധ೔ͷ2िؒલʣ • ͕ɺ΋͏ϗςϧͷۭ͖෦԰͕ͳ͍ʂʢ೔ؼΓϓϥϯ͔͠ͳ͍ʣ • ຖ೔Կ౓΋ۭ͖෦԰ΛνΣοΫΛ͢Δͷ͸େม • ͦ͏ͩɺ͜Μͳ໘౗ͳ͜ͱ͸ίϯϐϡʔλʹ΍ΒͤΑ͏ • ͱ͍͏͜ͱͰɺࣗ࡞ͷΫϩʔϥʔϓϩάϥϜΛ։ൃ

Slide 9

Slide 9 text

ݕࡧͯ͠΋ग़ͯ͘Δͷ͸ ೔ؼΓϓϥϯ͚ͩ ࢀߟɿ݄ͷঢ়گ͸͜ΜͳΠϝʔδ

Slide 10

Slide 10 text

ͲΜͳϓϩάϥϜͩͬͨͷʁ • ఆظతʹϗςϧͷ༧໿ϖʔδʹΞΫηε͢Δʢݕࡧ৚݅͸ݻఆʣ • ৽͍͠ϓϥϯ͕ग़͖ͯͨΒϝʔϧͰ௨஌͢Δ ࢖༻͢ΔϑϨʔϜϫʔΫɺ࣮ߦ؀ڥͳͲ - Ruby on Railsʢ - Heroku + Heroku Schedulerʢ10෼͓͖ʹϓϩάϥϜΛىಈʣ - Mechanize gemͰεΫϨΠϐϯά • खͬऔΓૣ͞Λ༏ઌͯ͠ɺ࢖͍׳Εٕͨज़ʢRailsͱHerokuʣΛબ୒

Slide 11

Slide 11 text

ࠓ͔Β͓࿩͢͠Δ͜ͱ • 6݄ʹ࡞ͬͨΫϩʔϥʔϓϩάϥϜΛ΋͏Ұ౓θϩ͔Β࡞Γ·͢ • ͲΜͳ͜ͱΛߟ͑ͳ͕ΒίʔυΛॻ͍ͨͷ͔આ໌͠ͳ͕Β࡞Γ·͢ • 6݄ʹॻ͍ͨίʔυ͸΄ͱΜͲهԱʹ࢒͍ͬͯ·ͤΜ • ϋϚͬͨΓϛεͬͨΓ͢Δͱ͜Ζ΋શ෦͓ݟͤ͠·͢ • 30෼ͰϥΠϒίʔσΟϯάʂʂ͔ͨͬͨ͠ΜͰ͕͢ɺಈըʹ͠·ͨ͠

Slide 12

Slide 12 text

ಈըΛݟͳ͕Βߟ͑ͯ΄͍͜͠ͱ • ʮࣗ෼ͱ͸͕͜͜ҧ͏ʯͱࢥͬͨ఺͸ʁ - ͦͷൃ૝͸ͳ͔ͬͨʂࣗ෼΋΍ͬͯΈΑ͏ - ͍΍ɺͦ͜͸͜͏͍͏΍Γํͷํ͕͍͍ͷͰ͸ʁ • ٯʹʮࣗ෼ͱಉͩ͡ʯͱࢥͬͨ఺͸ʁ • Έͳ͞Μ͕ײͨ͜͡ͱΛΞϯέʔτ or ࠙਌ձͰڭ͍͑ͯͩ͘͞ - ڵຯਂ͍ճ౴͸ޙ೔ϒϩάͰ࢖Θͤͯ΋Β͏͔΋͠Ε·ͤΜ

Slide 13

Slide 13 text

ಈըʹؔ͢Δલ৘ใ • ಈըͷ௕͞͸໿30෼ɻഒ଎࠶ੜͳͷͰɺগ͠ૣޱͰ͢ • ࡱӨ೔͸8݄4೔Ͱɺ6݄౰࣌ͱ͸ҎԼͷ఺Ͱঢ়گ͕ҟͳΓ·͢ - 6݄ʹ๻͕ر๬͢Δ೔͸ɺ೔ؼΓϓϥϯ͔͠ͳ͔ͬͨ - 8݄ʹͲͷ೔΋ۭ͖෦԰͕͋ͬͨʢ׬શʹ͸࠶ݱͰ͖ͳ͔ͬͨʣ • ༧໿ϖʔδ͸GETύϥϝʔλͰݕࡧ৚݅ΛࢦఆͰ͖Δ͜ͱΛ֬ೝࡁΈ • ʮ৽ϓϥϯ͔Ͳ͏͔ʯΛԿͰ൑அ͢Δ͔ʁΛߟ͑Δͱ͜Ζ͔Β։࢝ - ઃܭͷ్தͳͷͰɺίʔυ͸·ͩ1ߦ΋ॻ͍͍ͯ·ͤΜ

Slide 14

Slide 14 text

໔੹ࣄ߲ • ΫϩʔϦϯά΍εΫϨΠϐϯά͸ܐࣄࣄ݅ʹൃల͢Δ͜ͱ͕͋Γ·͢ • ͜ͷߨԋΛࢀߟʹͨ͠ϓϩάϥϜͰଛ֐͕ൃੜͯ͠΋ɺචऀ͸Ұ੾
 ੹೚Λෛ͍·ͤΜ ࢀߟʮԬ࡚ࢢཱதԝਤॻؗࣄ݅ - Wikipediaʯ Ԭ࡚ࢢཱதԝਤॻؗࣄ݅ʢ͓͔͖͟͠ΓͭͪΎ͏͓͏ͱ͠ΐ͔Μ͚͡Μʣ͸ɺ2010೥3݄ࠒʹԬ࡚ ࢢཱਤॻؗͷଂॻݕࡧγεςϜʹΞΫηεো֐͕ൃੜ͠ɺར༻ऀͷҰਓ͕ୁั͞Εͨࣄ݅Ͱ͋Δɻ ར༻ऀʹ߈ܸͷҙਤ͸ͳ͘ɺ·ͨɺࠜຊతͳݪҼ͕ਤॻؗଆͷγεςϜͷෆ۩߹ʹ͋ͬͨ͜ͱ͔Β ࿦ٞΛݺΜͩɻୁั͞Εͨਓ෺͕औௐ΂ͷޙɺLibrahackͱ͍͏αΠτΛ্ཱͪ͛ͯղઆΛͨ͜͠ͱ ͔ΒɺLibrahackࣄ݅ͱ΋ݺ͹ΕΔɻ https://ja.wikipedia.org/wiki/Ԭ࡚ࢢཱதԝਤॻؗࣄ݅

Slide 15

Slide 15 text

ͦΕͰ͸ಈըΛͲ͏ͧʂ

Slide 16

Slide 16 text

▶ಈըΛ࠶ੜதʜ ಈը͸#005)ͰൢചதͰ͢ˠIUUQTKOJUPCPPUIQNJUFNT ແྉͷ͓ࢼ͠൛΋͋Γ·͢ˠIUUQTZPVUVCFJ5J8F2.#L

Slide 17

Slide 17 text

ಈը͸͜͜·ͰͰ͢

Slide 18

Slide 18 text

͜ͷ͋ͱɺӡ༻Λ࢝ΊΔ·Ͱʹ΍ͬͨ͜ͱ • ࠓճ࡞ͬͨϝιουΛىಈ͢ΔrakeλεΫΛ࡞੒ • HerokuσϓϩΠʹ޲͚ͨίʔυͷमਖ਼ ˍ σϓϩΠ࣮ߦ • Heroku SchedulerΛઃఆ͠ɺ10෼͓͖ʹrakeλεΫΛىಈ • ॳճͷىಈͰʮ೔ؼΓϓϥϯʯ͕ϝʔϧ௨஌͞ΕΔ͜ͱΛ֬ೝ

Slide 19

Slide 19 text

ίʔυ͸ͪ͜Β https://github.com/JunichiIto/disney-hotel-crawler

Slide 20

Slide 20 text

Ͱɺ݁ہ༧໿Ͱ͖ͨͷʁ

Slide 21

Slide 21 text

͸͍ɺͰ͖·ͨ͠ʂʂ

Slide 22

Slide 22 text

࣮ࡍʹӡ༻ͯ͠ಘΒΕֶͨͼ • Ωϟϯηϧྉ͕ൃੜ͢Δ೔͕ۙͮ͘ͱɺٸʹۭ͖෦԰͕૿͑࢝ΊΔ • ͭ·ΓɺΈΜͳΩϟϯηϧྉΛڪΕͯΩϟϯηϧ࢝͠ΊΔ • ϗςϧଆ΋ಉ͡ϓϥϯΛͪΐͬͱͣͭ஋Լ͛ͨ͠Γ͢Δʢζϧ͍ʣ • ࠷ऴతʹ͸ʮ͜ΕͳΒຬ଍ʯͱ͍͏ϓϥϯͰ༧໿Ͱ͖·ͨ͠✌

Slide 23

Slide 23 text

ͱ͜ΖͰ

Slide 24

Slide 24 text

͓ؾ͖͍͚ͮͨͩͨͩΖ͏͔ʁ

Slide 25

Slide 25 text

ಈըΛ։࢝ͨ͠ͱ͖ͷ࣌ࠁ ಈը͕ऴྃͨ͠ͱ͖ͷ࣌ࠁ ɿʙɿ ʹ໿࣌ؒ൒ʂʂ

Slide 26

Slide 26 text

ಈըΛࡱͬͯΈͯΘ͔ͬͨ͜ͱ ಈըΛࡱΔલͷ๻ • Ұ౓࡞ͬͨϓϩάϥϜ΍͠ɺ30෼͔40෼͙Β͍Ͱ࡞ΕΔ΍Ζ • ౰೔ʹϥΠϒίʔσΟϯάͰ΋શવ͑͑Μ΍͚Ͳͳʔʢ༨༟ʣ ಈըΛࡱͬͨޙͷ๻ • ͜Εɺ౰೔ϥΠϒίʔσΟϯάͯͨ͠ΒϠό͔ͬͨΘɾɾɾ ಋ͖ग़͞Εͨਅཧ ϓϩάϥϚͷݟੵ΋Γ͸ɺ͍ͭ΋͋ͯʹͳΒͳ͍

Slide 27

Slide 27 text

·ͱΊ

Slide 28

Slide 28 text

൚༻తʹ࢖͑ͦ͏ͳಈը಺ͷϙΠϯτ • ؆୯ͳίʔυͰಈ࡞֬ೝ͔ͯ͠Βɺ໨తͷίʔυΛॻ͘ • ςετίʔυΛ࢖ͬͯ܁Γฦ͠ಈ࡞֬ೝ͢Δ • ެࣜͷ৘ใΛ༏ઌతʹࢀর͢ΔʢQiita౳ʹཔΔͷ͸ͦͷ࣍ʣ • σόοΨΛ࢖ͬͯσόοά͢ΔʢRubyMineΛ࢖͏ͱ͘͢͝ϥΫʣ • ίϛοτͷલʹdiffΛνΣοΫ͢Δʢࣗ෼ͰίʔυϨϏϡʔ͢Δʣ

Slide 29

Slide 29 text

ؾʹͳΓ·ͤΜ͔ʁʢ๯಄ͷ࣭໰ʣ • ʮ˓˓͞Μ͕ॻ͍ͨίʔυʯ͸GitHubͰݟΔ͜ͱ͕Ͱ͖Δ • Ͱ΋ɺʮ˓˓͞Μ͕ίʔυΛॻ͘աఔʯΛ໨ʹ͢Δ͜ͱ͸໓ଟʹͳ͍ • ͲΜͳεϐʔυͰίʔυΛॻ͍ͯΔΜͩΖ͏ʁ • ͲΜͳπʔϧ΍ςΫχοΫΛ࢖ͬͯίʔυΛॻ͍ͯΔΜͩΖ͏ʁ • ͦ΋ͦ΋ɺ಄ͷதͰ͸ͲΜͳ͜ͱΛߟ͑ͯΔΜͩΖ͏ʁ

Slide 30

Slide 30 text

ಈըΛݟͯΘ͔ͬͨͱࢥ͍·͕͢ɺ

Slide 31

Slide 31 text

ԿͰ΋஌͍ͬͯΔਓ΍ ·ͬͨ͘ϛεΒͳ͍ਓ͸͍·ͤΜ

Slide 32

Slide 32 text

͜Μͳਓ΋ʢͨͿΜʣ͍ͳ͍ ↑ߴ଎ͰλΠϐϯά͢ΔೣͷΞχϝgif ↑ߴ଎ͰλΠϐϯά͞Ε͍ͯ͘Ξχϝgif

Slide 33

Slide 33 text

ࠓճͷൃදͰԿ͔৽͍͠ʮؾ͖ͮʯΛ ࣋ͪؼͬͯ΋Β͑ͨΒ޾͍Ͱ͢

Slide 34

Slide 34 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ !KODIJUP CMPHKOJUPDPN Ξϯέʔτͷճ౴΋͓଴͍ͪͯ͠·͢ʂ