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
Repositoryによる抽象化の理想と現実/Ideal and reality of abs...
Search
sonatard
December 04, 2019
Programming
20k
70
Share
Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
sonatard
December 04, 2019
More Decks by sonatard
See All by sonatard
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
590
Iteratorでページネーションを実現する
sonatard
5
1.4k
Goのエラースタックトレースの歴史と今後
sonatard
19
17k
Go 1.22のEnhanced ServeMux chiから移行できるのか?
sonatard
5
690
GraphQL実践ノウハウv2
sonatard
17
3.1k
プロトコル、インターフェースとしてのGraphQL
sonatard
4
2.3k
GraphQL実践ノウハウ/graphql-knowhow
sonatard
41
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
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
210
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
140
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
240
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
120
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
970
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
750
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
190
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
実践ハーネスエンジニアリング:ステアリングループを実例から読み解く / Practical Harness Engineering: Understanding Steering Loops Through Real-World Examples
nrslib
4
3.4k
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
310
AgentCore Optimizationを始めよう!
licux
3
200
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
490
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Thoughts on Productivity
jonyablonski
76
5.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
350
The Language of Interfaces
destraynor
162
26k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The untapped power of vector embeddings
frankvandijk
2
1.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
490
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
A Soul's Torment
seathinner
6
2.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
430
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ͰԿΛநԽ͍ͯ͠·͔͢ʁ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠