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
Gratatouille: metaprogramming for your build-logic
Search
mbonnin
April 14, 2024
Programming
200
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gratatouille: metaprogramming for your build-logic
mbonnin
April 14, 2024
More Decks by mbonnin
See All by mbonnin
Metadataquoi??
martinbonnin
0
160
Harmonizing APIs, a comparison of GraphQL and OpenAPI through the Spotify API
martinbonnin
1
99
Construisez votre bibliothèque Java/Kotlin
martinbonnin
2
120
Building libraries for the next 25 years
martinbonnin
2
130
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
1
110
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
1
52
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
martinbonnin
3
96
Offline and Reactive apps with Apollo Kotlin
martinbonnin
1
79
What's new in Apollo Kotlin 3
martinbonnin
2
260
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
Are APIs Still Relevant in the AI Era?
soyuka
0
300
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
0
160
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.3k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
270
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
16
13k
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
4.3k
Agents on Rails - Rails at Scale 2026
irinanazarova
0
180
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
160
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
910
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
170
Family mrubyの進捗
kishima
1
130
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Un-Boring Meetings
codingconduct
0
420
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Tell your own story through comics
letsgokoyo
1
1.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Embracing the Ebb and Flow
colly
88
5.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Technical Leadership for Architectural Decision Making
baasie
3
580
Navigating Weather and Climate Data
rabernat
0
530
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Transcript
Gratatouille Webinar - Apr 2024
Hi 👋 🥐
apollographql/apollo-kotlin
Automatic code generation 4 query.graphql schema.graphqls Kotlin
Codegen 5 { sessions { nodes { language title startsAt
speakers { name } } } } class Session(val nodes: List<Node>) class Node( val language: String, val title: String, val startsAt: DateTime, val speakers: List<Speaker> ) class Speaker(val name: String)
6
7
Classloaders 8 • Several ones ◦ root project classloader ◦
subproject classloader ◦ buildSrc classloader • See Crash course in classloaders
9
10 Yes, BUT… johnrengelman/shadow
11 Yes, BUT… • Slow to compile • Duplicates bytecode
• Doesn’t fix everything GradleUp/Gr8 🐘🆙
Other things 12 • Overlapping outputs • Build cache •
Path sensitivity • Manual serialization • Parallel execution • Optional/nullable ⁉ • Type safety
Entering Gratatouille Even more classloaders… ;-)
Live demo?
Status 15 • Mostly proof of concept • Branch of
Apollo working with it • Single artifact mode • Testing