How To Design A Good API and Why it Matters

Google TechTalks12 HN recommenders · 2011–2025
453K views · talk · evergreen · Uploaded 2007-10-09

Joshua Bloch's Google Tech Talk on how to design good APIs and why it matters, with concrete principles and examples. It treats every programmer as an occasional API designer.

HN repeatedly names it the best resource on API design, a staple answer to any 'how do I design an API' question.

Watch on YouTube

14 comments from Hacker News

@rjhackin2011 · in “Ask HN: What makes a good API presentation?”

Joshua Bloch gave a good presentation on API design, you might have seen this before. Here is the link - [VIDEO] Mostly along those lines will make a presentation useful and interesting. Not sure whats the time limit for your presentation but real life example would keep the audience more interactive or building something on the fly from ground up.

RecommendsView on HN
@d_r2011 · in “Ask HN: API design practices”

Not specifically about web service APIs, but you might enjoy this talk by Joshua Bloch [1]: "How To Design A Good API and Why it Matters": [VIDEO] [1] [LINK]

RecommendsView on HN
@socratic2011 · in “How to Rock a Systems Design Interview”

Obviously, this is marketing rather than a serious treatment of the topic. It seems to basically say: "in order to design a system, you should have a regular undergraduate Computer Science education" which seems maybe like a prerequisite (and maybe informative about their hiring process) but not very useful. However, for what it's worth, the two best resources I've seen for systems design are: Hints for Computer System Design: [LINK] How to Design a Good API: [VIDEO] What else should be in this bibliography?

Strongly recommendsView on HN
@d_r2011 · in “Ask HN: How to design and structure a framework/api”

How about this to start? "How To Design A Good API and Why it Matters" -- a great talk by Joshua Bloch (also the author of "Effective Java") [VIDEO]

RecommendsView on HN
@philbo2012 · in “API Design is UI for Developers”

I'm building a public API in my current job and, a few weeks ago, I was scouting around for the good API design advice. Absolutely far and away the best resource that I found was this Google TechTalk by Joshua Bloch: [VIDEO] If you're interested in the topic and haven't seen it yet, I urge you to do so ASAP.

Strongly recommendsView on HN
@stiff2013 · in “Ask HN: What's the best technical talk you've heard?”

Single best is difficult, here are some favourites of mine: "You and your research" by Richard Hamming: [LINK] "How to design a good API and why it matters" by Joschua Bloch: [VIDEO] Google TechTalk on Git by Linus Torvalds: [LINK] All talks ever given by Alan Kay, for example: [LINK]

RecommendsView on HN
@mockindignant2014 · in “Ask HN: What makes an API good?”

I highly recommend this ~hour long talk given by Josh Bloch a few years ago, it is quite good and gives plenty of concrete examples: [VIDEO]

RecommendsView on HN
@paulkoer2014 · in “Ask HN: What makes an API good?”

I highly recommend the following talk by Joshua Bloch: "How to design a good API and why it mattes" [1]. Key points: - When in doubt, leave it out - you can never remove things from an API but always add to it. - Write several clients of the API to get a good feel how its used. Three is usually enough, one is not. [1] [VIDEO]

RecommendsView on HN
@esja2016 · in “Ask HN: What are good reads for designing APIs?”

The Little Manual of API Design (Trolltech/Nokia): [LINK] How to Design a Good API and Why it Matters (Josh Bloch): [LINK] [VIDEO]

@neves2016 · in “Ask HN: What are good reads for designing APIs?”

Don't miss Joshua Bloch (from "Effective Java" fame) great presentation: How to design a good API and why it matters [VIDEO] and the accompanying slides: [LINK]

RecommendsView on HN
@0xmohit2016 · in “Ask HN: What's your favorite tech talk?”

How To Design A Good API and Why it Matters [0] The Principles of Clean Architecture [1] The State of the Art in Microservices by Adrian Cockcroft [2] "The Mess We're In" by Joe Armstrong [3] [0] [VIDEO] [1] [LINK] [2] [LINK] [3] [LINK]

RecommendsView on HN
@watwut2018 · in “Good learning material – JAVA, Spring”

a.) On java - one hour talk but good: * How To Design A Good API and Why it Matters [VIDEO] b.) General code structure - dont to read it cover to cover unless you like to, you will die of boredom, but definitely have a look in library. It will help you to think about code structure right way. * Refactoring: Improving the Design of Existing Code * Code Complete c.) Object Oriented Programming * Design Patterns: Elements of Reusable Object-Oriented The three books I recommended are older, but not much changed in basics of object oriented programming. They are well readable. I would also recommend to read something on functional programming, mostly so that you see another approach too and thus wont go too far with object design where it does not suits. d.) 8.) I read awesome book on estimations, I really really hope it is this one: * Software Estimation: Demystifying the Black Art tldr: There is difference between negotiation and estimation, make sure you know which you are doing. Split it into smaller tasks and then estimate minimum, maximum and most likely. Then calculate (min+4*likely+max)/6. Surprisingly, it works and is faster then do one estimate. It is also more precise then anything else I tried. I really hope I shown you right book. e.) On Spring and rest, I would recommend to read documentation and write own code. I don't recall a book that would blow my mind, so I guess any will do. f.) For general "latest tech" learning, I like [LINK] site. There are mostly techie te

RecommendsView on HN
@DanPristupov2018 · in “Ask HN: What are some of the best technical talks you've heard?”

Here are some of my favorites: How To Design A Good API and Why it Matters [VIDEO] Agile Methods The Good, the Hype and the Ugly [LINK]

RecommendsView on HN
@minzak2025 · in “Everything I know about good API design”

Nice article. I'd also highly recommend "How To Design A Good API and Why it Matters" video from Joshua Bloch (co-author of Java). He digs much deeper, mostly at code level rather than JSON level but the same principles apply. Even though this video is almost 20 years old, the topics are as significant today as they were back then. [VIDEO]

Strongly recommendsView on HN