WordCampOsaka 2018 中規模案件のこなしかた
தنҊ݅ͷ͜ͳ͔ͨ͠WordCamp Osaka 2018
View Slide
ౡݝࡏॅʢϦϞʔτʣΠϯϑϥɺϓϩάϥϜ݄·Ͱݐઃۀʹۈ݄͔ΒϑϦʔϥϯεʹࣗݾհ
ࣗݾհ
ݱࡏͷۀϓϩάϥϜΈࠐΈγεςϜ։ൃαʔόߏஙαʔόอकαʔόܥࣄۀ Σϒ੍࡞ࣄۀWordPress
தنҊ݅ͱਫฏۀɺਨۀπʔϧʢ%PDLFSɺ$*ʣΛ͏ͱศར͓ޓ͍Λଚॏ͠Α͏ࠓ͓͍͑ͨ͜͠ͱ
খنҊ݅ͱதنҊ݅ΞδΣϯμதنҊ݅ͷதنҊ݅ͷ͜ͳ͔ͨ͠·ͱΊ
খنҊ݅ʹ͍ͭͯ
খنҊ݅ͷνʔϜϏϧυσΟϨΫλʔ σβΠφʔ ίʔμʔΤϯδχΞʢ݉ʣσβΠϯ σβΠϯΧϯϓ
ͰதنҊ݅ͱʁ
νʔϜϝϯόʔਓҎ্ۀதنҊ݅
தنҊ݅ͷྫ
தنҊ݅ྫͷνʔϜϏϧυσΟϨΫλʔσβΠφʔ ίʔμʔσβΠϯ σβΠϯΧϯϓϓϩάϥϚʔ x 2 ςελʔ x 3ςετґཔ༷
தنҊ݅ྫͷνʔϜϏϧυσΟϨΫλʔσβΠφʔɾίʔμʔϓϩάϥϚʔ x 2 ςελʔ x 3ςετґཔ༷
খن৬छ͕ඃΒͳ͍֓Ͷ໊ҎԼதن৬छ͕ඃΔ֓Ͷ໊Ҏ্খنWTதن
খنҊ݅Ͱผͷ৬छΛͦΕͧΕ༻ҙ৬छͷֻ͚࣋ͪ͋ΓʢσβΠφʔ͞Μ͕ίʔσΟϯάɺσΟϨΫλʔ͞Μ͕σβΠϯɺίʔσΟϯάʣதنҊ݅Ͱಉ͡৬छͰۀ͕ൃੜίʔμʔ͞Μ͕ख͚ͯ͠ରॲΤϯδχΞ͕ਓதنҊ݅ͱۀ
ਨۀͱਫฏۀ
νʔϜϝϯόʔ͕ҧ͏৬ۀͷ߹ਨۀಉ͡৬छͷۀਫฏۀਨۀͱਫฏۀσΟϨΫλʔ σβΠφʔ ίʔμʔΤϯδχΞʢ݉ʣϓϩάϥϚʔ x 2
খنҊ݅ਨۀͷΈதنҊ݅ਫฏۀ͋ΓখنWTதن
தنҊ݅Ͱͷ
͓ޓ͍ͷྖҬ͕ҟͳΔΔ͖λεΫ͕͖ͬΓ͍ͯ͠Δিಥ͠ʹ͍͘ਨۀͰ͓ޓ͍Λଚॏ͠Α͏Ͷʂ
͓ޓ͍ͷྖҬ͕ॏෳ͢ΔίʔυϨϕϧͰিಥ͢Δόάमਖ਼ͷᐆດʹͳΔˡόάͷݪҼʜʁਫฏۀͰ͜ͷόάԿ͕ݪҼʁ
͓ޓ͍ͷྖҬ͕ॏෳ͢ΔίʔυϨϕϧͰিಥ͢Δόάमਖ਼ͷᐆດʹͳΔˡόάͷݪҼʜʁόάͷΛٻ࢝͠ΊΔਫฏۀͰόάຒΊͨͷ୭ͶΜʂ> git blame
͋Δॴͷίʔυ͕ଞਓͷίʔυΛഁյ͢Δ$44ͷ่յʮͱΓ͋͑ͣJNQPSUBOUʯਓͷ$44ׂ͕ΓࠐΜͰ͘ΔίʔσΟϯάنΛकΒͳ໊͍ࢦ͠ͷόάใࠂিಥίʔυϨϕϧͰͷিಥmargin: 0; important!position: relative; importantfont-size: 1.2em; important!if (is_single()) return TRUE;else return false;
͋Δॴͷίʔυ͕ଞਓͷίʔυΛഁյ͢Δ$44ͷ่յʮͱΓ͋͑ͣJNQPSUBOUʯਓͷ$44ׂ͕ΓࠐΜͰ͘ΔίʔσΟϯάنΛकΒͳ໊͍ࢦ͠ͷόάใࠂিಥίʔυϨϕϧͰͷিಥϘέʂΧεʂϘέʂΧεʂ
λεΫʮʢ୲ᓎҪʣ͍߹ΘͤϑΥʔϜ༰मਖ਼ʯλεΫ̎ʮʢ୲ͻΖ͘ʣ͍߹ΘͤϑΥʔϜͷ$47ग़ྗʯিಥλεΫ୲
λεΫʮʢ୲ᓎҪʣ͍߹ΘͤϑΥʔϜ༰मਖ਼ʯλεΫ̎ʮʢ୲ͻΖ͘ʣ͍߹ΘͤϑΥʔϜͷ$47ग़ྗʯमਖ਼͕িಥ͢ΔʂিಥλεΫ୲PMԿͯ͠ΜͶΜʂ
ݱ͕Ԍ্ʜ
ਨۀͷͱ͖িಥ͠ʹ͍͘ਫฏۀ͢Δͱޮ͕Լ͕Δਓਓ㱠ਓԌ্͍͢͠ݪҼ
ղܾͷྫ
ίʔσΟϯάʹϧʔϧΛઃ͚Δίʔυن໋໊نଇΛ࡞ΔࣾΨΠυϥΠϯ#&.ڭՊॻʢϦʔμϒϧίʔυ·͡ͰΦεεϝʣিಥίʔυϨϕϧif (is_single()) return TRUE;else return false;margin: 0; important!position: relative; importantfont-size: 1.2em; important!
πʔϧΛͬͨن४ڌ
͓ޓ͍Λิ͍߹͑ΔνʔϜ࡞ΓόάΛΜͰਓΛ·ͣHJUCMBNFʢΊΔʣͱHJUBOOPUBUFʢ٭ʣʮ୭͕ͳͥ͜ͷόάΛຒΊࠐΜ͔ͩʯΛ໌Β͔ʹ͢Δ͕ɺνʔϜͰઈରʹΊͳ͍ʢஊ0,ɻͨͩ͠ஊͰ༗Δ͜ͱΛ໌Β͔ʹͯ͠όάΛຒΊͨ͜ͱΛΊͳ͍ʣিಥλεΫ୲ιϑτͷղܾ
ίʔσΟϯάنͷಋೖΈΜͳͷڥͰಉ͡Α͏ʹಈ͘͜ͱͷಋೖʢ͖ੑʣࣗಈςετڥͷಋೖিಥλεΫ୲ϋʔυղܾ
͖ੑႈੑ
%PDLFSͷಋೖʢ7BHSBOUʣ8PSE1SFTTͷ߹ɺσʔλϕʔεͷಉظγεςϜಋೖ͖ੑͷ֬อ
։ൃڥ
ϩʔΧϧ։ൃڥຊ൪αʔό։ൃαʔόMAMP Vagrantʢڞ༻ʣ Vagrantʢݸผʣ Docker͖ੑͳ͠ ͖ੑͳ͠ ͖ੑͳ͠ ͖ੑ͋Γ ͖ੑ͋Γқ: қ: த қ: த қ: ߴ қ: ߴΠέͯͳ͍ ͪΐͬͱָ͍͠ ָ͍͠ ָ͍͠ ΊͬͪΌָ͍͠ʂ
ϩʔΧϧ։ൃڥຊ൪αʔό։ൃαʔόMAMP Vagrantʢڞ༻ʣ Vagrantʢݸผʣ Docker͖ੑͳ͠ ͖ੑͳ͠ ͖ੑͳ͠ ͖ੑ͋Γ ͖ੑ͋Γқ: қ: த қ: த қ: ߴ қ: ߴΠέͯͳ͍ ͪΐͬͱָ͍͠ ָ͍͠ ָ͍͠ ΊͬͪΌָ͍͠ʂDockerೖΕͯΈΑ͏ʂ
ਨۀͱਫฏۀͱ։ൃڥਨߦࣄႈੑʹͩ͜ΘΒͳͯ͘0,ͦΕͧΕͷ৬छ͕ಠࣗͷ։ൃڥͰ0,։ൃ༻Ϩϯλϧαʔόɺ9".11ɺ.".1ɺ7BHSBOUɺ%PDLFSςετΛߦ͑Δڥͮ͘ΓશൠతʹΤϯδχΞʢϑϩϯτΤϯδχΞɺαʔόαΠυΤϯδχΞʣͷαϙʔτ͕ඞਢΤϯδχΞνʔϜ͕αϙʔτ͢Δҙࣝ%PDLFSಋೖ࣌ͷҙ
$*$JSDMF$*ϓϥΠϕʔτϦϙδτϦ੍࣌ؒݶ͖ແྉ%PDLFSαϙʔτ%PDLFSΛऔΓೖΕ͍ͯΕͦͷ··͑Δࣗಈςετڥ
$JSDMF$*Λͬͨྫ
ςετͱεΫϦʔϯγϣοτ
1)1Ͱಈ͘ςετπʔϧࣗવݴޠͬΆ͘ςετ͕ॻ͚Δ8PSE1SFTTͱ૬ੑ͕ྑ͍γφϦΦ͝ͱʹεΫγϣશࣗಈՄೳ#FIBU
εΫγϣΊͬͪΌ͍͍Ͱ࣮֬͢ͳ֬ೝػೳมߋඦฉҰݟʹ͔ͣ͠εΫϦʔϯγϣοτ
ඇΤϯδχΞʹॻ͍ͯ΄͍͠σΟϨΫλʔςελʔ͕͍ͩ͠#FIBU͜Μͳͷແཧʂ
σϞ
Ҋ݅ͷσΟϨΫλʔ͞Μ͚ʹϑΥʔΧεஉੑඇΤϯδχΞόʔδϣϯΞοϓ࣌ʹ֬ೝΛ؆ུԽςετπʔϧΛ࡞ͬͯΈͯ
·ͱΊ
ਫฏۀ͢Δͱதنதنিಥ͢ΔϋʔυʢπʔϧʣͱιϑτʢਓؒؔʣͰղܾ͠Α͏શମΛ௨ͯ͠
ྑ͍งғؾͮ͘ΓίʔσΟϯάنɺίʔσΟϯάϧʔϧͷࡦఆ$*ͷઃఆपΓλεΫͷׂΓৼΓσΟϨΫλʔͷิࠤɺٞࣄΣϒܥϓϩδΣΫτϚωʔδϟͷࣄ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ࠙͠ձɺίϯτϦϏϡʔλʔσΠʹࢀՃ͠·͢ͷͰɺ͓ؾܰʹ͔͚͍ͯͩ͘͞ʂͥͻʂ
εΩοϓ
ίʔσΟϯάɺϓϩάϥϜ෦ͷऀͷબఆ໊শɺϦʔυΤϯδχΞɺϓϩδΣΫτϚωʔδϟɺϦʔμʔϝϯόʔਤͷ࡞ϝϯόʔਤΛ࡞͢Δ͜ͱͰҙ͚͕ࣝΔͨͩ͠ڥքΛ໌֬ʹͤͣɺ౿Έೖͬͯॿ͚߹͏νʔϜʹɻશମΛ௨ͯ͠