[{"data":1,"prerenderedAt":73},["ShallowReactive",2],{"term-l\u002Flaw-of-leaky-abstractions":3,"related-l\u002Flaw-of-leaky-abstractions":58},{"id":4,"title":5,"acronym":6,"body":7,"category":40,"description":41,"difficulty":42,"extension":43,"letter":44,"meta":45,"navigation":46,"path":47,"related":48,"seo":52,"sitemap":53,"stem":56,"subcategory":6,"__hash__":57},"terms\u002Fterms\u002Fl\u002Flaw-of-leaky-abstractions.md","Law of Leaky Abstractions",null,{"type":8,"value":9,"toc":33},"minimark",[10,15,19,23,26,30],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"The Law of Leaky Abstractions states that all non-trivial abstractions leak — Joel Spolsky named it, every senior dev has lived it. An abstraction is supposed to hide complexity. SQL hides how the database actually retrieves data. TCP hides how packets actually travel. But eventually, the hidden complexity shows through — a slow query forces you to understand the query planner, a packet loss issue forces you to understand the network. Every \"you don't need to know this\" eventually becomes \"you need to know this.\"",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Joel Spolsky coined the Law of Leaky Abstractions in 2002: \"All non-trivial abstractions, to some degree, are leaky.\" The implication is practical: you cannot fully rely on an abstraction without understanding what it abstracts. ORMs leak SQL. HTTP frameworks leak the HTTP spec. Cloud services leak their underlying infrastructure behavior. Senior engineers internalize this — they use abstractions productively while maintaining enough understanding of what's underneath to debug when the abstraction fails.",[11,27,29],{"id":28},"when-youll-hear-this","When You'll Hear This",[16,31,32],{},"\"The ORM works until you need to tune queries — then you're writing SQL anyway. Leaky abstraction.\" \u002F \"You need to understand TCP to debug why the WebSocket keeps dropping. Law of leaky abstractions.\"",{"title":34,"searchDepth":35,"depth":35,"links":36},"",2,[37,38,39],{"id":13,"depth":35,"text":14},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},"general","The Law of Leaky Abstractions states that all non-trivial abstractions leak — Joel Spolsky named it, every senior dev has lived it.","advanced","md","l",{},true,"\u002Fterms\u002Fl\u002Flaw-of-leaky-abstractions",[49,50,51],"Abstraction","Technical Debt","API",{"title":5,"description":41},{"changefreq":54,"priority":55},"weekly",0.7,"terms\u002Fl\u002Flaw-of-leaky-abstractions","nT1XgxicgEDlGOsICNi9ay8pIqKbL1oRt9Bsk1v1m04",[59,64,69],{"title":49,"path":60,"acronym":6,"category":61,"difficulty":62,"description":63},"\u002Fterms\u002Fa\u002Fabstraction","architecture","beginner","Abstraction is hiding the messy details and showing only what matters.",{"title":51,"path":65,"acronym":66,"category":67,"difficulty":62,"description":68},"\u002Fterms\u002Fa\u002Fapi","Application Programming Interface","backend","An API is like a menu at a restaurant. The kitchen (server) can do a bunch of things, but you can only order what's on the menu.",{"title":50,"path":70,"acronym":6,"category":71,"difficulty":62,"description":72},"\u002Fterms\u002Ft\u002Ftechnical-debt","vibecoding","Technical debt is the coding equivalent of putting things on a credit card.",1775560910188]