Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Repositoryによる抽象化の理想と現実/Ideal and reality of abs...
Search
sonatard
December 04, 2019
Programming
20k
70
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
sonatard
December 04, 2019
More Decks by sonatard
See All by sonatard
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
630
Iteratorでページネーションを実現する
sonatard
5
1.5k
Goのエラースタックトレースの歴史と今後
sonatard
19
17k
Go 1.22のEnhanced ServeMux chiから移行できるのか?
sonatard
5
730
GraphQL実践ノウハウv2
sonatard
17
3.2k
プロトコル、インターフェースとしてのGraphQL
sonatard
4
2.4k
GraphQL実践ノウハウ/graphql-knowhow
sonatard
42
12k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Go1.18から導入されるnetip package/netip-package
sonatard
3
1.3k
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
250
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
Security issues being discussed on Web Platforms
petamoriken
0
1.3k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
290
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
490
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
330
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
400
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
390
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
1
560
Agents on Rails - Rails at Scale 2026
irinanazarova
0
290
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
440
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Documentation Writing (for coders)
carmenintech
77
5.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
510
Making the Leap to Tech Lead
cromwellryan
135
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
The Language of Interfaces
destraynor
162
27k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Transcript
1 3FQPTJUPSZʹΑΔநԽͷཧͱݱ࣮ HPMBOHUPLZPͩΑʂ(Pେձ-5େձʂ !TPOBUBSE
Appify Technologies CTO ͦͳଠ @sonatard
JOGSB 3 3FQPTJUPSZͱ w %%%ͷϨΠϠʔυΞʔΩςΫνϟͰఏএ͞Ε͍ͯΔ w 3FQPTJUPSZͰΠϯλʔϑΣʔεΛఆٛ͢Δ͜ͱʹΑΓJOGSBΛநԽɺґଘੑͷٯస w ϞοΫͷࠩ͠ସ͕͑ՄೳʹͳΓBQQMJDBUJPOͷϢχοτςετ͕ՄೳʹͳΔ BQQMJDBUJPO
3FQPTJUPSZ $MPVE%BUBTUPSF .Z42- "1* 1PTUHSF42-
4 6TFSऔಘ "DDPVOUऔಘ ߴॲཧ "DDPVOUߋ৽ τϥϯβΫγϣϯ ΞϓϦέʔγϣϯͷૹۚॲཧ
5 ͦͷ ԿΛநԽ͍ͯ͠Δͷ͔
6 நԽͱ͍͏͔ΒʹԿ͔ΛநԽ͍ͯ͠Δͣ %#"1*ΛؚΊͯ֎෦ͷ*0ͯ͢ΛநԽ͍ͯ͠Δʁ %# ,74ؚΉ ΛநԽ͍ͯ͠Δʁ 3%#.4ΛநԽ͍ͯ͠Δʁ
7 ͦ͜Ͱ۩ମྫ͔Βߟ͑ͯΈΔ
8 ͜ͷίʔυͰ3FQPTJUPSZͰ ԿΛநԽ͍ͯ͠Δ͔ߟ͑ͯΈΔ
9 ͜ͷίʔυ͚ͩͰߟ͑ͯԿΛநԽ͍ͯ͠Δ͔Θ͔Βͳ͍ நԽ͞Ε͍ͯΔ͔Β ͦ͜ΠϯλʔϑΣʔεͷ༷Λ֬ೝ͠ͳ͚ΕͳΒͳ͍
10 ԿΛநԽ͍ͯ͠Δ͔ݴޠԽ͠Α͏ νʔϜϝϯόʔͰڞ௨ͷೝࣝΛ࣋ͱ͏
11 %%%ʹॻ͍ͯ͋Δ͔Β3FQPTJUPSZΛ༻ҙ͢Δ/( நԽ͢ΔͨΊʹ3FQPTJUPSZΛར༻͠Α͏
12 ͦͷ ͦͷநԽਖ਼͍͔͠
13 ֤3FQPTJUPSZɺ%#"1*ίʔϧؚΊͨ ֎෦ͷ*0ͯ͢ΛநԽ͍ͯ͠Δ߹ ͜ͷநԽਖ਼͍͠ʁ
14 ਖ਼͘͠ͳ͍
15 நԽ͞Ε͍ͯΔͨΊɺ"DDPVOU3FQPTJUPSZ"1*ίʔϧʹΑΓଞͷ.JDSPTFSWJDFTΞΫηε͍ͯ͠Δ Մೳੑ͕͋Δɻ͔͠͠"1*ίʔϧ%#ͷτϥϯβΫγϣϯର֎ɻ "DDPVOU్தͰΤϥʔʹͳͬͨ߹ʹదͳϩʔϧόοΫ͕͞Εͳ͍ɻ "DDPVOU͕)551Ͱ͋Δͱ͍͏ҙࣝΛͯ͠ϩʔϧόοΫॲཧͷ࣮͕ඞཁɻ
16 ΞϓϦέʔγϣϯ࣮ऀͷࢥߟ ͜ͷ"DDPVOU3FQPTJUPSZ)551ͩΖ͏͔ʁ%#ͩΖ͏͔ʁ )551ͳΒϩʔϧόοΫॲཧॻ͔ͳ͍ͱ͍͚ͳ͍ͳ %#ͳΒτϥϯβΫγϣϯͰͲ͏ʹ͔ͳΔͳ நԽ͕ͨͣ͠ҙࣝతʹϓϩτίϧͷ۩ʹґଘ͍ͯ͠Δ ͭ·Γ͜ΕநԽͰͳ͘ɺͨͩίʔυ্ʹඞཁͳใ͕ͳ͍͚ͩͰ͋Δ
17 3FQPTJUPSZʹΑΔநԽઃܭ͕ؒҧ͍ͬͯΔ
18 ͜ΕΛղܾ͢Δํ๏ͭ நԽʹ͋Θ࣮ͤͨ நԽͷݶఆ நԽͷׂ
19 ղܾࡦநԽʹ߹Θ࣮ͤͨ 5YؔͰ%#ͱ"1*ͷτϥϯβΫγϣϯΛ࣮ݱ͢Δ ֎෦ͷ"1*ʹϩʔϧόοΫ༻ͷ"1*ΛఆٛɺదͳϦτϥΠॲཧͳͲ
20 ղܾࡦநԽͷݶఆ %#͔͠ߟྀ͢Δඞཁ͕ͳ͍ͷͰ͋Ε 3FQPTJUPSZͷநԽର͔Β"1*Λআ֎͢Δ
21 ղܾࡦநԽͷׂ %#ͱ"1*Λಉ͡நʹؚΊͳ͍
22 நԽͰӕΛ͔ͭͳ͍
23 ૉʹϓϩτίϧ͕දݱ͞Ε͍ͯΔํ͕Մಡੑ͕ߴ͍
24 %%%ʹॻ͍ͯ͋Δ͔Β3FQPTJUPSZΛ༻ҙ͢Δ/( ਖ਼͍͠நԽΛίʔυ্Ͱදݱ͠Α͏
25 ͦͷ ͦͷநԽඞཁ͔ʁ
26 ͜ΜͳΛฉ͘͜ͱ͕͋Δ কདྷΠϯϑϥ͕มߋ͞ΕΔՄೳੑ͕͋Δ͔Βɺ3FQPTJUPSZͰநԽ͢Δ .Z42-͕1PTUHSFT42-ʹ ผͷ3%#.4ʹ .Z42-͕$MPVE%BUBTUPSFʹ ,74ʹ .Z42-͕.JDSPTFSWJDFTʹ
"1*ίʔϧʹ
27 ຊʹ͜ͷมߋ͋Δʁ
28 ͜ͷมߋ͕ىͬͨ͜ͱ͖Λఆͨ͠దͳநԽΛͰ͖͍ͯΔʁ
29 .Z42-ɺ$MPVE4QBOOFSɺ$MPVEEBUBTUPSFͰ࣮ߦͰ͖ΔΫΤϦʔҧ͏ .Z42-ͳΒΫΤϦʔͰ࣮ݱͰ͖Δ͜ͱɺ$MPVEEBUBTUPSFͰυϝΠϯͰ࣮ࢪ͢Δඞཁ ͕͋Δ͜ͱ͕͋Δ τϥϯβΫγϣϯΛ࣮ݱ͢ΔͨΊʹඞཁͳͷܕҧ͏
30 ͠ݕূɺςετ͍ͯ͠ͳ͍ͳΒߟྀͰ͖͍ͯΔͱݴ͑ͳ͍ த్ͳநԽ։ൃΛམͱ͍ͯ͠Δ͚͔ͩ͠Εͳ͍
31 աͳະདྷΛఆͨ͠ઃܭͰͳ͍͔ʁ ͦΕʹΑΓ༨ܭͳ࣮͕૿͍͑ͯͳ͍͔ʁ
32 ݱࡏಛఆͷ%#ґଘͨ͠ΠϯλʔϑΣʔεʹ͓͖ͯ͠ɺ কདྷ%#ͷมߋ͕͋ͬͨͱ͖ʹॻ͖͢ํ͕͍ͷͰͳ͍͔ʁ
33 ςελϏϦςΟͷͨΊͳΒΠϯϑϥͷϓϩτίϧΛநԽ͠ͳ͍Ͱɺ ۩ମతͳΠϯϑϥʹґଘͨ͠ΠϯλʔϑΣʔεΛ༻ҙ͢Δ͚ͩͰे .Z42-PS.PDL $MPVE%BUBTUPSFPS.PDL $MPVE4QBOOFSPS.PDL
34 ͘͠ར༻͍ͯ͠Δ%#"1*ͷΫϥΠΞϯτϥΠϒϥϦʹ.PDLͷػೳ͕͋Ε ͦΕͰेͰͳ͍Ͱ͠ΐ͏͔ʁ
35 %%%ʹॻ͍ͯ͋Δ͔Β3FQPTJUPSZΛ༻ҙ͢Δ/( ϓϩμΫτʹຊʹඞཁͳநԽ͚ͩΛ࣮͠Α͏
36 ͦͷ நԽͱϨΠϠʔԽҟͳΔ
37 ຊʹΓ͔͍ͨ͜ͱϓϩτίϧͷநԽͰ͠ΐ͏͔ʁ ͔ͯ͠͠ඞཁͳͷؔ৺͝ͱͷʁ
38 3FQPTJUPSZɺநԽͱϨΠϠʔԽΛಉ࣌ʹ࣮ࢪ͍ͯ͠Δͷ͕Ұൠత ࠓ͋ͳ͕ͨߟ͍͑ͯΔ3FQPTJUPSZͷϝϦοτɺ நԽʹΑΔͷʁͦΕͱϨΠϠʔԽʹΑΔͷʁ
39 ϨΠϠʔԽͷϝϦοτ ؔ৺͝ͱͷ ୯Ұͷݪଇ ࣮ͷӅṭ
40 நԽͷϝϦοτ ։์ดݪଇ ґଘੑٯసͷݪଇ ςελϏϦςΟ ϓϩτίϧͷநԽ
41 ຊʹநԽඞཁͰ͔͢ʁ
42 ϓϩτίϧͷநԽඞཁͰ͔͢ʁ
43 ࢲͨͪݱࡏϓϩτίϧͷநԽͷͨΊͷ3FQPTJUPSZ༻ҙ͍ͯ͠·ͤΜ
44 কདྷ%#͕มΘΔఆ͍ͯ͠·ͤΜɻ มΘͬͨ࣌ʹ͢ͱ͍͏அͰ͢ɻ
45 ςελϏϦςΟͷͨΊͷΠϯλʔϑΣʔεඞཁͰ͔͢ʁ ඞཁͳΒͪΌΜͱϢʔεέʔεͷϢχοτςετΛॻ͍͍ͯ·͔͢ʁ
46 ࢲͨͪݱࡏςετͷͨΊͷ3FQPTJUPSZΛ༻ҙ͍ͯ͠·ͤΜ
47 ΞϓϦέʔγϣϯ͕ेʹγϯϓϧͰ͋ΔͨΊ&&ςετͰิ͑Δ ΞϓϦέʔγϣϯʹGPSจΤϥʔϋϯυϦϯάҎ֎ͷJGจొ͠ͳ͍
48 ϨΠϠʔԽ ΞϓϦέʔγϣϯͱΠϯϑϥͷ͍ͯ͠·͢
49 ؔ৺͝ͱͷɺ୯ҰͷݪଇɺใӅṭ࣮ࢪͨ͠΄͏͕ྑ͍ͱ͍͏அ
50 நԽͱϨΠϠʔԽͷϝϦοτΛ۠ผͯ͠ɺνʔϜͰඞཁͳͷΛબ͠Α͏
51 ͓ΘΓʹ Έͳ͞Μ3FQPTJUPSZͰԿΛநԽ͍ͯ͠·͔͢ʁ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠