WordFes2017のスライドです。 実際にコーディング規約を制作現場に導入してみて感じたこと、コーディング規約を導入するメリットについての内容です。
੍࡞ݱͷ͜Ε͔Β։ൃϫʔΫϑϩʔͱίʔσΟϯάن201710݄28 @ WordFes Nagoya 2017
View Slide
ૣͰ͕͢
λϒεϖʔε
ෆໟͳίϛοτ…
໘ͳϨϏϡʔ…
੍࡞ݱͬͱշదʹ…ʂ
ࠓ͓͍͑ͨ͜͠ͱ
ࠓ͓͍͑ͨ͜͠ͱ• ։ൃϫʔΫϑϩʔͷΩʔϫʔυ• πʔϧָ͍͠Ͱ͢• λϒεϖʔεͷղܾ• ݱಋೖίετ
ࣗݾհɹ
ࣗݾհ• ਆ֞ɹ૱• ϓϩάϥϜɺαʔό• Web੍࡞ձࣾ• ओʹWordPressͰݱ10
ࣗݾհ• ࢁݝͷձࣾ• ʢ΄΅ʣϑϧϦϞʔτͰౡݝࡏॅ• ͓٬͞Μ͋ͪͪ͜ʹ
࣭͍ͤͯͩ͘͞͞
օ͞ΜԿ͞Μʁ• σΟϨΫλʔ͞ΜʢӦۀɺϚωʔδϟʣ• σβΠφʔ͞Μ• ίʔμʔ͞Μʢϑϩϯτ͞Μʣ• ϓϩάϥϚɺαʔό͞Μ
ΞδΣϯμ• ։ൃϫʔΫϑϩʔʹ͍ͭͯ• ίʔσΟϯάنʹ͍ͭͯ• ಋೖͷίετ࣮ྫ
։ൃϫʔΫϑϩʔʹ͍ͭͯ
։ൃϫʔΫϑϩʔʹ͍ͭͯ• ։ൃͷྲྀΕʢϑϩʔʣ• ݮ• ϛεܰݮ• ָ͍͠
όʔδϣϯཧCIࣗಈԽςετπʔϧPHPCS
ಛʹGit
੍࡞ͰGit͍ͬͯ·͔͢ʁ• ͍ͬͯΔ• ͍ͬͯͳ͍
GitͱGitͷϫʔΫϑϩʔ• Git flow• GitHub flow
ࣗࣾͷGitͷ͍ํ• ϒϥϯνͷৼΓํΛܾΊΔ• جຊGit flowʹԊ͏• master, develop, feature, release• ϚʔδϓϧϦΫΤετͱϨϏϡʔ
։ൃϫʔΫϑϩʔ• ϫʔΫϑϩʔ։ൃͷྲྀΕ• ϫʔΫϑϩʔࢧԉͷπʔϧ͕ͨ͘͞Μ͋Δ• शಘʹ͕͔͔࣌ؒΔ• शಘ͢ΔͱࣗಈԽͰ͖ͯศར
ΞδΣϯμ• ։ൃϫʔΫϑϩʔʹ͍ͭͯ• ίʔσΟϯάنʹ͍ͭͯ• ಋೖͷίετ
ίʔσΟϯάن
ίʔσΟϯάنͬͯ·͢ʁ• ݱͰίʔσΟϯάنͬͯ·͢• ͳΜͱͳ͍ͬͯ͘·͢• ࠓճ͡Ίͯฉ͖·ͨ͠
ίʔσΟϯάنͱ• ίʔυΛॻ্͘ͰͷϧʔϧʢStandardsʣ• PHPͱ͔WordPressͱ͔Ͱఆٛ• CSSͩͱBEMͱ͔• Ͱ͋Εݫ֨
WordPressͷίʔσΟϯάن• PHP ίʔσΟϯά• ΞΫηγϏϦςΟίʔσΟϯά• CSS ίʔσΟϯά• HTML ίʔσΟϯά• JavaScript ίʔσΟϯά
WordPressίʔσΟϯάن
ίʔσΟϯάنྫ
ͪΌΜͱௐ·͠ΐ͏ʂ
ίʔσΟϯάنͷࣗಈνΣοΫ• ΤσΟλ• πʔϧ• Git࿈ܞ
ΤσΟλͰͷྫ
ίʔσΟϯάنΛἧ͑Δͱ• ଞͷਓ͕ݟͨ࣌ʹ• ݟ͍͢• ϛε͕ݮΔ• έϯΧʹͳΒͳ͍• ʮଞͷਓʯ === ʮ3ޙͷࣗʯ
ಋೖͷϝϦοτ• ϛεͷܰݮ• ೋҎ߱ͷίετݮ
ݱಋೖͷίετ
Έͳ͞Μͷਓ݅අ͍͘ΒͰ͔͢ʁ• ͔Βͳ͍ɺॹ• ~ 3,000ԁ / ࣌ؒ• 3,001ԁ ~ 8,000 ԁ / ࣌ؒ• 8,000 ԁ Ҏ্ / ࣌ؒ• ਓ݄ܭࢉ͕ྑ͍ͱݶΒͳ͍͕…
ਓ݄୯Ձ• Ұ8࣌ؒ 20 => 160࣌ؒ / ݄• 3,000ԁ / ࣌ؒ => 48ສ / ݄• 5,000ԁ / ࣌ؒ => 80ສ / ݄• 8,000ԁ / ࣌ؒ => 128ສ / ݄
8,000ԁ…
࣮ྫ
࣮ྫ• WordPressΛͬͨγεςϜ։ൃ• ςʔϚࢧڅ• 2.4ਓ݄• ϓϩάϥϚ3ਓ͕ࢀՃ
ίʔσΟϯάنͷಋೖʹֻ͔Δίετ• शಘɺಋೖɺઃఆʹ80࣌ؒ• Ұ8࣌ؒ => 10 => 0.5ਓ݄• Ͱɺ͍͘Βʁ
࣮ࡍͷඅ༻͝૾ʹ͓·͔ͤ͠·͢
࣮ಋೖͯ͠• ։ൃָ͕͘͠ͳͬͨ• Πϯσϯτ͕ղܾͨ͠• ίʔσΟϯάن͕͑͋Δ
ࠓͷ·ͱΊ• ։ൃϫʔΫϑϩʔͷπʔϧ• WordPress༻ͷίʔσΟϯάن• ϛεܰݮʂೋ͔Βίετݮʂ• 2.4ਓ݄Ͱ0.5ਓ݄
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
͔͜͜ΒআҊ
PRͱCI
ϓϧϦΫΤετ
ࣗಈςετ
CI• ܧଓతΠϯςάϨʔγϣϯ• ιʔείʔυʹΤϥʔ͕ςετΛࣗಈԽ• TravisCI• CircleCI• Jenkins
CIͰͰ͖Δ͜ͱ• PHPίʔυͷ୯ମςετࣗಈԽ• ϒϥβͷςετࣗಈԽ• ࣗಈσϓϩΠ
ϓϧϦΫΤετͱCI• ϓϧϦΫΤετൃߦ࣌ʹςετ• ιʔείʔυͷਖ਼ੑςετ• ιʔείʔυͷίʔσΟϯάنςετ• ςετʹ௨͍ͬͯΕϚʔδ
ࣗࣾͰ͍ͬͯΔπʔϧ• Docker (ϩʔΧϧ։ൃ)• GitHub (՝ۚͰϓϥΠϕʔτϦϙδτϦ)• CircleCI (ແྉͰϓϥΠϕʔτ)