How To Design A Good API and Why it Matters
Google TechTalks12 HN recommenders · recommended in 12 months, 2011–2025
talk · intermediate · evergreen · 2011–2025 on HN
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.
Up next
4 mo on HNDebt Metaphor
Ward Cunningham
3 HN recommender · 2009–2023
1 mo on HNThe Principles of Clean Architecture by Uncle Bob Martin
NorfolkDevelopers
1 HN recommend · 2016–2021
8 mo on HN"The Mess We're In" by Joe Armstrong
Strange Loop Conference
10 HN recommender · 2014–2025
3 mo on HN"Agile Methods The Good, the Hype and the Ugly," Bertrand Meyer
Association for Computing Machinery (ACM)
2 HN recommender · 2018–2024
3 mo on HNPeter Norvig - The Unreasonable Effectiveness of Data
UBC Computer Science
3 HN recommender · 2012–2026
10 mo on HNHamming, "You and Your Research" (June 6, 1995)
securitylectures
11 HN recommender · 2012–2023
8 mo on HNSteve Jobs' 2005 Stanford Commencement Address
Stanford
9 HN recommender · 2009–2023
15 mo on HNRailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
15 HN recommender · 2015–2025
14 mo on HN"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
14 HN recommender · 2022–2026
13 mo on HN"Making Impossible States Impossible" by Richard Feldman
elm-conf
9 HN recommender · 2017–2026
11 mo on HNThe Value of Values with Rich Hickey
InfoQ
10 HN recommender · 2014–2023
10 mo on HNOverwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
16 HN recommender · 2019–2025
12 comments from Hacker News
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. ▶ this video
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: ▶ this video If you're interested in the topic and haven't seen it yet, I urge you to do so ASAP.
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: ▶ this video What else should be in this bibliography?
Here are some of my favorites: How To Design A Good API and Why it Matters ▶ this video Agile Methods The Good, the Hype and the Ugly link
a.) On java - one hour talk but good: * How To Design A Good API and Why it Matters ▶ this 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
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] ▶ this video [1] link [2] link [3] link
Don't miss Joshua Bloch (from "Effective Java" fame) great presentation: How to design a good API and why it matters ▶ this video and the accompanying slides: link
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: ▶ this video
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] ▶ this video
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: ▶ this video Google TechTalk on Git by Linus Torvalds: link All talks ever given by Alan Kay, for example: link
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") ▶ this video
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": ▶ this video [1] link