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.7k
サービスディレクターの 意思決定を支える技術
airreader
July 03, 2017
Tweet
Share
More Decks by airreader
See All by airreader
「おもしろがり」からのサービスリリース 〜てがきはてなブログの場合〜
airreader
0
1.3k
Other Decks in Programming
See All in Programming
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
190
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
140
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
390
MCP with Cloudflare Workers
yusukebe
2
220
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
ドメインイベント増えすぎ問題
h0r15h0
2
310
命名をリントする
chiroruxx
1
410
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
770
Featured
See All Featured
It's Worth the Effort
3n
183
28k
Why Our Code Smells
bkeepers
PRO
335
57k
How GitHub (no longer) Works
holman
311
140k
A designer walks into a library…
pauljervisheath
204
24k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
We Have a Design System, Now What?
morganepeng
51
7.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Typedesign – Prime Four
hannesfritz
40
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Scaling GitHub
holman
458
140k
Code Reviewing Like a Champion
maltzj
520
39k
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ͷπʔϧΛ͍ %͚ͩͰίετ ແྉ ʹ ҙࢥܾఆΛߦ͏ͨΊͷڥΛ ͑ΒΕ·͢
πʔϧΛ ղܾ͢ΔͨΊʹඞཁͳ ෛ୲ΛݮΒͯ͘͠ΕΔ
͋͘·Ͱղܾͷ ͍ͪखஈͰ͋Γ πʔϧΛ͏͜ͱ͕ తͰͳ͍
ใղੳίϛϡχέʔγϣ ϯʹϑΥʔΧε͢Δ࣌ؒΛ ૿͠ɺҙࢥܾఆΛՃ͞ ͤɺαʔϏεͷະདྷ࡞Γग़ ͍͖ͯ͠·͠ΐ͏
͓ΘΓ