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
65
18k
Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
sonatard
December 04, 2019
Tweet
Share
More Decks by sonatard
See All by sonatard
Goのエラースタックトレースの歴史と今後
sonatard
12
6.9k
Go 1.22のEnhanced ServeMux chiから移行できるのか?
sonatard
4
450
GraphQL実践ノウハウv2
sonatard
17
2.7k
プロトコル、インターフェースとしてのGraphQL
sonatard
4
1.9k
GraphQL実践ノウハウ/graphql-knowhow
sonatard
40
11k
GraphQLの誤解/rethinking-graphql
sonatard
64
9.7k
Go1.18から導入されるnetip package/netip-package
sonatard
2
970
Jetpack ComposeとGraphQLによるServer Driven UI/jetpackcompose-grahpql-serverdrivernui
sonatard
1
1.7k
宣言的UIの状態管理とアーキテクチャSwiftUIとGraphQLによる実践/swiftui-graphql
sonatard
40
25k
Other Decks in Programming
See All in Programming
ケント・ベックに学ぶ『良いコード』の書き方
akitoshiga
2
160
楽しく簡単に!QRコードの読み取り機能を実装しよう
penguinsan_pg
1
150
デザインシステムとコンポーネント指向によるフロントエンド開発プロセスの革新 / Innovation in Frontend Development Processes through Design Systems and Component-Oriented Architecture
nrslib
6
4.6k
dotfiles について話したい #湘なんか
stefafafan
2
260
快適な開発と高セキュリティを実現するCryptoKitを活用したCoreDataのデータ暗号化術
grandbig
1
120
Generate a rust client code by OpenAPI Generator
matsu7874
0
160
たった数分でできる着信音の鳴らし方
kotambourine
0
120
dRuby 入門者によるあなたの身近にあるdRuby 入門
makicamel
4
210
BasicBasic認証
sadnessojisan
5
2.2k
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
0
170
ESLint: Low Hanging Fruits
rainerhahnekamp
0
250
[SwiftConf '24] Shipping your apps should be fast and easy
polpielladev
0
300
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
33
1.7k
Unsuck your backbone
ammeep
666
57k
4 Signs Your Business is Dying
shpigford
179
21k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Writing Fast Ruby
sferik
623
60k
Infographics Made Easy
chrislema
239
18k
Teambox: Starting and Learning
jrom
131
8.6k
Debugging Ruby Performance
tmm1
72
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
RailsConf 2023
tenderlove
26
790
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ͰԿΛநԽ͍ͯ͠·͔͢ʁ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠