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
サービスディレクターの 意思決定を支える技術
Search
airreader
July 03, 2017
Programming
1
7.5k
サービスディレクターの 意思決定を支える技術
airreader
July 03, 2017
Tweet
Share
More Decks by airreader
See All by airreader
「おもしろがり」からのサービスリリース 〜てがきはてなブログの場合〜
airreader
0
1.1k
Other Decks in Programming
See All in Programming
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5k
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
620
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
150
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
800
Goのエラースタックトレースの歴史と今後
sonatard
6
490
Goのmultiple errorsについて (2024年4月版)
syumai
1
280
try! Swift Tokyo 初参加報告LT
hinakko2
0
210
PHPはいつから死んでいるかの調査
chiroruxx
1
350
Git Rebase
bkuhlmann
11
1.6k
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
260
Semantic search with Django and pgvector
pauloxnet
0
240
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
344
19k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
How GitHub (no longer) Works
holman
304
140k
Side Projects
sachag
451
41k
The Invisible Customer
myddelton
114
12k
A designer walks into a library…
pauljervisheath
199
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Designing for Performance
lara
601
67k
Transcript
αʔϏεσΟϨΫλʔͷ ҙࢥܾఆΛࢧ͑Δٕज़ id:AirReader
ࠓճ͢͜ͱ
πʔϧΛ͏·͘ར༻ ͠ίετΛԼ͛Δ͜ ͱͰૉૣ͍ҙࢥܾఆ Λߦ͏͜ͱ͕Ͱ͖Δ
ࣗݾհ
ࣗݾհ w ͯͳ*%"JS3FBEFS w ॴଐגࣜձࣾͯͳ w ৬छσΟϨΫλʔ w גࣜձࣾͯͳʹϢʔβʔαϙʔτ৬ͰΞϧό Πτೖࣾ
w Ϣʔβʔαϙʔτࣾһ࠾༻ w σΟϨΫλʔʹస
αʔϏεϓϥοτϑΥʔϜ νʔϜʹॴଐ͍ͯ͠·͢
αʔϏεϓϥοτϑΥʔϜ νʔϜͬͯͳʹΔνʔϜʁ
ݹ͔͘Βӡ༻͍ͯ͠Δ αʔϏεΛ ҰखʹҾ͖ड͚Δ
w ͯͳμΠΞϦʔ w ͯͳΩʔϫʔυ w ਓྗݕࡧͯͳ w ͯͳϑΥτϥΠϑ w ͯͳάϧʔϓ
w ͯͳελʔ w ͯͳಗ໊μΠΞϦʔ w ࣾͷ෦αʔϏεͳͲ
ΊͪΌͪ͘Όଟ͍
ϝΠϯͰऔΓΜͰΔλεΫ
w ݹ͘ͳͬͯ͠·ͬͨ04͔Βͷ ٫ w ඇޮͳϛυϧΣΞ͔Βͷ٫
߈ܸతʹఫୀ͠ αʔϏεͷޮΛ্͛ ے࣭ͳӡ༻Λࢦ͢
͔͠͠ྑ͍αʔϏε๊͍͑ͯΔ
ఫୀ͚ͩͰ͍ͬͨͳ͍ʂ
Ͱఫୀ.VTUҊ݅ མͱͤͳ͍
Ͱ͖Δ͚ͩϝϯόʔͷΛ ΘͣʹཁΛ͑ͨ ։ൃΛߦ͏ඞཁ͕͋Δ
ͲͷΑ͏ͳมߋΛߦ͏͔ ݕ౼͢Δʹใ͕ඞཁ
ͲΕݹ͍αʔϏεͳͷͰ σʔλͷूܭج൫͍ͬͯ ͳ͍͠ɺ͑Δͷେ
ॳख͔Βॏ͗ͯ͢ ಈ͖͕औΕͳ͍ʜ
ͳΜͱ͔ग़དྷͳ͍͔ʜ
ͳΜͱ͔ग़དྷͳ͍͔ʜ
(PPHMFͷπʔϧ͕ࢲΛٹͬ ͯ͘Ε·ͨ͠ʂ
πʔϧΛར༻͢Δ͜ͱͰ ҙࢥܾఆʹඞཁͳڥΛ खܰʹ༻ҙ͢Δ͜ͱ͕Ͱ͖Δ
ͦͦҙࢥܾఆͱʁ
ҙࢥܾఆɺਓஂମ͕ಛఆͷඪΛୡ͢Δͨ Ίʹɺ͋Δঢ়گʹ͓͍ͯෳͷସҊ͔Βɺ࠷ળ ͷղΛٻΊΑ͏ͱ͢ΔਓؒͷೝతߦҝͰ͋Δɻ ҙࢥܾఆ8JLJQFEJB z z
͕ࣗೲಘͰ͖ΔղΛݟ͚ͭΔ͜ͱ ղͱͦ͜ࢸΔಓےΛڞ༗͢Δ͜ͱ
ҙࢥܾఆσΟϨΫλʔ ͚ͩͰ݁͢Δ࡞ۀͰͳ͍
ϝϯόʔʹΘͬͯ࢝Ίͯ ҙࢥܾఆ͕ߦΘΕͨͱ͍͑Δ
ҙࢥܾఆʹඞཁͳͷ
w ༐ؾ w ใऩूɾੳ w ҙࢤୡ
ҙࢥܾఆΛ્Ήͷ
w ։ൃͷ੍ w ࣗͷࣝෆ w ΤϯδχΞͱͷใ֨ࠩ
։ൃͷ ੍
ओλεΫผʹ͍ͬͯΔ ͕֬ߴ͍ࢪࡦΛ ࠷େޮͰ࣮ΛਐΊ͍ͨ
ࢼߦࡨޡ͢Δ༨༟ͳ͠
ࣗͷࣝ ෆ
ෆ͍ͯ͠Δͷ͔ͬͯΔ ͔ͩΒͦ͜ࢼߦࡨޡ͕͍ͨ͠
ੵۃੑ͔Βൃੜࣦͨ͠ഊ ڐ༰͢Δ͠͞ΕΔ͕ ෆ҆ײ͕ᐫʹͳΔ
ΤϯδχΞͱ ͷใ֨ࠩ
ΤϯδχΞΑΓ σΟϨΫλʔ͕͍࣋ͬͯΔ ใͷํ͕ଟ͍
ಉ͡ใΛ࣋ͬͯͳ͍ͱ அཧ༝ΘΒͳ͍
ͰɺͲ͏͍͏ใΛ ϕʔεʹஅ͍ͯ͠Δͷ͔ ͑Δͷ͚ͬ͜͏େม
πʔϧͰग़དྷΔ͜ͱ w ࣗࣾΤϯδχΞͷͰͳ͘σΟϨΫλʔ ͷͰ w ແҋ୫ͱ৭ʑͳ͜ͱ͕Ͱ͖Δ
πʔϧ͕ղܾͯ͘͠ΕΔ͜ͱ w ײͷෆ҆Λղফ͠ w ࢼߦࡨޡͷνϟϯεΛ༩͑ͯ͘ΕΔ w దʹར༻͢Εɺਖ਼͘͠ใ͕औΕΔɾ ఏࣔͰ͖Δ
w ༐ؾ w ใऩूɾੳ w ҙࢤୡ
w ༐ؾ w ใऩूɾੳ w ҙࢤୡ ͜͜Λࢧ͑ͯ͘ΕΔ
ใऩूྫ
5BH.BOBHFS "OBMZUJDT w 5BH.BOBHFSͷॊೈͳใऔಘઃఆ w "OBMZUJDTͷΧελϜσΟϝϯγϣϯɺΠϕϯ τػೳʹΑΔ๛ͳղੳػೳ w మ൘ͷΈ߹Θͤ
ϖʔδͷछผ͕63-ʹදݱ͞Ε ͍ͯͳ͍͚Ͳ͚ͯूܭ͍ͨ͠
ਓྗݕࡧͷ࣭͕ɺ࣭ܗࣜͳͷ͔ Ξϯέʔτܗࣜͳͷ͔औಘ͍ͨ͠
$44ηϨΫλͷࢦఆͰ ใ͕औಘͰ͖Δ w $44ηϨΫλΛॻ͘ͱ֘ͷ%0.ͷJOOFS5FYU ΛऔಘͰ͖Δ w ଐੑ໊ࢦఆ͢ΔͱଐੑͷΛऔಘͰ͖Δ w $44͕ͪΐͬͱΘ͔Ε୭Ͱ͑Δ
w ΞΠίϯͷҧ͍Ͱϖʔδछ͕औΕΔ w ࠩҟ͕ҰఆͷܗͰදݱ͞Ε͍ͯΕ͑Δ
ෳ͋Δճ༡ಈઢͷͲͷಋઢ͕ ར༻͞Ε͍ͯΔ͔Λݟ͍ͨ
None
ಈઢ৭ʑ͋Δ
ηΫγϣϯͷऔಘ function () { var current = {{element}}.parentNode; while(current) {
if(current.hasAttribute('id')) { return current.getAttribute('id'); } else { current = current.parentNode; } } } w ΫϦοΫ͞Εͨॴ͕ͲͷྖҬͳͷ͔Λऔಘ͍ͨ͠ w ͯͳಗ໊μΠΞϦʔͩͱ্ͷ֊ʹJEଐੑ͕͍͍ͯ ΔɻҎԼͷίʔυͰऔಘͰ͖Δ w ΫϦοΫͷλΠϛϯάͰ"OBMZUJDTͷΠϕϯτʹૹ৴͢Δ
݁Ռ͜͏͍͏άϥϑ͕࡞ΕΔ
ϢʔβʔͷߘΞΫγϣϯ ूܭ͍ͨ͠
Ϣʔβʔߘͷऔಘ • TagManagerͰɺFormૹ৴Λݕ͢Δ͜ͱ͕Ͱ ͖Δ • ͜ΕͱAnalyticsͷΠϕϯτΛΈ߹ΘͤΔͱɺ ߘܥσʔλAnalyticsʹอଘͰ͖Δ • AnalyticsͷػೳͱΈ߹ΘͤΒΕΔͷͰϩάΛू ܭ͢ΔΑΓߴػೳͳ߹
w ༐ؾ w ใऩूɾੳ w ҙࢤୡ
ҙࢥୡ
ैདྷͷ
ػೳͷૂ͍ͱ ͦΕʹରԠ͢ΔࢦඪΛ ఏࣔ͢Δͷ͕େม
ࢦඪ"OBMZUJDT͚ͩͰͳ͍ ࢦඪΛ֬ೝ͢ΔͨΊͷ63-ूΛ ࡞ͬͨΓ͢Δඞཁ͕͋ͬͨ
͜Ε࡞ΔͷݟΔͷେม
"OBMZUJDT 4QSFBETIFFU 4FBSDI$POTPMF %BUB4UVEJP
None
ͯͳಗ໊μΠΞϦʔͷਓؾهࣄΞʔ ΧΠϒػೳϦϦʔε͔࣌Βɺػೳ͝ ͱͷϨϙʔτΛ࡞͢ΔΑ͏ʹͨ͠
ҙਤΛ͑Δͷָ͕ʹͳΔ͠ ͻͱͰঢ়گ͕ѲͰ͖ΔͷͰ ΤϯδχΞ֬ೝָ͕ʹͳΔ
σΟϨΫλʔ୯ಠͰͷ ݶքɾσϝϦοτ
σʔλͷऔಘํ๏ͷڞ༗࿙Ε • CSSηϨΫλIDଐੑͰใΛऔಘ͢Δ ߹ɺHTMLߏʹมߋ͕Ճ͑ΒΕΔͱσʔ λ͕औಘͰ͖ͳ͘ͳΔ ➡ ͜ͷσʔλ͕͑Δɺͱ͍͏͜ͱ͕͔ͬ ͨΒɺదͳλΠϛϯάͰΞϓϦέʔγϣ ϯʹΈࠐ͏
σʔλͷऔಘํ๏ͷڞ༗࿙Ε • AppsScriptSpreadsheetͷؔͳͲͰؤ ுͬͯॲཧͯ͠σʔλΛੜ͍ͯ͠Δ߹ɺ յΕͨ࣌ʹ෮چ͕ࠔ ➡ ͜ͷσʔλ͕͑Δɺͱ͍͏͜ͱ͕͔ͬ ͨΒɺυΩϡϝϯτΛ͢ͳͲ͠Α͏
ղܾํ๏ͷݕ౼ෆ • σʔλΛऔಘํ๏͔Βෳͷํ๏͕͋Γɺ JavaScriptॻ͚ͯ͠·͏ɻσʔλͷอଘͰෳ ͷํ๏͕͋ΓɺΈ߹Θͤͨ͘͞Μ͋ͬͯ͠ ͍ • ࣗͷແବʹ࣌ؒΛ͍ͯ͠Δ߹͋Δ ➡ JavaScriptΤϯδχΞϨϏϡʔʹग़͢ɻઃఆ
ʹෆ͕҆͋Δ߹ଞDʹͯ͠ΈΔɻ࡞ۀ࣌ؒ Λ1-2࣌ؒʹ۠Δ
ղܾํ๏ͷݕ౼ෆ ➡ ઃఆ͕ҟৗʹෳࡶʹͳΔ߹ɺΤϯδ χΞʹ૬ஊ͢Δɻͦͦͬͱྑ͍ղ ܾํ๏͕ݟ͔ͭΔ߹͋Δ
%ʹΑΔใऔಘ ͋͘·ͰҰ࣌తͳͷͳͷͰ σʔλ͕͑Δͱ͔ͬͨΒ ΤϯδχΞͱ૬ஊͯ͠ ༷Λ֬ఆͤ͞·͠ΐ͏
·ͱΊ
(PPHMFͷπʔϧΛ͍ %͚ͩͰίετ ແྉ ʹ ҙࢥܾఆΛߦ͏ͨΊͷڥΛ ͑ΒΕ·͢
πʔϧΛ ղܾ͢ΔͨΊʹඞཁͳ ෛ୲ΛݮΒͯ͘͠ΕΔ
͋͘·Ͱղܾͷ ͍ͪखஈͰ͋Γ πʔϧΛ͏͜ͱ͕ తͰͳ͍
ใղੳίϛϡχέʔγϣ ϯʹϑΥʔΧε͢Δ࣌ؒΛ ૿͠ɺҙࢥܾఆΛՃ͞ ͤɺαʔϏεͷະདྷ࡞Γग़ ͍͖ͯ͠·͠ΐ͏
͓ΘΓ