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
tamshow
July 20, 2017
Programming
2
680
Craft CMSの良いとこと
webっちゃ! Vol.18の発表で使用したスライドです。
tamshow
July 20, 2017
Tweet
Share
More Decks by tamshow
See All by tamshow
HTMLコーディングから考える エントリーフォームの最適化
tamurashogo
3
260
Other Decks in Programming
See All in Programming
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
230
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
4
1.6k
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
400
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
230
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
250
gopls を改造したら開発生産性が高まった
satorunooshie
8
240
Android 15 でアクションバー表示時にステータスバーが白くなってしまう問題
tonionagauzzi
0
140
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
140
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
220
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.3k
Identifying User Idenity
moro
6
7.9k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Writing Fast Ruby
sferik
626
61k
Facilitating Awesome Meetings
lara
49
6k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
The Language of Interfaces
destraynor
154
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Testing 201, or: Great Expectations
jmmastey
38
7k
Bash Introduction
62gerente
608
210k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
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 ʔ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ