再発防止策を考える技術 #phpconfuk_rej

再発防止策を考える技術 #phpconfuk_rej

2018/6/15 【非公式】PHPカンファレンス福岡2018前夜祭リジェクトコンにて発表しました

046baac588d91fd78a85b189847a151d?s=128

Sota Sugiura

June 15, 2018
Tweet

Transcript

  1. ࠶ൃ๷ࢭࡦΛߟ͑Δٕज़ @sota1235 PHPΧϯϑΝϨϯε෱Ԭ2018લ໷ࡇϦδΣΫτίϯ 2018/6/15

  2. ͪͳڈ೥

  3. https://twitter.com/hasegawayosuke/status/873390578678996992

  4. ຯΛ઎ΊͨCfP • ࠶ൃ๷ࢭࡦΛߟ͑Δٕज़

  5. ຯΛ઎ΊͨCfP • ࠶ൃ๷ࢭࡦΛߟ͑Δٕज़ • PHP͡Όͳͯ͘΋…

  6. ຯΛ઎ΊͨCfP • ࠶ൃ๷ࢭࡦΛߟ͑Δٕज़ • PHP͡Όͳͯ͘΋… • JavaScriptϢχοτςετͷཧ૝ͱݱ࣮

  7. ຯΛ઎ΊͨCfP • ࠶ൃ๷ࢭࡦΛߟ͑Δٕज़ • PHP͡Όͳͯ͘΋… • JavaScriptϢχοτςετͷཧ૝ͱݱ࣮ • JavaScript͸PHPͩͬͨͷ͔

  8. ͍͢·ͤΜͰͨ͠ ྑ͍ൃද͢Δͧ

  9. var_dump($me); • Sota Sugiura(͖ΓΜ) • @sota1235 • Mercari, Inc. •

    কདྷͷເ͸JavaScriptʹ ͳΔ͜ͱͰ͢
  10. ձ৔ɺ੝Γ্͕ͬͯ·͔͢ʁ

  11. ։ൃɺͯ͠·͔͢ʁ

  12. γεςϜো֐ɺى͖ͯ·͔͢ʁ

  13. None
  14. ςʔϚ γεςϜো֐

  15. ςʔϚ γεςϜো֐ʹཱͪ޲͔͏࿩

  16. ΞδΣϯμ • 1ষ ࠶ߟ γεςϜো֐ͱ͸ • 2ষ γεςϜো֐ʹཱͪ޲͔͏ • 3ষ

    ࣮ફʂ࠶ൃ๷ࢭࡦ
  17. 1ষ ࠶ߟ γεςϜো֐ͱ͸

  18. ఆٛ “γεςϜো֐ͱ͸ɺ৘ใγεςϜ͕ԿΒ͔ͷෆ ۩߹ʹΑͬͯͦͷػೳʹࢧোΛདྷͨ͠ɺຊདྷͷ ػೳ͕ར༻Ͱ͖ͳ͍ঢ়ଶͷ͜ͱͰ͋Δɻ” Ҿ༻: https://www.weblio.jp/content/γεςϜো֐

  19. ఆٛ “γεςϜো֐ͱ͸ɺ৘ใγεςϜ͕ԿΒ͔ͷෆ ۩߹ʹΑͬͯͦͷػೳʹࢧোΛདྷͨ͠ɺຊདྷͷ ػೳ͕ར༻Ͱ͖ͳ͍ঢ়ଶͷ͜ͱͰ͋Δɻ” Ҿ༻: https://www.weblio.jp/content/γεςϜো֐

  20. ୭͕ར༻͢Δػೳʁ • to CͳΒΞϓϦΛμ΢ϯϩʔυ͓ͨ͠٬͞· • to BαʔϏεͳΒܖ໿ઌͷࣾһ͞Μ • ࣾ಺γεςϜͳΒࣗࣾࣾһ

  21. ҙਤ͠ͳ͍ڍಈ

  22. ͓٬͞·ʹӨڹͷग़Δ ҙਤ͠ͳ͍ڍಈ

  23. ͜Ε͸ʁ • ΦϖϨʔγϣϯϛε • ࢓༷௨Γ͕͓ͩ٬͞·ʹӨڹͷग़Δػೳ

  24. γεςϜো֐ͱ͸ɺ݁Ռ ݪҼ ɾγεςϜόά ɾΦϖϨʔγϣϯϛε ɾӡ༻ϛε ݁Ռ ɾը໘ʹΤϥʔ͕දࣔ ɾϨΠςϯγ͕̎ഒʹ ɾςετPush௨஌

  25. ͡Ό͋͜Ε͸ʁ • όά͚ͩͲӨڹൣғ֎ • ͓٬͞·ʹΤϥʔ͸දࣔ͞Εͳ͍͕ϩά͕ߥ ΒͿΔ • ෆཁͳ৘ใ͕Ϩεϙϯεʹࠞͬͯ͟Δ

  26. ηʔϑʁ https://giphy.com/gifs/wmwhitecaps-umpire-ump-david-gonzalez-3o6Zt4OIZEm5KE0DTi

  27. Ξ΢τ • Өڹ͕ͰΔՄೳੑ͕͋Δɺ΋͘͠͸͋ͬͨ • જࡏతͳγεςϜো֐ • ͨ·ͨ·ηʔϑ͚ͩͬͨͩ

  28. ͳͥ݁ՌηʔϑͰ΋ γεςϜো֐ʁ

  29. ো֐͸ऩଋͯ͠΋ αʔϏε͸ଓ͔͘Β

  30. 1ষ·ͱΊ • γεςϜো֐ͱ͸݁Ռͱͯ͠ • ͓٬͞·ʹӨڹ͕ͰΔ΋ͷ • Өڹ͕Ͱ͔ͨ΋͠Εͳ͍΋ͷ • ݪҼ͸γεςϜతͳ΋ͷʹݶΒͳ͍

  31. 2ষ γεςϜো֐ʹཱͪ޲͔͏

  32. Ͳ͏ཱͪ޲͔͏ʁ • ͓٬͞·ʹӨڹΛग़͞ͳ͍ͨΊʹ͸ো֐Λग़ ͞ͳ͚Ε͹͍͍ • ͭ·Γɺো֐Λग़͞ͳ͍։ൃΛ͢Ε͹͍͍ • ࠷ߴͰ͸ʁʁʁʁ

  33. ো֐ग़ͣ͞ʹ։ൃͰ͖Δਓ

  34. ݱ࣮͸ݫ͍͠+

  35. ड͚ೖΕΔ΂͖ͨͬͨ1ͭͷࣄ࣮ ͲΜͳʹ༏लͳਓͰ΋ϛεΛ͢Δ

  36. ো֐͸ʮى͖Δʯ • ਓ͕αʔϏεΛ࡞ΔݶΓɺ ϛε͸ى͖Δ • ͭ·Γো֐͸ແ͘ͳΒͳ͍ • ো֐Λແ͘͢ํ๏͸։ൃΛ ΍ΊΔ͜ͱ͚ͩ ը૾Ҿ༻:

    http://cartoontester.blogspot.com/2013/10/field-of-dreams-rip-off.html
  37. Ͳ͏͢΂͖͔ • ো֐͕ى͖Δ֬཰ΛݮΒ͢

  38. Automation & Karakuri

  39. Automation ਓ͕͠ͳͯ͘΋͍͍͜ͱΛ͠ͳ͍ Karakuri ਓ͕ϛεͯ͠΋͍͍࢓૊ΈΛͭ͘Δ

  40. Automation • ੩తղੳʹΑΔࣗಈϨϏϡʔ • ࠶ൃ๷ࢭͷࣗಈςετ

  41. Karakuri • PushπʔϧͷValidationڧԽ • ϓϩάϥϜ্ͷϩδοΫͰ࿦ཧతʹى͖ͳ͍ Α͏վम͢Δ

  42. Ҿ༻: https://qiita.com/hirokidaichi/items/f9f4549c88aaf8b38bda ਓؒͱ͍͏ίϯϙʔωϯτΛ ࠶ൃ๷ࢭʹೖΕͳ͍

  43. 2ষ·ͱΊ • ਓ͸ϛεΛ͢Δ • ࣦഊΛೝΊɺࣦഊ͔ΒֶͿ • ֶͼΛAutomation & KarakuriΛ࣠ʹ࣮ફ΁ͱ ঢ՚͢Δ

  44. 3ষ ࣮ફʂ࠶ൃ๷ࢭࡦ

  45. ݱ৔ͷ࿩Λ͠·͢

  46. ϝϧΧϦͷো֐ରԠϑϩʔ ো֐ൃੜ ऩଋ ৼΓฦΓ ରԠ

  47. ϝϧΧϦͷো֐ରԠϑϩʔ ো֐ൃੜ ऩଋ ৼΓฦΓ ରԠ

  48. ৼΓฦΓͰ͠ͳ͍͜ͱ • ੹೚ͷ௥ٻ • ൓লจͷಡΈ߹Θͤ

  49. ৼΓฦΓͰ͢Δ͜ͱ • Automation & KarakuriΛ࣮ݱ͢Δ࠶ൃ๷ࢭ ͷݕ౼ • ໰୊ͷਂ۷Γ

  50. Who? ো֐ऩଋ • ऩଋޙɺରԠؔ܎ऀ ͰใࠂॻΛॻ͘ • ৼΓฦΓΛ͢ΔͨΊ ͷ৘ใΛॻ͘

  51. Who? ো֐ऩଋ ౰ࣄऀɺνʔϜͰߟ͑Δ • ·ͣ͸౰ࣄऀɺνʔ ϜͰ࠶ൃ๷ࢭࡦΛߟ ͑Δ

  52. Who? ো֐ऩଋ ౰ࣄऀɺνʔϜͰߟ͑Δ ΈΜͳͰߟ͑Δ • ߟ͑ͨ΋ͷΛΈΜͳ ͰϨϏϡʔ͢Δ • νʔϜͰग़ͯ͜ͳ͍ ΞΠσΟΞ͕ग़ͯ͘

    Δ͜ͱ΋͋Δ
  53. How? • िʹ1౓ɺSlack্ͰΦϯϥΠϯͰ࣮ࢪ • ୭Ͱ΋ࢀՃͰ͖Δ • [ݕࡧ][ϝϧΧϦͷ3ͭͷValueͰऔΓ૊ΉΠϯ γσϯτରԠ] http://tech.mercari.com/entry/2018/04/10/090453

  54. ΈΜͳͰݟΔඞཁ͋Δʁ • ࣾ಺ͷྺઓͷ໠ऀ͔Β஌ݟ͕΋Β͑Δ • ผ৬छͷࢹ఺͕ಘΒΕΔ • OKͳΒOKͰ͓ർΕ༷Ͱͨ͠ͱͳΔ

  55. ࠶ൃ๷ࢭͷࢦඪ • ৽ਓ͕ಉ͜͡ͱΛͯ͠΋࠶ൃ͠ͳ͍͔ʁ • ਓ͕࡞ۀ͠ͳ͍Α͏ʹͰ͖Δ͔ʁ • ೋ౓ͱى͖ͳ͍Α͏ʹͰ͖Δ͔ʁ Karakuri Automation Karakuri

  56. Backendͷྫ • ࣗಈςετͷ௥Ճ • ಠࣗνΣοΫεΫϦϓτΛCIͰ࣮ߦ • ϝϯςφϯεϞʔυͷ࣮૷

  57. ࣾ಺πʔϧͷྫ • ࣮ࡍͷো֐ʹج͍ͮͨݖݶ੍ޚ΍Validationॲ ཧͷ௥Ճ • खӡ༻Ͱ΍͍ͬͯͨ࡞ۀΛࣗಈԽ

  58. ͦͷଞ • ϑΣʔϧιϑτ΁ͷࣗಈҠߦͷ࢓૊Έ࣮૷ • Ϋϥ΢υαʔϏεͷࡉ͔͍ϞχλϦϯά

  59. શ෦࠶ൃ๷ࢭͰ͖Δͷʁ • ෆՄೳͰ͸ͳ͍(ͱ৴ͯ͡Δ) • ݱ࣮໰୊ɺίεύ͕ѱ͍΋ͷ΋͋Δ • ࠷খݶͷ౒ྗͷ݁Ռɺ࠷େݶʹਓؒͱ͍͏ί ϯϙʔωϯτ͕ؔΘΔՕॴΛڱ͘͢Δ

  60. 3ষ·ͱΊ • ϝϧΧϦͰ͸࠶ൃ๷ࢭʹՁ஋Λݟग़ͯ͠Δ • Automation&KarakuriΛ࣠ʹि1ճɺΈΜͳͰ ৼΓฦΓΛ͢Δ

  61. ·ͱΊ

  62. ো֐ใࠂॻ͸ࢿ࢈ • ো֐͸αʔϏε͕૸ΔݶΓى͖ଓ͚Δ • ى͖ͨো֐͸͖ͪΜͱৼΓฦΓɺ࠶ൃ๷ࢭࡦ Λߟ͑ͯࢿ࢈΁ͱঢ՚ͤ͞Δ • େࣄͳͷ͸ະདྷͷ͓٬͞·΁ͷӨڹΛͲΕͩ ͚ݮΒͤΔ͔

  63. ࠶ൃ๷ࢭࡦ΋ਐԽ͕ඞཁ • ੒௕Λଓ͚ΔαʔϏε͸ͦͷ෼ɺো֐΋૿͑ ΍͍͢ • Microservices΍ٕज़ͷଟ༷Խ͕ਐΉͱ࠶ൃ๷ ࢭͷ೉қ౓΋্͕͍ͬͯ͘ • ࠶ൃ๷ࢭͷ࢓૊Έ΋ৗʹਐԽ͍ͯ͘͠ඞཁ͕ ͋Δ

  64. Thank you