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
Compile Time Code Weaving with Go
Search
Ian Eyberg
July 10, 2015
Technology
0
390
Compile Time Code Weaving with Go
Goweave is a project to implement compile-time code weaving with go.
Ian Eyberg
July 10, 2015
Tweet
Share
More Decks by Ian Eyberg
See All by Ian Eyberg
Creating Open Source Unikernel Packages
eyberg
0
68
Challenges and Opportunities - Unikernels in HPC && Cloud
eyberg
0
110
Climbing Out From the Digital Mud with Unikernels - HL2017
eyberg
0
180
Using Unikernels in Production Today
eyberg
0
250
Adventures In Building Unikernel Clouds
eyberg
0
130
No Parachute Introduction into Unikernel Orchestration
eyberg
0
270
You Say MicroServices - I say Unikernels
eyberg
1
220
The Current State of C++ Unikernels
eyberg
1
260
UniKernel Workflows
eyberg
0
110
Other Decks in Technology
See All in Technology
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
110
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
130
The essence of decision-making lies in primary data
kaminashi
0
110
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
240
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
1.4k
AI時代のIssue駆動開発のススメ
moongift
PRO
0
250
Phase01_AI座学_基礎
overflowinc
0
4.2k
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
1
400
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
120
Phase07_実務適用
overflowinc
0
2k
Phase10_組織浸透_データ活用
overflowinc
0
1.8k
LLMに何を任せ、何を任せないか
cap120
10
5.8k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
100
The untapped power of vector embeddings
frankvandijk
2
1.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
330
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Amusing Abliteration
ianozsvald
0
140
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
500
Facilitating Awesome Meetings
lara
57
6.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
Transcript
Compile Time Code Weaving with Go https://github.com/deferpanic/goweave
I like your software but…
What sucks about Go?
Do you know about aspectj?
Really?
I’m not a code purist
“which is our full time job . write a program
to write a program” - rob pike / gopherfest 2015
None
Go is Actually a Decent Fit
Prior Art go fmt go fix go generate
go fix
No Wrapping I don’t want to update code && leave
the refs in it’s non-trivial I don’t want to hack it in/out each time I could forget in the future or not find all in the past
Aspect Contains behavior that is prominent in many places but
don’t really have anything to do with your business logic. Logging is a canonical example.
Pointcut an expression that details where to apply your behavior
CALL Before, after or wrap around calling a method. EXECUTE Before or after inside executing a method. WITHIN Every single call within a method.
Advice fmt.Println("Hello, 世界")
Logging
Monitoring
Performance Analysis
Debugging & Tracing
Undo Functionality
None
Behavior Mutation
Security
Transactions
Log every call to Itoa
Validation
Time Database Query Latencies
Ensure we log every panic in a goroutine
loom central place for storing .weave files you don’t have
to re-invent the wheel more eyes - better software
it’s really
HACKY
https://github.com/deferpanic/goweave https://github.com/deferpanic/loom