Upgrade to Pro — share decks privately, control downloads, hide ads and more …

全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること/let-our-whole-system-grow

 全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること/let-our-whole-system-grow

RailsDM 2019 での発表資料です

70e13d9877054026fda46d5a5b53a236?s=128

MOROHASHI Kyosuke

March 23, 2019
Tweet

Transcript

  1. શମ͕͍͍ײ͡ʹͳΔͨΊʹɺ
 ࢲͨͪ3BJMTΛϗʔϜʹ͢Δ
 8FCٕज़ऀ͕Ͱ͖Δ͜ͱ 
 2019-03-23 Rails Developers Meetup 2019 ॾڮګհ

    @moro  
  2. ‣ ࣸਅ  

  3.   Kyosuke MOROHASHI @moro

  4.  

  5. !5 SMS? What's SMSってなにをやってる会社なの?

  6.   https://twitter.com/sunaot/status/1002392476492038144

  7. “ 情報インフラを構築することで、⾼齢社会を
 取り巻く⼈びと、⾼齢社会で働く⽅や事業者の⽅、 ⾼齢者ご⾃⾝やそのご家族などがイキイキと
 ⽣活できる社会の実現を⽬指しています。 — https://www.bm-sms.co.jp/philosophy/

  8. !8 &

  9. 吳䒭⠓爡ؒأ ٥ ؒي ٥ ؒأ 匌❨鿪庥⼒蓎Ⱅ㕦⡝⿼♶⹛欵蓎Ⱅ㕦ةٙ٦ https://www.bm-sms.co.jp ؒٝآص،䱰欽؟؎ ز https://careers.bm-sms.co.jp/engineer/

    join us!
  10. શମ͕͍͍ײ͡ʹͳΔͨΊʹɺ
 ࢲͨͪ3BJMTΛϗʔϜʹ͢Δ
 8FCٕज़ऀ͕Ͱ͖Δ͜ͱ  

  11. ‣ 3BJMTੲͱࠓ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ  ‣ શମΛ͍͍ײ͡ʹ͢Δ ‣ ݁࿦ 

    
  12. 3BJMTΛऔΓר͘ ੲͱࠓ  

  13. 3BJMT ͳͲαʔόଆ8FCٕज़ ΛऔΓר͘ ੲͱࠓ  

  14. ٕज़τϐοΫͱͯ͠ͷ3BJMT ੲͱࠓ  

  15. ‣ 3BJMT͕ग़࢝Ίͨ೥୅ɺ3BJMT΍8FCΞϓϦ͸
 ٕज़తτϐοΫͷ࠷ઌ୺ͷҰͭͩͬͨɻ ‣ 001 -JHIUXFJHIU-BOHVBHF ϑϧελοΫϑϨʔϜϫʔΫ ‣ "KBY 3&45

    5%% ΞδϟΠϧ ษڧձ ஍ҬίϛϡχςΟʔ ‣ ͍·΋ଓ͘ɺ͍ΖΜͳࢼΈ͕Ͱ͖ͯͨɻ ‣ ˞΋ͪΖΜʮ͢΂͕ͯ3BJMTͷ͓͔͛ʯͱ͍͏Θ͚Ͱ͸ͳ͍Α ࢲͷࢹ఺Ͱ;Γ͔͑Δ ੲ  
  16. ‣ ೥ͷ࠷ઌ୺Ͱ͸ͳͦ͞͏ɻ ‣ Ϟμϯ+4 .JDSPTFSWJDFT %FW0QT "* .- ʜ ‣

    ʮ͋ͨΓ·͑ʯʹͳͬͨ ‣ ʮ࠷ઌ୺ʯʹ͸·ͨͳΔ͔΋͠Εͳ͍͠ɺ
 ͳΒͳ͍͔΋͠Εͳ͍ɻ ‣ ͨͩɺ·ͨ΋͠ͳͬͯ΋લͱ͸ҧ͏ɻ ࠓ  
  17.  

  18.  

  19. ‣ (PPEFOPVHIͱͯ͠࢖ΘΕ͍ͯΔ ‣ ͢Ͱʹ࢖ͬͯΔͱ͜Ζͨ͘͞Μ͋Δ͠Ͷɻ ‣ ࠓͰ΋͍͍બ୒ࢶͩͱࢥ͏ ‣ ΋ͪΖΜɺ๻΋ઈ໓ͯ͠΄͘͠ͳ͍ 3BJMT͸ઈ໓͢Δ 

    
  20. ‣ ୯Ұͷ3BJMTΞϓϦ͚ͩͰ׬݁͢Δ͜ͱ ͸ͳ͘ͳ͖ͬͯͨɻ ͔ͱݴͬͯੲͱಉ͡Ͱ͸ͳ͍  

  21. ‣ 3BJMTੲͱࠓ ‣ ࠷৽ͷٕज़Ͱ͸ͳ͘ͳ͖ͬͯͨ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ  ‣ શମΛ͍͍ײ͡ʹ͢Δ ‣

    ݁࿦  
  22. 3BJMTΞϓϦ
 ੲͱࠓ  

  23. ‣ ୯Ұͷ8FCΞϓϦͰ΄΅׬݁͢Δɻ ‣ ಛఆͷαʔϏεɾۀ຿ɾϓϩμΫτ͕ؔ৺ͷର৅ ‣ ֎෦࿈ܞ͸ಛผͳͱ͜Ζ͚ͩɻ ੲ3BJMT͕ग़࢝Ίͨࠒ  

  24. ‣ 8FCͷαʔϏεͭͰ׬݁͢Δ͜ͱ͸
 ΄΅ͳ͍ɻ ‣ ʮαʔϏεͭʯͰ΋ɺଟ͘ͷཁૉٕज़͕ඞཁ ‣ ֎෦࿈ܞ͢Δͷ͕೔ৗɻ ࠓ  

  25. ֎෦࿈ܞ͢Δͷ͕೔ৗ  

  26. ֎෦࿈ܞ͢Δͷ͕೔ৗ  

  27. ‣ ཁૉٕज़ͷઐ໳Խ͕ਐΜͰ͍Δɻ ‣ ݸʑͷཁૉٕज़ʹ࠷దʹͳΔΑ͏
 γεςϜ͕෼ׂ͞ΕΔɻ ‣ ͦΕͧΕͷz֎෦zʹͦΕͧΕͷ໨తɾ
 ࢥ࿭͕͋Δɻ  

  28. ֎෦࿈ܞ͢Δͷ͕೔ৗ  

  29. ‣ ʮඇಉظͬͯಉظΛߟ͑Δ͜ͱͩΑͶʯ ‣ !N@TFLJ͞Μ͕ݴͬͯͨؾ͕͢Δ ཁग़య  ‣෼ׂ͞Εͨ࢓ࣄΛ߹ྲྀͤ͞Δɻ ‣߹ྲྀͤ͞ΔͱॳΊͯϢʔβʔʹಧ͘ɻ ʮ෼ׂͬͯ߹ྲྀ͢Δ͜ͱͩΑͶʯ 

    
  30. ‣ ߦಈ෼ੳͯ͠.-ͰϦίϝϯυ͢Δ಺༰݁ՌΛ
 εϚϗΞϓϦʹ౉ͨ͠Γɻ ‣ छྨͷ.JDSPTFSWJDFTΤϯυϙΠϯτ͔Βͱ͖ͬͯ ͨσʔλΛ3FBDUΞϓϦʹΘͨͨ͠Γɻ ߹ྲྀͤ͞ΔͱॳΊͯϢʔβʔʹಧ͘  

  31. ‣ αʔϏεͷӡӦελοϑ͕ɺͦΕͧΕͷઐ໳஌ࣝΛ ΋ͱʹίϯςϯπΛ௥Ճߋ৽৹ࠪͨ͠Γɻ ιϑτ΢ΣΞ࣮૷͚ͩͰ΋ͳ͍  

  32. ‣ ͍ΖΜͳઐ໳Ո੒Ռ෺͕8FCٕज़Λ௨͍ͬͯ͘ɻ ‣ +40/PWFS)551ͱ͔ ‣ 41"ͱ͔ɺTJOHMFQBHF͡Όͳͯ͘΋+4 )5.-ͱ͔ ‣ ؅ཧը໘ͱ͔ ‣

    ͦͯ͠Ϣʔβʔʹಧ͘ɻ ߹ྲྀͷ৔ͱͯ͠ͷ8FCΞϓϦέʔγϣϯ  
  33. ‣ 3BJMTੲͱࠓ ‣ ࠷৽ͷٕज़Ͱ͸ͳ͘ͳ͖ͬͯͨ ‣ ֎෦ͷ͍ΖΜͳ΋ͷͱ࿈ܞ͢Δඞཁ͕ग़͖ͯͨ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ  ‣

    શମΛ͍͍ײ͡ʹ͢Δ ‣ ݁࿦  
  34. 3BJMTΞϓϦʹٻΊΒΕΔ͜ͱ ੲͱࠓ  

  35. ‣ ୯ҰͷγεςϜͱͯ͠ɺσʔλͷ
 ग़͠ೖΕΛ্खʹߦ͏ɻ ‣ σʔλΛ͖Ε͍ʹೖΕΔɺೖΕ΍͘͢͢Δɻ ‣ շదͳҰށݐͯΛ࡞Δɻ ੲ  

  36. ‣ ͞·͟·ͳਓ͕ͨͪ࣋ͪدΔՁ஋Λ
 ߹ྲྀͤ͞Δ৔ॴͱͳΔɻ ‣ ͍Ζ͍Ζͳਓͷॅ·͏֗ͷ׆ಈΛ͍͍ײ͡ʹ͢Δɻ ‣ ϩϘοτ͕࡞ͬͨ੡඼ΛϨʔϧͰӡΜͰίϯςφʹೖΕͯTIJQJUʙ̇ ࠓ  

  37. ྫ TFDSFRͷ͕͔͔࣌ؒΔ
 ϨίϝϯυΤϯυϙΠϯτΛ
 ܧଓͯ͠վળ͢Δࢪࡦ  

  38. ‣ TFD͔͔Δͱ8FCಉظ͸ແཧ ‣ ඇಉظBOEPSΩϟογϡ ‣ ඇಉظͰऔΔͱ͖ͷ"1*͸Ͳ͏͢Δ  ‣ Ωϟογϡ͢Δͱͯ͠ɺΩʔͱύʔδλΠϛϯάͷઃܭ͸ʜ 

    ‣ Ϩίϝϯυ͢ΔࠜڌσʔλͷΘͨ͠ํ ‣ ઱౓͸  ‣ ྔ͸  ‣ ϓϥΠόγʔ͸  ‣ ޮՌΛͲ͏΍ͬͯଌఆ͠Α͏ ‣ ϩάऔಘͷ࢓૊Έɺ͍·͋ΔൣғͰ଍ΓΔ  ‣ Ͳ͏͍͏ϩάΛͲ͏͍͏ޮՌͱΈͳͤ͹͍͍ TFDSFRͷ͕͔͔࣌ؒΔϨίϝϯυΤϯυϙΠϯτΛܧଓͯ͠վળ͢Δࢪࡦ  
  39. ‣ ୭͕Ͳ͏෼ੳ͢Δ  ‣ ԿΛ΋ͬͯޮՌ͕͋ͬͨͱ൑அͰ͖Δ  ‣ վળͷͨΊͷ৽ΞϧΰϦζϜΛͲ͏΍ͬͯػೳ௥Ճ͠Α͏ ‣ ύϥϝʔλมߋ͚ͩͰ͍͚Δ

     ‣ ͍͚ͳ͍ͱͯ͠ɺ͍ͭมߋͰ͖Δ  ‣ ൺֱͷͨΊʹฒߦӡ༻͢Δ࢓૊Έ͸  ‣ ϨίϝϯυΤϯδϯ͕٧·ͬͨΓམͪͨΓͨ͠ΒͲ͏͠Α͏ ‣ ٕज़తʹ੾Γ཭ͨ͠Γ ‣ ࠔͬͨϢʔβʔ͞ΜʹँͬͨΓॿ͚ͨΓ TFDSFRͷ͕͔͔࣌ؒΔϨίϝϯυΤϯυϙΠϯτΛܧଓͯ͠վળ͢Δࢪࡦ  
  40. ‣ Ϛδ  ‣ ҰݸҰݸ͕ɺٕज़తʹͪΐ͏εΰΠͱ͸ݶΒͳ͍ɻ ‣ ݸผʹ͸ʮ;ͭ͏ʯͷ͜ͱͷ΄͏͕ଟ͍ ‣ ͦΕͧΕͷ෼໺ͷઐ໳Ոͱͯ͠ɺ΋ͬͱεΰΠಉ྅΍
 νʔϜϝϯόʔ͕͍ͨΓ͠·ͤΜ

    ͥΜͿҰਓͰϚελʔ͢Δ  
  41. ‣ ΞϓϦج൫ ‣ Πϯϑϥ43& ‣ "*ݚڀ։ൃ ‣ اըϚʔέλʔ ‣ Ϣʔβʔαϙʔτ

    ৭Μͳ৬ೳͷਓ͕͍ͨͪΔ  
  42. ‣ଟ͘ͷ৔߹ɺ8FCΞϓϦ΁ͷίϛοτΛ൐͏ɻ ‣ҰݸҰݸͷػೳ௥Ճ͸ͦ͜·Ͱ೉͘͠ͳ͍ɻ ‣Ͱ΋ͦΕΛܧଓతʹ͍͍ײ͡ʹ͢Δͷ͸೉͍͠ɻ ‣৭Μͳਓͷࢥ࿭͕͋ΔͷͰɻ ࣋ͪدͬͨ੒ՌΛEFMJWFS͢Δ  

  43. ‣ ͍͍ײ͡ʹ߹ྲྀ͢Δ৔ʹͳΔɻ ‣ ૬ޓʹΑ͍ίϛϡχέʔγϣϯΛઃܭͯ͠ ‣ ੒ՌΛྲྀ௨ͤ͞ΔΠϯλʔϑΣʔεΛఏڙ͢Δ ‣೉͍͠ɻ ‣͚ͲɺϢʔβʔʹՁ஋Λಧ͚ΔͨΊʹඞཁͳ͜ͱɻ z8FCΞϓϦΛ࡞Δ৬ೳzΛ࣋ͭਓ͕ͨͪͰ͖Δͱ͍͍͜ͱ 

    
  44. ‣ ͍͍ײ͡ʹ߹ྲྀ͢Δ৔ʹͳΔɻ ‣ ૬ޓʹΑ͍ίϛϡχέʔγϣϯΛઃܭͯ͠ ‣ ੒ՌΛྲྀ௨ͤ͞ΔΠϯλʔϑΣʔεΛఏڙ͢Δ ‣೉͍͠ɻ ‣͚ͲɺϢʔβʔʹՁ஋Λಧ͚ΔͨΊʹඞཁͳ͜ͱɻ z8FCΞϓϦΛ࡞Δ৬ೳzΛ࣋ͭਓ͕ͨͪͰ͖Δͱ͍͍͜ͱ 

    
  45. ‣ 3BJMTੲͱࠓ ‣ ࠷৽ͷٕज़Ͱ͸ͳ͘ͳ͖ͬͯͨ ‣ ֎෦ͷ͍ΖΜͳ΋ͷͱ࿈ܞ͢Δඞཁ͕ग़͖ͯͨ ‣ ৭Μͳ৬ೳͷਓ͕ͨͪग़ձ͏৔ʹͳ͖͍ͬͯͯΔ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ

     ‣ શମΛ͍͍ײ͡ʹ͢Δ ‣ ݁࿦  
  46. Ϣʔβʔʹ
 Ձ஋Λಧ͚Δ
 ͍ͬͯ͏͚Ͳ  

  47. ‣ ओޠ͸  ‣ ࢲ͕ ‣ ࢲͨͪΤϯδχΞ͕ ‣ ࢲͨͪͷ\αʔϏε ࣄۀ

    ձࣾ^શମ͕ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ  
  48. ‣ Ϣʔβʔͱ͸  ‣ Πϯλʔωοτͷ޲͜͏ʹ͍ΔɺαʔϏεར༻ऀ ‣ ར༻ऀͷ͜ͱΛҰॹʹߟ͑Δɺ૊৫ͷ஥ؒ ‣ ͦ͏͍͏૊৫ͷ஥͕ؒ࢖͏ιϑτ΢ΣΞϓϩμΫτ Λ࡞Δɺ։ൃνʔϜͷϝϯόʔ

    ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ  
  49. ‣ ʮࢲʯ͸ଞͷ৬ೳͷਓʹՁ஋Λఏڙͯ͠ɻ ‣ ʮࢲͨͪʯΈΜͳ͕ͦΕͧΕͷ৬ೳΛੜ͔ͯ͠ ੈͷதΛ͍͖͍͖͍ͤͨ͞ɻ ഉଞͰ͸ͳ͘ϑϥΫλϧߏ଄  

  50. ‣ ͍·ͷ8FCͷαʔόଆͬͯΑཱ͍ͪҐஔ
 ͩͱࢥ͏ɻ ‣ ૊৫಺֎ͷʰ͍ΖΜͳਓ͕ॅ·͏֗ʱ
 ͱͯ͠ͷιϑτ΢ΣΞશମΛ͍͍ײ͡ʹ͢Δɻ ‣ ʮΤίγεςϜʯͷγεςϜ શମΛ͍͍ײ͡ʹ͢Δ 

    
  51. ‣ גࣜձࣾΤεɾΤϜɾΤεੵۃ࠾༻த ‣ 3BJMTੲͱࠓ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ ‣ ʮࢲͨͪʯͱʮϢʔβʔʯͷϑϥΫλϧߏ଄ɻ11͡Όͳ͍Αɻ ‣ શମΛ͍͍ײ͡ʹ͢Δ

    ‣ ݁࿦  
  52. શମΛ
 ͍͍ײ͡ʹ͢Δ  

  53. ιϑτ΢ΣΞʹॅ·͏ਓͨͪʹ޲͖߹͏  

  54. ‣ ҰॹʹՁ஋Λఏڙ͢ΔɺʮӡӦ͕ಘҙͳਓͨͪʯ͕ ;ͩΜॅ·͏ͱ͜Ζɻ ‣ ςʔϒ ϧΛ$36%͢Δ͚ͩͩͱ଍Γͳ͍͜ͱ͕ଟ͍Αɻ ͨͱ͑͹؅ཧը໘  

  55. ‣ ॅ·͏ਓͨͪͷϚΠϯυηοτΛଚॏͯ͠ɺ
 ιϑτ΢ΣΞʹ͠Α͏ɻ ‣ ϢϏΩλεݴޠɺυϝΠϯΤΩεύʔτɺ%$*ʜ ‣ Ϟδϡʔϧ෼ׂͷ࿩͚ͩ͡Όͳ͍ ձ࿩͠Α͏  

  56. ‣ ੍ޚͷํ޲ͷܾఆݖΛɺॅ·͏ਓࣗ਎ʹҕͶΔɻ ‣ ίʔυϕʔεʹॅ·͏զʑ΋ɺίʔυϕʔεͷ͋ΓํΛ
 ৄ͘͠ͳ͍ਓʹܾΊΒΕͨ͘ͳ͍Ͱ͢ΑͶ  ‣ ஫ҙͯ͠ҭ͍ͯͯ͘ͱɺ݁Ռͱͯ͠Ͱ͖Δ ͜ͱ΋͋Δ 

    ‣ 3BJMT͸ϛϥΫϧ lϑϨʔϜϫʔΫzΛ࡞Βͳ͍  
  57. ‣ ίʔυʹॅ·͏ࢲͨͪϓϩάϥϚʹ ‣ Α͍ΠϯλʔϑΣʔεͱίϛϡχέʔγϣϯͷ ৔Λఏڙͯ͘͠Εɺ ‣ ιϑτ΢ΣΞͷ࢖͍खʹՁ஋Λಧ͚ΔͷΛ
 खॿ͚ͯ͘͠ΕΔɻ 3VCZ΍3BJMT 

    
  58. ‣ ιϑτ΢ΣΞͷ࢖͍खʹͱ͍͍ͬͯײ͡ʹɻ ‣ ʮ3BJMT͕ʰಈ͍ͯ΄͍͠Α͏ʹʱಈ͔ͳ͔ͬͨ ΒͦΕ͸όάʯ ‣ Έ͍ͨͳ͜ͱΛ!ZVHVJ͞Μݴͬͯͨؾ͕ ཁग़య 3VCZ΍3BJMTͷΑ͏ʹৼΔ෣͏ 

    
  59. ͱɺ͍͏ͷΛ Ұൠ࿦ͱͯ͠ɺ ෆཁͱࢥ͏ਓ͸͋·Γ͍ͳ͍  

  60. ‣ αʔϏε։ൃࢤ޲ΤϯδχΞ ‣ ʮࢲͷαʔϏεʯͰϢʔβʔʹՁ஋Λఏڙ͍ͨ͠ ‣ ٕज़ࢤ޲ΤϯδχΞ ‣ ͜ͷ͍͢͝৽ٕज़Λద༻͍ͨ͠ ‣ ͦΕͧΕͷࢤ޲ͷͻͱ͕ʮશମʯʹͱͬͯେࣄ


    ͳͷ͸ؒҧ͍ͳͯ͘ɻ ‣ ஥ྑ͘͠·͠ΐ͏ ΩϟϦΞύεͱͯ͠ҙࣝ͢Δͷ͕೉͍͠  
  61. ‣ ΈΜͳͷ࢓ࣄΛ߹ྲྀͤ͞Δ͜ͱʹ
 ؔ৺Λ࣋ͭࢤ޲ੑʹ΋ɺ໊લ͕͋ΔͱΑ͍ɻ ‣ ͍͍ͷࢥ͍͍ͭͨΒڭ͍͑ͯͩ͘͞ ‣ ࢑ఆʮશମΛ͍͍ײ͡ʹ͢Δʯ ʲ؇ืʳ͜ͷࢤ޲Λද͢Α໊͍લ  

  62. ‣ 3BJMTੲͱࠓ ‣ ϢʔβʔʹՁ஋Λಧ͚Δ͍ͬͯ͏͚Ͳ ‣ શମΛ͍͍ײ͡ʹ͢Δ ‣ ʮΈΜͳͷ࢓ࣄΛ߹ྲྀͤ͞Δ͜ͱʯʹڵຯΛ࣋ͭɺͱ͍͏
 ΩϟϦΞͷํ޲ੑΛ͝ఏҊͨ͠ɻ ‣

    ݁࿦  
  63. ݁࿦  

  64. શମ͕͍͍ײ͡ʹͳΔͨΊʹɺ
 ࢲͨͪ3BJMTΛϗʔϜʹ͢Δ
 8FCٕज़ऀ͕Ͱ͖Δ͜ͱ  

  65. "શମ͕͍͍ײ͡ʹ
 ͳΔ͜ͱʹڵຯΛ࣋ͪɺ
 ͦ͏͠Α͏ͱ͢Δ  

  66. ‣ ͞·͟·ͳਓͨͪͷίϛϡχέʔγϣϯͷ৔ͱͳΔ͜ͱɺ ݩؾ͚ͮΔ͜ͱɻ ‣ ࢖ָͬͯ͘͠ͳΔΠϯλʔϑΣʔεΛ࡞Δ͜ͱɻ ‣ ͲΜͲΜ࢓ࣄͨ͘͠ͳΔ6* ‣ ͲΜͲΜୟ͖ͨ͘ͳΔ"1* ‣

    ࢲͨͪશһͰఏڙ͢ΔՁ஋ͷ૯࿨Λେ͖͘͢Δ
 ͨΊʹٕज़Λ࢖͏͜ͱɻ  
  67. ‣ ͱ͍͏ࢤ޲ʹ֮ࣗతʹͳΓͳ͕Βɺ
 ͍ΖΜͳઐ໳Ոͱͷ೔ʑͷ࢓ࣄΛָ͠Ή͜ͱɻ