Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Craft CMSの良いとこと
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tamshow
July 20, 2017
Programming
690
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Craft CMSの良いとこと
webっちゃ! Vol.18の発表で使用したスライドです。
tamshow
July 20, 2017
More Decks by tamshow
See All by tamshow
HTMLコーディングから考える エントリーフォームの最適化
tamurashogo
3
300
Other Decks in Programming
See All in Programming
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.6k
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
200
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
110
数百円から始めるRuby電子工作
tarosay
0
110
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
640
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
0
160
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1k
テーブルをDELETEした
yuzneri
0
120
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
200
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
220
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
180
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
470
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
30 Presentation Tips
portentint
PRO
1
360
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
600
Technical Leadership for Architectural Decision Making
baasie
3
450
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Transcript
גࣜձࣾϫΫάϛాଜষޗ $SBGU$.4ͷྑ͍ͱ͜ͱ
ాଜষޗ גࣜձࣾϫΫάϛ ϑϩϯτपΓͷίʔσΟϯάͳͲΛ୲
ຊͷ༰ $SBGU$.4ͱͲΜͳͷ͔ ެࣜϖʔδͷઆ໌ಈըΛݟͳ͕ΒσϞαΠτΛ৮ͬͯΈΑ͏ʂ IUUQTDSBGUDNTDPNGFBUVSFTNBUSJY ʢεϥΠυެࣜαΠτΛ༁͍ͯ͠·͕͢ɺࢀߟఔʹɺɺʣ
.BUSJY IUUQTDSBGUDNTDPNGFBUVSFTNBUSJY ߦྻ .BUSJY ϑΟʔϧυ ෳϑΟʔϧυΛϒϩοΫλΠϓ୯ҐͰՃͰ͖Δ
.BUSJY ೖΕ͕͑ࣗ༝ʹग़དྷΔ .BUSJYύϫϑϧͳϑΟʔϧυλΠϓͰॊೈͳίϯςϯπཧΛՄೳʹ͠ ·͢ɻ܁Γฦ͠ίϯςϯπϚϧνϓϧλΠϓΛҰॹͷ༰Ͱදࣔ͢Δͷ ʹ࠷దͰ͢ɻ ϒϩοΫͰ࡞͍ͬͯ͘ .BUSJYϑΟʔϧυϚϧνϒϩοΫͰ࡞ΒΕ͍ͯ·͢ɻ ϒϩοΫͭ·ͨෳͷΧελϜϑΟʔϧυͰ࡞ΒΕ͍ͯ·͢ɻ
.BUSJY ෳͷϒϩοΫλΠϓΛ࣋ͭ͜ͱ͕ग़དྷΔ ͭͷ.BUSJYϑΟʔϧυʹ ଟ͘ͷλΠϓͷϒϩοΫΛؚΊΔࣄ͕Ͱ͖·͢ɻ ੍࡞ऀ৽͍͠ίϯςϯπΛՃ͢Δ࣌ʹબͿ͜ͱ͕Ͱ͖·͢ɻ ॊೈੑ .BUSJYͷग़ྗͱͯॊೈͰ͢ɻ
.BUSJY Ͳ͜Ͱ༻Մೳ ༻ग़དྷΔՕॴΤϯτϦʔ͚ͩͰ͋Γ·ͤΜɻ $SBGUͷଞͷϑΟʔϧυλΠϓͱಉ༷ʹɺ ϢʔβʔɺΞηοτɺλάɺάϩʔόϧͰ༻͢Δ͜ͱ͕Ͱ͖·͢ɻ
-JWF1SFWJFX IUUQTDSBGUDNTDPNGFBUVSFTMJWFQSFWJFX ϥΠϒϓϨϏϡʔ ฤू༰ΛϦΞϧλΠϜʹ֬ೝՄೳ Լॻ͖ϖʔδͷϦϯΫڞ༗
-JWF1SFWJFX ࡞ۀதͷϓϨϏϡʔ ϥΠϒϓϨϏϡʔͰอଘલͷίϯςϯπͷදࣔΛ֬ೝͰ͖·͢ɻ Լॻ͖อଘͰϖʔδΛଞͷਓڞ༗͢Δ͜ͱͰ͖·͢ɻ
-PDBMJ[BUJPO IUUQTDSBGUDNTDPNGFBUVSFTMPDBMJ[BUJPO ϩʔΧϦθʔγϣϯ ඪ४ػೳͰ͢ͰʹଟݴޠԽ
ਖ਼͍͠ϩʔΧϦθʔγϣϯ $SBGU1SPΛ༻͢Δͱ63-ՕʑͷϑΟʔϧυͷ·ͰαΠτͷίϯς ϯπΛಛఆͷݴޠҬʹϩʔΧϥΠζ͢Δ͜ͱ͕Ͱ͖·͢ɻ -PDBMJ[BUJPO ͢ͰʹઃఆࡁΈ $SBGU1FSTPOBMͱ$SBGU$MJFOUϩέʔϧ୯ҐͰίϯςϯπΛ֨ೲͯ͠ ͍·͢ɻͰ͢ͷͰɺ൪ͷϩέʔϧʹରԠ͍ͤͨ͞߹͢Ͱʹઃఆ ͞Ε͍ͯ·͢ɻ
0OF$MJDL6QEBUJOH IUUQTDSBGUDNTDPNGFBUVSFTPOFDMJDLVQEBUJOH ϫϯΫϦοΫΞοϓσʔτ ·ΔͰຐ๏ͷΑ͏ͳΞοϓσʔτ
0OF$MJDL6QEBUJOH Ϙλϯ̍ͭͰΞοϓσʔτ ϘλϯͭͰΞοϓσʔτɺຐ๏ͷΑ͏ʹ؆୯Ͱ͢ɻ ࠷৽ͷػೳɺόάमਖ਼ɺηΩϡϦςΟڧԽͳͲϫϯΫϦοΫͰΫϥϑτΛߋ৽͠ ·͢ɻ
$VTUPN'JFMET IUUQTDSBGUDNTDPNGFBUVSFTDVTUPNpFMET ΧελϜϑΟʔϧυ ଟ༷ͳछྨͷϑΟʔϧυλΠϓ
ΧελϜϑΟʔϧυͰίϯςϯπΛఆٛ͢Δ $SBGU͔ΒίϯςϯπΛఆٛ͠·ͤΜɻ ੍࡞࣌ʹඞཁͳใΛදࣔ͢ΔͨΊͷΧελϜϑΟʔϧυΛઃఆ͢Δ͜ͱ ͰɺίϯςϯπΛఆٛ͠·͢ɻͦͯ͠$SBGUͷϑΟʔϧυλΠϓΛ४උ ͍ͯ͠·͢ɻ $VTUPN'JFMET ϑΟʔϧυΛҰݩཧ શͯͷΧελϜϑΟʔϧυҰݩཧ͞Ε͍ͯ·͢ɻ άϧʔϐϯάͨ͠Γཧ͢Δ͜ͱ͕Ͱ͖·͢ɻ ͦΕΒ࣮ࡍͷදࣔ͞ΕΔσʔλʹӨڹ͠·ͤΜɻ
ඞཁͳॴʹϑΟʔϧυΛׂΓͯΔ ͍͔ͭ͘ͷϑΟʔϧυΛ࡞͢ΔͱͦΕΒΛɺηΫγϣϯɺϢʔβʔɺ ΞηοτɺλάɺϚτϦοΫεϑΟʔϧυɺάϩʔόϧʹηοτ͢Δ͜ ͱ͕ग़དྷ·͢ɻ $VTUPN'JFMET
4FDUJPO5ZQFT IUUQTDSBGUDNTDPNGFBUVSFTTFDUJPOUZQFT ηΫγϣϯλΠϓ γϯάϧɺνϟϯωϧɺετϥΫνϟ ίϯςϯπʹ߹ΘͤͯదͳηΫγϣϯબՄೳ
దͳηΫγϣϯΛબ ͯ͢ͷίϯςϯπ͕ۉʹ࡞͞ΕΔͱݶΓ·ͤΜΑͶɻ $SBGUʹɺඞཁʹԠͯ͡ΤϯτϦʔΛཧͰ͖ΔछྨͷηΫγϣϯ͕ ༻ҙ͞Ε͍ͯ·͢ɻ 4FDUJPO5ZQFT
γϯάϧɺνϟϯωϧɺ͓ΑͼετϥΫνϟ γϯάϧҰճݶΓͷϖʔδΛ֨ೲ͠ɺνϟϯωϧ͍ΘΏΔΤϯτϦʔ Λ֨ೲ͠ɺετϥΫνϟ֊ߏΛ࣋ͭྨࣅͨ͠ΤϯτϦʔΛ֨ೲ͠ ·͢ɻඞཁʹԠͯ͡ɺγϯάϧɺνϟϯωϧɺετϥΫνϟΛ࡞Ͱ͖ ·͢ɻ 4FDUJPO5ZQFT
&OUSZ5ZQFT IUUQTDSBGUDNTDPNGFBUVSFTFOUSZUZQFT ΤϯτϦʔλΠϓ ͭͷηΫγϣϯͰෳͷίϯςϯπλΠϓΛ֨ೲ
ͭͷηΫγϣϯͰෳͷίϯςϯπλΠϓΛཧ νϟϯωϧͱετϥΫνϟෳͷλΠϓͷίϯςϯπΛ֨ೲͰ͖ɺΤ ϯτϦʔλΠϓͰఆٛͰ͖·͢ɻ ֤ΤϯτϦλΠϓɺಠࣗͷΧελϜϑΟʔϧυηοτΛऔಘ͠·͢ɻ &OUSZ5ZQFT
"TTFUT IUUQTDSBGUDNTDPNGFBUVSFTBTTFUT Ξηοτ ݟ͍͢Ξηοτཧ ΫϥυʹอଘՄೳɺҙͷαΠζมߋՄೳ
BTTFUTΛىಈ $SBGUʹɺ࠷খݶͷߏͷBTTFUTཧ͕Έࠐ·Ε͍ͯ·͢ɻ αϒϑΥϧμΛ࡞͠ɺϑΥϧμϑΝΠϧΛҠಈͨ͠Γɺ໊લΛมߋ ͨ͠ΓɺϦεταϜωΠϧදࣔͰϑΝΠϧΛදࣔͰ͖·͢ɻ "TTFUT ΫϥυʹอଘՄೳ $SBGU1SPɺ"NB[PO4ɺ3BDLTQBDF$MPVE'JMFTɺ(PPHMF$MPVE 4UPSBHFʹଓͰ͖·͢ɻΫϥυͷΞηοτΛઃఆ͢ΔͱɺϩʔΧϧ ͱฒΜͰදࣔ͞ΕɺϩʔΧϧͱΫϥυͷιʔεؒͰϑΥϧμϑΝΠ ϧΛҠಈ͢Δ͜ͱ͕Ͱ͖·͢ɻ
ը૾ͷαΠζΛมߋՄೳ ಛఆͷαΠζͰը૾Λग़ྗ͢Δඞཁ͕͋Δ߹ɺύϥϝʔλΛઃఆ͢ Δͱ৽͍͠ͰαΠζͷը૾Λ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ ͯ͢ͷը૾ͰαΠζมߋՄೳͰɺมߋޙͷը૾ඞཁʹԠͯ͡࡞ ͞Ε·͢ɻ "TTFUT
6TFST IUUQTDSBGUDNTDPNGFBUVSFTVTFST Ϣʔβʔ ϢʔβάϧʔϓΞΫηεݖݶͷઃఆ͕Մೳ
ίϯςϯπϚωʔδϟΛཧ $SBGU1SPʹϑϧػೳͷϢʔβʔཧɺύϒϦοΫϢʔβʔͷొɺγ ϯϓϧͰڧྗͳݖݶγεςϜ͕͍͍ͯ·͢ɻ ෳͷϢʔβʔάϧʔϓΛ࡞ ඞཁͳ͚ͩͷϢʔβʔάϧʔϓΛ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ֤ͦͯ͠ Ϣʔβʔෳͷάϧʔϓʹଐ͢Δࣄ͕Ͱ͖·͢ɻ 6TFST
ϢʔβʔͱάϧʔϓʹݖݶΛ༩͑Δ ϢʔβʔʹݖݶΛׂΓͯΔ͜ͱͰαΠτ্Ͱ্ͷૢ࡞ΛઃఆՄೳͰ͢ɻ ·ͨϢʔβʔάϧʔϓʹݖݶΛׂΓͯΔ͜ͱͰ͖·͢ɻ άϧʔϓɺάϧʔϓʹଐ͢Δͯ͢ͷϢʔβʔʹݖݶΛ༩͑·͢ɻ 6TFST
$BUFHPSJFTBOE5BHT IUUQTDSBGUDNTDPNGFBUVSFTDBUFHPSJFTBOEUBHT ΧςΰϦʔζͱλάζ $SBGUDBUFHPSZͱUBHͰ؆୯ཧ
ͯ͢దͳॴʹ $SBGUDBUFHPSZͱUBHΛαϙʔτ͍ͯ͠·͢ͷͰࣄΛཧ͢Δͷ؆ ୯Ͱ͢ɻ ΧςΰϦʔͰྨΛཧ $SBGUͰҟͳΔྨΛཧ͢ΔΧςΰϦʔάϧʔϓΛઃఆ͠·͢ɻ $BUFHPSJFTϑΟʔϧυΛ༻ͯ͠ଞͷΤϨϝϯτʹΧςΰϦʔΛద༻ ͢Δ͜ͱ͕Ͱ͖·͢ɻ $BUFHPSJFTBOE5BHT
λά͖ϑΥʔΫιϊϛʔ $SBGUʹɺλά͖ϑΥʔΫιϊϛʔͷαϙʔτΈࠐ·Ε͍ͯ· ͢ɻෳͷλάάϧʔϓΛઃఆͰ͖ɺ֤άϧʔϓʹಠࣗͷλάηοτ ͕͋Γ·͢ɻλάϑΟʔϧυ͔Βଈ࠲ʹλάΛ࡞Ͱ͖·͢ɻ $BUFHPSJFTBOE5BHT
3FMBUJPOT IUUQTDSBGUDNTDPNGFBUVSFTSFMBUJPOT ϦϨʔγϣϯζ ڧྗͳؔ࿈͚
ڧྗͳؔ࿈͚ $SBGUʹڧྗͳؔ࿈͚ΤϯδϯͱͭͷϦϨʔγϣφϧϑΟʔϧυλ Πϓ͕͋Γ·͢ɻͦΕ͋ͳͨͷFOUSJFTɺBTTFUTɺDBUFHPSJFTɺVTFSTɺ UBHTΛ·ͱΊͯϦϯΫ͢Δࣄ͕Ͱ͖·͢ɻ 3FMBUJPOT Ұ؏ੑͷ͋Δؔ࿈͚ ؔ࿈͚Λ͢Δ߹FOUSJFTɺBTTFUTɺDBUFHPSJFTɺVTFSTɺUBHTͷ ͲΕͰ͋ͬͯίϯςϯπ੍࡞ऀͱςϯϓϨʔτσβΠφʔͲͪΒʹ Ұ؏ੑͷ͋Δૢ࡞Λ༩͑·͢ɻ͜ΕɺͳͥͳΒཪͰಉؔ͡࿈͚Τ ϯδϯΛ༻͢ΔͨΊͰ͢ɻ
͋ͳ͕ͨΉؔ࿈͚Λग़ྗ $SBGUͷ৽͍͠SFMBUFE5Pཁૉͷύϥϝʔλʔঢ়گʹΑͬͯγϯϓϧ ʹෳࡶʹͰ͖·͢ɻ 3FMBUJPOT
5FNQMBUJOH IUUQTDSBGUDNTDPNGFBUVSFTUFNQMBUJOH ςϯϓϨʔτ ςϯϓϨʔτࣗ༝
࣋ͪࠐΈͷ)5.- ࢲͨͪόοΫΤϯυΛఏڙ͍ͯ͠·͢ɻ ϑϩϯτΤϯυશʹ͋ͳͨͷࣗ༝ͳαΠτΛ࡞Ε·͢ɻ ΤϥʔΛใࠂ ͋ͳ͕ͨ࡞ͬͨςϯϓϨʔτʹؒҧ͍͕͋Δ߹ਖ਼֬ʹϔϧϓϝοηʔ δͱϋΠϥΠτ͞ΕͨςϯϓϨʔτίʔυΛදࣔ͠·͢ɻ 5FNQMBUJOH
5XJHʹΑͬͯڧԽ ςϯϓϨʔτ5XJHʹΑͬͯڧԽ͞Ε·͢ɻ 5XJH4ZNGPOZͷΫϦΤΠλʔͨͪʹΑͬͯ࡞ΒΕͨΤϨΨϯτͰ ύϫϑϧͳςϯϓϨʔτγεςϜͰ͢ɻ ίʔυΛυϥΠʹอͭͨΊʹཱͭૉΒ͍͠ํ๏Λఏڙͯ͘͠Ε·͢ɻ )5.-͚ͩͰͳ͍ σϑΥϧτͰIUNMΛݟ·͕͢ɺҙͷ֦ுࢠΛ༩͑ΔࣄͰ͖·͢ɻ ·ͨɺҙͷ.*.&UZQFΛ༩͑ϨεϙϯεΛฦ͢͜ͱͰ͖·͢ɻ 5FNQMBUJOH
3FTQPOTJWF$1 IUUQTDSBGUDNTDPNGFBUVSFTSFTQPOTJWFDQ Ϩεϙϯγϒͳίϯτϩʔϧύωϧ 1$Ͱ41ͰฤूՄೳ
֎ͰฤूՄೳ $SBGUϨεϙϯγϒͳίϯτϩʔϧύωϧͰ͢ͷͰ֎ͰฤूՄೳͰ͢ɻ 3FTQPOTJWF$1
%BTICPBSE IUUQTDSBGUDNTDPNGFBUVSFTEBTICPBSE μογϡϘʔυ Ϣʔβʔʹ߹ΘͤͯΧελϚΠζՄೳ
ࢥ͍௨ΓͷμογϡϘʔυ μογϡϘʔυϢʔβʔʹ߹ΘͤͯΧελϚΠζ͢Δ͜ͱ͕Ͱ͖·͢ɻ 344ϑΟʔυɺ2VJDL1PTUɺ࠷ۙͷߘɺΞοϓσʔτ͙ʹར༻Մ ೳͳXJEHFUTCPYࣗ༝ʹϓϥάΠϯΛՃͰ͖·͢ɻ %BTICPBSE
$SBGU$.41SJDJOH'"2 IUUQTDSBGUDNTDPNQSJDJOHGBR Ձ֨ʹؔ͢ΔΑ͋͘Δ࣭
ͲͷΑ͏ʹ$SBGU$MJFOU͘͠$SBGU1SPΛങ͏͜ͱ͕Ͱ ͖·͔͢ʁ ʮ$SBGU1FSTPOBMʯ·ͨʮ$SBGU$MJFOUʯΛಋೖͯ͠Ε$.4ͷத͔ ΒߪೖͰ͖·͢ɻίϯτϩʔϧύωϧͷதͷશͯͷϖʔδͷԼʹϦϯΫ ͋Γ·͢ɻ $SBGU$.41SJDJOH'"2
ߪೖ͢Δલʹ$SBGU$MJFOUPS1SPΛࢼ͢͜ͱͰ͖·͔͢ʁ ͍ɻ͋ͳ͕ͨඇެ։ͷυϝΠϯ໊͔Β$SBGU$.4Λ࣮ߦ͍ͯ͠Δ߹ ʮ$MJFOUBOE1SPFEJUJPOTʯΛແظݶʹςετ༻͢ΔΦϓγϣϯ͕͋ Γ·͢ɻ $SBGU$.41SJDJOH'"2
͍ɺ͑େৎͰ͢ɻ $SBGU$.41SJDJOH'"2 ޙ͔Β$MJFOUFEJUJPO͔Β1SPʹΞοϓάϨʔυग़དྷ·͔͢ʁ
͍ɺͰ͖·͢ɻ $SBGU$.41SJDJOH'"2 ϩʔΧϧ൛Ͱߪೖͨ͠ޙʹຊ൪ʹެ։Ͱ͖·͔͢ʁ
͍͍͑ɺΞοϓσʔτશͯແྉͰ͢ɻ $SBGU$.41SJDJOH'"2 $SBGU$.4͕ϝδϟʔΞοϓσʔτͨ͠߹ɺྉ͔͔ۚ Γ·͔͢ʁ
͋ͳ͕ͨ$SBGU$.4Λ༻͢Δ͜ͱΛΉͷʹ༧ࢉ͕Γͳ͍ͷͰ͋Ε ࿈བྷ͍ͯͩ͘͠͞ɻͳʹ͔ಇ͖͔͚ΔࣄͰ͖·͢ɻ $SBGU$.41SJDJOH'"2 ར༻ՄೳͳׂҾ͋Γ·͔͢ʁ
גࣜձࣾϫΫάϛ ాଜষޗ !UBNTIPX ʔ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ