メルカリの超高速開発を支えるPHP (PHPCon2014)

メルカリの超高速開発を支えるPHP (PHPCon2014)

PHPカンファレンス2014のスライドです。

4ea490210007ad68a5911217523bd137?s=128

Tatsuya Tsuruoka

October 11, 2014
Tweet

Transcript

  1. ϑϦϚΞϓϦʮϝϧΧϦʯͷ ௒ߴ଎։ൃΛࢧ͑Δ1)1 גࣜձࣾϝϧΧϦ ϓϦϯγύϧΤϯδχΞ ௽Ԭୡ໵ UTVSVPLB!NFSDBSJBQQDPN !

  2. ࠓճ͓࿩͢Δ͜ͱ  αʔόߏ੒ Ͳ͏΍ͬͯεέʔϧ͖ͯͨ͠ʁ  ϝΠϯݴޠ͸1)1 ͳͥ1)1 1)1ͷྑ͍ͱ͜Ζ  ͲΜͳߟ͑ํͰ։ൃ͖͔ͯͨ͠

    εϐʔυͷॏཁੑՁ஋ΛੜΉίʔυͱ͸
  3. ʮϝϧΧϦʯʹ͍ͭͯ

  4. None
  5. w ೥݄ɺձࣾઃཱ w ೥݄ɺΞϓϦެ։

  6. w ຖ೔ສ݅Ҏ্ͷग़඼ w ݄ؒྲྀ௨ֹ਺ेԯԁ w ςϨϏ$.์өத ສ%-ୡ੒

  7. None
  8. αʔόߏ੒

  9. αʔόߏ੒ w ݱࡏͷαʔόɿ໿୆ w -#ɺ8FCɺ%#ɺόονɺ
 ΩϡʔϫʔΧʔɺΩϟογϡ w ϐʔΫ࣌ϦΫΤετඵҎ্Λॲཧ

  10. Ͳ͏΍ͬͯεέʔϧ͖ͯͨ͠ʁ ! w ڈ೥ͷ1)1ΧϯϑΝϨϯεͷࠒɺ
 αʔό͸୆͚ͩ අ༻ɿສԁ୆݄

  11. Ͳ͏΍ͬͯεέʔϧ͖ͯͨ͠ʁ w ೥Ͱഒʂʢڈ೥͕୆ͳͷͰʜʣ w ݱࡏͷߏ੒͸ୈࡾੈ୅໨ w ୈҰੈ୅ɿ୆ʹશ෦ w ୈೋੈ୅ɿ8FCͱ%#ͳͲ༻్ผʹ෼཭ w

    ୈࡾੈ୅ɿ-#΍ΩϟογϡͰෛՙ෼ࢄ
  12. γϯϓϧˍϛχϚϜ w 8FCαʔόʹ͸΋ͪΖΜ1)1 w "QBDIF NPE@QIQ .Z42-ͷ
 Ͳ͜ʹͰ΋͋Δ؆୯ͳߏ੒ w ୈҰੈ୅ͷߏ੒͸ͦΕ͚ͩ


    Ωϟογϡαʔό΋ͳ͠
  13. γϯϓϧˍϛχϚϜ w ୈࡾੈ୅ͷߏ੒Ͱෛՙ෼ࢄΛຊ֨Խ
 -#ɿOHJOY
 Ωϟογϡɿ.FNDBDIFEɺ3FEJT
 Ωϡʔɿ2.

  14. γϯϓϧˍϛχϚϜ w े෼ͳ࣮੷͕͋Δϛυϧ΢ΣΞ͚ͩͰ
 ߏ੒͞Ε͍ͯΔ w .Z42-ɺ.FNDBDIFEɺ3FEJT͸
 1)1͔Β؆୯ʹ࢖͑Δ

  15. ϝΠϯݴޠ͸1)1

  16. ͳͥ1)1 w ૑ۀϝϯόʔͱܨ͕͍ͬͯΔ։ൃऀͷ
 ଟ͕͘1)1։ൃऀͩͬͨ w ΞϓϦΛ։ൃ͍ͯͨ࣌͠఺Ͱ
 ࠷΋։ൃϦιʔε͕֬อ͠΍͔ͬͨ͢ w ͭ·Γɺ୯ʹ਎ۙͩͬͨ

  17. ͳͥ1)1 w ҆қͳཧ༝ʹݟ࣮͑ͯ͸ॏཁͳͷͰ͸ʁ w ྲྀߦΛ௥͍͔͚ͳ͍ w ݱ࣮తͳ໰୊Λղܾ͍ͨ͠ͷͰ͋ͬͯ
 ϞμϯͳݴޠΛۦ࢖͢Δ͜ͱΛ
 ໨తʹ͠ͳ͍

  18. ͳͥ1)1 w 8PSE1SFTT͕1)1Ҏ֎ͷݴޠͰ࡞ΒΕͯ ͍ͨΒɺࠓ΄Ͳͷ੎͍͸ͳ͔ͬͨͷͰ͸ w ਎ۙʹ໰୊ղܾ͍ͯ͠Δ͜ͱͷՁ஋Λ
 ΋ͬͱೝΊΑ͏

  19. 1)1ͷྑ͍ͱ͜Ζ w 8FCαʔόͰͷॲཧ͸े෼ʹߴ଎ w ϝϧΧϦฏۉϨεϙϯελΠϜ͸ϛϦඵ୆ w ؆୯ͳͷʹ࣮༻త w 1)1Λ஌Βͳ͍։ൃऀͰ΋ɺผͷݴޠ Λ஌͍ͬͯΕ͹͋ͬͱ͍͏ؒʹशಘ

  20. w ͨͩ͠8FCݴޠͰ͋ΔͨΊۤखͳ͜ͱ͸
 ͨ͘͞Μ͋Δ w ฒྻॲཧɺৗறϓϩηεɺFUD w ͦΕ͸ಘҙͳݴޠʹ೚ͤΔ

  21. w 1)1͚ͩͰ͢΂ͯΛ࡞Δ͜ͱʹ
 ͩ͜ΘΒͳ͍ w 1)1͕ۤखͳॲཧ͸ɺ
 3VCZɺ1ZUIPOɺ(PͳͲ࢖͍͚ͬͯ͹0,

  22. ͲΜͳߟ͑ํͰ։ൃ͖͔ͯͨ͠

  23. Ұ൪େࣄͳ͜ͱʮεϐʔυʯ

  24. ϝϧΧϦ։ൃͷ੒௕ۂઢ     ࠓ͜͜ ໨ඪ ࣌ؒ ౸ୡ౓

  25. w ͜Ε·ͰͷϝϧΧϦ͸ˠͷஈ֊ w ։ൃऀͷ໾ׂɺ։ൃͷߟ͑ํ͸
 ੒௕ஈ֊ʹΑͬͯมΘΔ w ˠͰҰ൪େࣄͳͷ͕εϐʔυ

  26. w ઌߦ͢Δڝ߹ ޙ͔Β௥ͬͯ͘Δେࢿຊͷڝ߹ w ϦϦʔε͢Δ·Ͱͷεϐʔυͱɺ
 ϦϦʔε͔ͯ͠ΒͷεϐʔυͰ
 ࠩΛ෇͚Δ͔͠ͳ͍ w ૉૣ͘ग़ͯ͠ɺ୭͔ʹ࢖ͬͯ΋Βͬͯɺ
 Ձ஋ΛߴΊ͍ͯ͘

    ͳͥʮεϐʔυʯ͕େࣄͳͷ͔
  27. ͳͥʮεϐʔυʯ͕େࣄͳͷ͔ w εϐʔυ͕େࣄͳ͜ͱ͸ΈΜͳ෼͔͍ͬͯΔ w ʮ΋ͬͱΏͬ͘Γ࡞Ε͹ྑ͔ͬͨʯ
 ͱ͍͏͜ͱ͸͋Γ͑ͳ͍

  28. w ஸೡʹ࡞ΒΕ͍ͯͯྑ͘Ͱ͖͍ͯΔ͚Ͳ
 ୭΋࢖͍ͬͯͳ͍αʔϏε ҙຯ͕ͳ͍ɻɻ ελʔτΞοϓͷੈքͰ͸ʣ

  29. ʮεϐʔυʯΛग़͢͜ͱͷ ೉͠͞

  30. ݶΒΕͨϦιʔεͰͲ͏࡞Δʁ w ։ൃऀɺ༧ࢉɺ࣌ؒ
 ͲΕ΋଍Γͳ͍ͷ͕;ͭ͏

  31. εϐʔυΛੜΈग़͢ ͭͷߟ͑ํ

  32. ໎ͬͨΒ୯७ͳํΛબͿ

  33. ໎ͬͨΒ୯७ͳํΛબͿ w ٕज़બఆ͢Δͱ͖ʹΑ͋͘Δ࿩ w ߴػೳ͚ͩͲෳࡶͳ΋ͷWT௿ػೳ͚ͩ Ͳ୯७ͳ΋ͷ w ྫɿߏ੒؅ཧπʔϧ$IFGWT"OTJCMF

  34. ໎ͬͨΒ୯७ͳํΛબͿ w Ͱ͖ΔݶΓ৘ใΛूΊͯ΋ܾΊΒΕͳ͍ͱ͖
 ʮ௿ػೳ͚ͩͲ୯७ͳ΋ͷʯΛબͿ w ୯७Ͱ͋Δ͜ͱֶशίετ͕௿͍΋ͷ͸
 ୹ظతʹ੒Ռ͕ग़Δ w ൒೥ʙ೥ઌͷϝϦοτΑΓ΋ࠓ͕େࣄ

  35. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢

  36. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢ w ͍͔ͭ࢖ΘΕΔ͔΋͠Εͳ͍ίʔυΛ
 ࠓ४උ͓͍ͯͯ͠΋ʜ ेதീ۝࢖ΘΕͳ͍ɻɻ ݁ہɺ౤Լͨ࣌ؒ͠͸ճऩͰ͖ͣʣ

  37. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢ w ͍ͭདྷΔ͔෼͔Βͳ͍ະདྷͷ͜ͱΑΓ΋ɺ
 ͙͢໨ͷલͷ੒ޭͷ΄͏͕ѹ౗తʹॏཁ w ໨ͷલͷ੒ޭ͕͋ͬͯ࢝Ίͯɺ
 কདྷΛݟӽͨ͠վળΛ͢Δҙຯ͕ग़ͯ͘Δ

  38. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢ w ࠷ߴΛ໨ࢦ͢ͱɺ
 ͍ͭ·Ͱܦͬͯ΋ऴΘΒͳ͍ w ׂͰग़ͯ͠ɺϢʔβͷ൓ԠΛݟΔ΂͖

  39. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢ %POFJTCFUUFSUIBOQFSGFDU ׬ᘳΛ໨ࢦ͢ΑΓɺ·ͣऴΘΒͤΖ 'BDFCPPLͷϞοτʔͷͻͱͭ

  40. ࠷ߴͩͱࢥ͏΋ͷͷ
 ׂͰग़͢ ૣ͗͢Δ࠷దԽ͸ॾѱͷࠜݯ %&,OVUI w ࣅ͍ͯΔ֨ݴɾߟ͑ํ͕ͨ͘͞Μ͋Δ :"(/* :BL4IBWJOH

  41. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ

  42. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ w ϝϧΧϦͷ৔߹ɺϗʔϜը໘ʹදࣔ͞ΕΔ
 ঎඼ͷҰཡɺग़඼ߪೖͷૢ࡞ w ਅͬઌʹ࡞Γ࢝Ίͯɺ
 Կ౓΋Կ౓΋࡞Γͳ͓͞Εͯચ࿅͞Εͨ

  43. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ w ͋Δ෦෼ʹϑΥʔΧε͢Δͱ͍͏͜ͱ͸ɺ
 ୅ΘΓʹԿΛলུ͢Δ͔ͱ͍͏͜ͱ

  44. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ w ΞϓϦެ։Λٸ͙ͨΊɺ
 ੝ΓࠐΉػೳΛݶք·Ͱߜͬͨ ެ։࣌ͷ"1*ͷ਺ छྨ ݱࡏͷ਺ छྨ ΄΅ഒ

  45. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ w େ୾ʹলུͨ͜͠ͱɿ
 ެ։࣌ͷΠϯϑϥ w ͘͞ΒΠϯλʔωοτͷ
 ߴੑೳͳઐ༻αʔό୆ʹ͢΂ͯ٧ΊࠐΈ

  46. ࠷΋ॏཁͳ͜ͱʹ ϑΥʔΧε͢Δ w ຊ൪؀ڥΛ೔ͰߏஙͰ͖ͨ w ҆Ձˍखؒ͸ͳ͔ͬͨ΋ͷͷɺ
 ϲ݄Ͱෛՙͷݶքʹ w ͔͠͠ɺΠϯϑϥ४උظ͕ؒݮͬͨ͜ͱ͸ɺ
 ݎ࿚ͳΠϯϑϥΛ࠷ॳ͔Β४උ͢ΔΑΓ


    ͣͬͱՁ஋͕͋Δ͜ͱͩͬͨ
  47. εϐʔυͷͨΊʹ
 ͢΂ͯΛࣺͯͳ͍Α͏ʹؾΛ͚ͭΔ

  48. ςετʹ͍ͭͯ w ςετ͸লུ͗͢͠ͳ͍ w 1)16OJUͰͲΜͳςετΛॻ͔͘ w අ༻ରޮՌͷߴ͍ςετΛॻ͘

  49. අ༻ରޮՌͷߴ͍ςετ w ։ൃऀͷηϯε͕໰ΘΕΔɻɻ w ະདྷͷ։ൃऀ ࣗ෼ࣗ਎΋ؚΉ ͕
 ͲΕ͚ͩٹ͑Δ͔ w ΧόϨοδॏࢹͰ͸ͳ͘


    ΤϯυπʔΤϯυͰਖ਼͠͞Λςετ͢Δ
  50. අ༻ରޮՌͷߴ͍ςετ w ΤϯυπʔΤϯυͷςετ͕͋Ε͹ɺ
 ҆৺ͯ͠ݩίʔυΛେ୾ʹมߋͰ͖Δ w ༏Εͨςετ͕͋Ε͹ɺ
 εϐʔυͷͨΊʹίʔυ඼࣭͕٘ਜ਼ʹͳͬͯ΋
 ڐ༰Ͱ͖Δ

  51. ·ͱΊ

  52. ·ͱΊ w 1)1Ͱૉૣ͘ɺϋΠύϑΥʔϚϯεʹɺ
 εέʔϧ͢ΔαʔϏεΛ࡞ΕΔ w ࣗ৴Λ΋ͬͯ1)1ͰϓϩμΫτΛ࡞Γ· ͠ΐ͏ʂ

  53. w ·ͨ೥ޙɺ1)1ίϛϡχςΟʹ
 ϑΟʔυόοΫͰ͖ΔΑ͏ʹؤுΓ·͢ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠