$30 off During Our Annual Pro Sale. View Details »

WordCampOsaka 2018 中規模案件のこなしかた

WordCampOsaka 2018 中規模案件のこなしかた

WordCampOsaka 2018 中規模案件のこなしかた

Yousan_O

June 01, 2018
Tweet

More Decks by Yousan_O

Other Decks in Programming

Transcript

  1. தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    WordCamp Osaka 2018

    View Slide

  2. ෱ౡݝࡏॅʢϦϞʔτʣ
    ΠϯϑϥɺϓϩάϥϜ
    ݄·Ͱݐઃۀʹۈ຿
    ݄͔ΒϑϦʔϥϯεʹ
    ࣗݾ঺հ

    View Slide

  3. ࣗݾ঺հ

    View Slide

  4. ݱࡏͷۀ຿
    ϓϩάϥϜ૊ΈࠐΈ
    γεςϜ։ൃ
    αʔόߏங
    αʔόอक
    αʔόܥࣄۀ ΢Σϒ੍࡞ࣄۀ
    WordPress

    View Slide

  5. தن໛Ҋ݅ͱਫฏ෼ۀɺਨ௚෼ۀ
    πʔϧʢ%PDLFSɺ$*ʣΛ࢖͏ͱศར
    ͓ޓ͍Λଚॏ͠Α͏
    ࠓ೔͓఻͍͑ͨ͜͠ͱ

    View Slide

  6. খن໛Ҋ݅ͱதن໛Ҋ݅
    ΞδΣϯμ
    தن໛Ҋ݅ͷ໰୊఺
    தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    ·ͱΊ

    View Slide

  7. খن໛Ҋ݅ͱதن໛Ҋ݅
    ΞδΣϯμ
    தن໛Ҋ݅ͷ໰୊఺
    தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    ·ͱΊ

    View Slide

  8. খن໛Ҋ݅ʹ͍ͭͯ

    View Slide

  9. খن໛Ҋ݅ʹ͍ͭͯ

    View Slide

  10. খن໛Ҋ݅ͷνʔϜϏϧυ
    σΟϨΫλʔ σβΠφʔ ίʔμʔ
    ΤϯδχΞʢ݉೚ʣ
    σβΠϯ σβΠϯΧϯϓ

    View Slide

  11. Ͱ͸தن໛Ҋ݅ͱ͸ʁ

    View Slide

  12. νʔϜϝϯόʔਓҎ্
    ෼ۀ
    தن໛Ҋ݅

    View Slide

  13. தن໛Ҋ݅ͷྫ

    View Slide

  14. தن໛Ҋ݅ͷྫ

    View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. தن໛Ҋ݅ྫͷνʔϜϏϧυ
    σΟϨΫλʔ
    σβΠφʔ ίʔμʔ
    σβΠϯ σβΠϯΧϯϓ
    ϓϩάϥϚʔ x 2 ςελʔ x 3
    ςετґཔ
    ࢓༷

    View Slide

  19. தن໛Ҋ݅ͷྫ

    View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. தن໛Ҋ݅ྫͷνʔϜϏϧυ
    σΟϨΫλʔ
    σβΠφʔɾίʔμʔ
    ϓϩάϥϚʔ x 2 ςελʔ x 3
    ςετґཔ
    ࢓༷

    View Slide

  25. খن໛
    ৬छ͕ඃΒͳ͍
    ֓Ͷ໊ҎԼ
    தن໛
    ৬छ͕ඃΔ
    ֓Ͷ໊Ҏ্
    খن໛WTதن໛

    View Slide

  26. খن໛Ҋ݅Ͱ͸ผͷ৬छΛͦΕͧΕ༻ҙ
    ৬छͷֻ͚࣋ͪ͋ΓʢσβΠφʔ͞Μ͕ίʔσΟϯάɺσΟϨ
    Ϋλʔ͞Μ͕σβΠϯɺίʔσΟϯάʣ
    தن໛Ҋ݅Ͱ͸ಉ͡৬छͰ෼ۀ͕ൃੜ
    ίʔμʔ͞Μ͕ख෼͚ͯ͠ରॲ
    ΤϯδχΞ͕ਓ
    தن໛Ҋ݅ͱ෼ۀ

    View Slide

  27. ਨ௚෼ۀͱਫฏ෼ۀ

    View Slide

  28. νʔϜϝϯόʔ͕ҧ͏৬ۀͷ৔߹
    ਨ௚෼ۀ
    ಉ͡৬छͷ෼ۀ
    ਫฏ෼ۀ
    ਨ௚෼ۀͱਫฏ෼ۀ
    σΟϨΫλʔ σβΠφʔ ίʔμʔ
    ΤϯδχΞʢ݉೚ʣ
    ϓϩάϥϚʔ x 2

    View Slide

  29. খن໛Ҋ݅
    ਨ௚෼ۀͷΈ
    தن໛Ҋ݅
    ਫฏ෼ۀ͋Γ
    খن໛WTதن໛

    View Slide

  30. খن໛Ҋ݅ͱதن໛Ҋ݅
    ΞδΣϯμ
    தن໛Ҋ݅ͷ໰୊఺
    தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    ·ͱΊ

    View Slide

  31. தن໛Ҋ݅Ͱͷ໰୊఺

    View Slide

  32. ͓ޓ͍ͷྖҬ͕ҟͳΔ
    ΍Δ΂͖λεΫ͕͸͖ͬΓ͍ͯ͠Δ
    িಥ͠ʹ͍͘
    ਨ௚෼ۀͰ͸
    ͓ޓ͍Λଚॏ͠Α͏Ͷʂ

    View Slide

  33. ͓ޓ͍ͷྖҬ͕ॏෳ͢Δ
    ίʔυϨϕϧͰিಥ͢Δ
    όάमਖ਼ͷᐆດʹͳΔˡόάͷݪҼ͸ʜʁ
    ਫฏ෼ۀͰ͸
    ͜ͷόά͸Կ͕ݪҼʁ

    View Slide

  34. ͓ޓ͍ͷྖҬ͕ॏෳ͢Δ
    ίʔυϨϕϧͰিಥ͢Δ
    όάमਖ਼ͷᐆດʹͳΔˡόάͷݪҼ͸ʜʁ
    όάͷ੹೚Λ௥ٻ࢝͠ΊΔ
    ਫฏ෼ۀͰ͸
    όάຒΊͨͷ୭΍ͶΜʂ
    > git blame

    View Slide

  35. ͋Δ৔ॴͷίʔυ͕ଞਓͷίʔυΛഁյ͢Δ
    $44ͷ่յ
    ʮͱΓ͋͑ͣJNQPSUBOUʯ
    ਓͷ$44ׂ͕ΓࠐΜͰ͘Δ
    ίʔσΟϯάن໿ΛकΒͳ͍
    ໊ࢦ͠ͷόάใࠂ
    িಥίʔυϨϕϧͰͷিಥ
    margin: 0; important!
    position: relative; important
    font-size: 1.2em; important!
    if (is_single()) return TRUE;
    else return false;

    View Slide

  36. ͋Δ৔ॴͷίʔυ͕ଞਓͷίʔυΛഁյ͢Δ
    $44ͷ่յ
    ʮͱΓ͋͑ͣJNQPSUBOUʯ
    ਓͷ$44ׂ͕ΓࠐΜͰ͘Δ
    ίʔσΟϯάن໿ΛकΒͳ͍
    ໊ࢦ͠ͷόάใࠂ
    িಥίʔυϨϕϧͰͷিಥ
    ϘέʂΧεʂ
    ϘέʂΧεʂ

    View Slide

  37. λεΫʮʢ୲౰ᓎҪʣ໰͍߹ΘͤϑΥʔϜ಺༰मਖ਼ʯ
    λεΫ̎ʮʢ୲౰ͻΖ͸͘ʣ໰͍߹ΘͤϑΥʔϜͷ$47ग़ྗʯ
    িಥλεΫ෼୲

    View Slide

  38. λεΫʮʢ୲౰ᓎҪʣ໰͍߹ΘͤϑΥʔϜ಺༰मਖ਼ʯ
    λεΫ̎ʮʢ୲౰ͻΖ͸͘ʣ໰͍߹ΘͤϑΥʔϜͷ$47ग़ྗʯ
    मਖ਼͕িಥ͢Δʂ
    িಥλεΫ෼୲
    PMԿͯ͠ΜͶΜʂ

    View Slide

  39. ݱ৔͕Ԍ্ʜ

    View Slide

  40. ਨ௚෼ۀͷͱ͖͸িಥ͠ʹ͍͘
    ਫฏ෼ۀ͢Δͱޮ཰͕Լ͕Δ
    ਓਓ㱠ਓ
    Ԍ্͠΍͍͢ݪҼ

    View Slide

  41. খن໛Ҋ݅ͱதن໛Ҋ݅
    ΞδΣϯμ
    தن໛Ҋ݅ͷ໰୊఺
    தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    ·ͱΊ

    View Slide

  42. ղܾͷྫ

    View Slide

  43. ίʔσΟϯάʹϧʔϧΛઃ͚Δ
    ίʔυن໿
    ໋໊نଇΛ࡞Δ
    ࣾ಺ΨΠυϥΠϯ
    #&.
    ڭՊॻʢϦʔμϒϧίʔυ·͡ͰΦεεϝʣ
    িಥίʔυϨϕϧ
    if (is_single()) return TRUE;
    else return false;
    margin: 0; important!
    position: relative; important
    font-size: 1.2em; important!

    View Slide

  44. View Slide

  45. πʔϧΛ࢖ͬͨن໿४ڌ

    View Slide

  46. View Slide

  47. ͓ޓ͍Λิ͍߹͑ΔνʔϜ࡞Γ
    όάΛ଀ΜͰਓΛ଀·ͣ
    HJUCMBNFʢ੹ΊΔʣͱHJUBOOPUBUFʢ٭஫ʣ
    ʮ୭͕ͳͥ͜ͷόάΛຒΊࠐΜ͔ͩʯΛ໌Β͔ʹ͢Δ͕ɺνʔ
    Ϝ಺Ͱઈରʹ੹Ίͳ͍ʢ৑ஊ͸0,ɻͨͩ͠৑ஊͰ༗Δ͜ͱΛ
    ໌Β͔ʹͯ͠όάΛຒΊͨ͜ͱΛ੹Ίͳ͍ʣ
    িಥλεΫ෼୲ιϑτͷղܾ

    View Slide

  48. ίʔσΟϯάن໿ͷಋೖ
    ΈΜͳͷ؀ڥͰಉ͡Α͏ʹಈ͘͜ͱͷಋೖʢ΂͖౳ੑʣ
    ࣗಈςετ؀ڥͷಋೖ
    িಥλεΫ෼୲ϋʔυղܾ

    View Slide

  49. ΂͖౳ੑ
    ႈ౳ੑ

    View Slide

  50. %PDLFSͷಋೖʢ7BHSBOUʣ
    8PSE1SFTTͷ৔߹ɺσʔλϕʔεͷಉظγεςϜಋೖ
    ΂͖౳ੑͷ֬อ

    View Slide

  51. ։ൃ؀ڥ

    View Slide

  52. ϩʔΧϧ։ൃ؀ڥ
    ຊ൪αʔό
    ։ൃαʔό
    MAMP Vagrantʢڞ༻ʣ Vagrantʢݸผʣ Docker
    ΂͖౳ੑͳ͠ ΂͖౳ੑͳ͠ ΂͖౳ੑͳ͠ ΂͖౳ੑ͋Γ ΂͖౳ੑ͋Γ
    ೉қ౓: ௿ ೉қ౓: த ೉қ౓: த ೉қ౓: ߴ ೉қ౓: ߴ
    Πέͯͳ͍ ͪΐͬͱָ͍͠ ָ͍͠ ָ͍͠ ΊͬͪΌָ͍͠ʂ

    View Slide

  53. ϩʔΧϧ։ൃ؀ڥ
    ຊ൪αʔό
    ։ൃαʔό
    MAMP Vagrantʢڞ༻ʣ Vagrantʢݸผʣ Docker
    ΂͖౳ੑͳ͠ ΂͖౳ੑͳ͠ ΂͖౳ੑͳ͠ ΂͖౳ੑ͋Γ ΂͖౳ੑ͋Γ
    ೉қ౓: ௿ ೉қ౓: த ೉қ౓: த ೉қ౓: ߴ ೉қ౓: ߴ
    Πέͯͳ͍ ͪΐͬͱָ͍͠ ָ͍͠ ָ͍͠ ΊͬͪΌָ͍͠ʂ
    DockerೖΕͯΈΑ͏ʂ

    View Slide

  54. ਨ௚෼ۀͱਫฏ෼ۀͱ։ൃ؀ڥ
    ਨ௚෼ߦࣄ͸ႈ౳ੑʹͩ͜ΘΒͳͯ͘0,
    ͦΕͧΕͷ৬छ͕ಠࣗͷ։ൃ؀ڥͰ0,
    ։ൃ༻Ϩϯλϧαʔόɺ9".11ɺ.".1ɺ
    7BHSBOUɺ%PDLFS
    ςετΛߦ͑Δ؀ڥͮ͘Γ
    શൠతʹΤϯδχΞʢϑϩϯτΤϯδχΞɺαʔό
    αΠυΤϯδχΞʣͷαϙʔτ͕ඞਢ
    ΤϯδχΞνʔϜ͕αϙʔτ͢Δҙࣝ
    %PDLFSಋೖ࣌ͷ஫ҙ఺

    View Slide

  55. $*
    $JSDMF$*
    ϓϥΠϕʔτϦϙδτϦ΋੍࣌ؒݶ෇͖ແྉ
    %PDLFSαϙʔτ
    %PDLFSΛऔΓೖΕ͍ͯΕ͹ͦͷ··࢖͑Δ
    ࣗಈςετ؀ڥ

    View Slide

  56. ։ൃ؀ڥ

    View Slide

  57. View Slide

  58. $JSDMF$*Λ࢖ͬͨྫ

    View Slide

  59. ςετͱ
    εΫϦʔϯγϣοτ

    View Slide

  60. 1)1Ͱಈ͘ςετπʔϧ
    ࣗવݴޠͬΆ͘ςετ͕ॻ
    ͚Δ
    8PSE1SFTTͱ૬ੑ͕ྑ͍
    γφϦΦ͝ͱʹεΫγϣશ
    ࣗಈՄೳ
    #FIBU

    View Slide

  61. εΫγϣΊͬͪΌ͍͍Ͱ͢
    ࣮֬ͳ֬ೝ
    ػೳมߋ
    ඦฉ͸Ұݟʹ͔ͣ͠
    εΫϦʔϯγϣοτ

    View Slide

  62. ඇΤϯδχΞʹ΋ॻ͍ͯ΄͍͠
    σΟϨΫλʔ
    ςελʔ
    ͕ͩ೉͍͠
    #FIBU
    ͜Μͳͷແཧʂ

    View Slide

  63. σϞ

    View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. Ҋ݅ͷσΟϨΫλʔ͞Μ޲͚ʹ
    ϑΥʔΧε
    ୅உੑඇΤϯδχΞ
    όʔδϣϯΞοϓ࣌ʹ֬ೝΛ
    ؆ུԽ
    ςετπʔϧΛ࡞ͬͯΈͯ

    View Slide

  68. খن໛Ҋ݅ͱதن໛Ҋ݅
    ΞδΣϯμ
    தن໛Ҋ݅ͷ໰୊఺
    தن໛Ҋ݅ͷ͜ͳ͔ͨ͠
    ·ͱΊ

    View Slide

  69. ·ͱΊ

    View Slide

  70. ਫฏ෼ۀ͢Δͱதن໛
    தن໛͸িಥ͢Δ
    ϋʔυʢπʔϧʣͱιϑτʢਓؒؔ܎ʣͰղܾ͠Α͏
    શମΛ௨ͯ͠

    View Slide

  71. ྑ͍งғؾͮ͘Γ
    ίʔσΟϯάن໿ɺίʔσΟϯάϧʔϧͷࡦఆ
    $*ͷઃఆपΓ
    λεΫͷׂΓৼΓ
    σΟϨΫλʔͷิࠤɺٞࣄ࿥
    ΢ΣϒܥϓϩδΣΫτϚωʔδϟͷ࢓ࣄ

    View Slide

  72. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ࠙਌ձɺίϯτϦϏϡʔλʔσΠʹ΋ࢀՃ͠·͢ͷ
    Ͱɺ͓ؾܰʹ੠͔͚͍ͯͩ͘͞ʂͥͻʂ

    View Slide

  73. εΩοϓ

    View Slide

  74. ίʔσΟϯάɺϓϩάϥϜ෦෼ͷ੹೚ऀͷબఆ
    ໊শɺϦʔυΤϯδχΞɺϓϩδΣΫτϚωʔδϟɺϦʔμʔ
    ϝϯόʔਤͷ࡞੒
    ϝϯόʔਤΛ࡞੒͢Δ͜ͱͰҙࣝ෇͚͕௙Δ
    ͨͩ͠੹೚ڥքΛ໌֬ʹͤͣɺ౿Έೖͬͯ΋ॿ͚߹͏νʔϜʹɻ
    શମΛ௨ͯ͠

    View Slide