
CommunityNews
How to design a good API and why it matters (2006)
ABSTRACT
In lieu of a traditional , I’ve tried to distill the essence of the talk into a collection of maxims:
- All programmers are API designers. Good programs are modular, and intermodular boundaries define APIs. Good modules get reused.
- APIs can be among your greatest assets or liabilities. Good APIs create long-term customers; bad ones create long-term support nightmares.
- Public APIs, like diamonds, are forever. You have one chance to get it right so give it your best.
- APIs should be easy to use and hard to misuse. It should be easy to do simple things; possible to do complex things; and impossible, or at least difficult, to do wrong things.
- APIs should be self-documenting: It should rarely require documentation to read code written to a good API. In fact, it should rarely require documentation to write it…
Read in full here:
https://dl.acm.org/doi/10.1145/1176617.1176622
This thread was posted by one of our members via one of our news source trackers.
Most Liked

apsori
This is a very good and exhaustive list of principles to guide a junior programmer, such as myself. I only learned programming through self-study.
1
Popular General Dev topics
New

Hush Keyboards with Hushboard.
Yesterday while surfing the ASCII highways of IRC (yes, IRC) a URL linking to a MacOS application scrolle...
New

Site
Fingerprinting
google.com
Yes
youtube.com
Yes
Amazon.com
Yes
Yahoo.com
Yes
Zoom.us
No
Facebook.com
Yes
Reddit.com
Ye...
New

TOKYO (Kyodo) – Japan’s government plans to encourage firms to let their employees choose to work four days a week instead of five, aimin...
New

GitHub - hlissner/doom-emacs: An Emacs framework for the stubborn martian hacker.
An Emacs framework for the stubborn martian hacker - G...
New

The overengineered Solution to my Pigeon Problem.
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlle...
New

50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs.
Go is a simple and fun language, but, like any other language,...
New

Building a Slack/Discord alternative with Tauri/Rust linen <span class="hashtag-icon-placeholder"></span>blog.
Introduction My name is K...
New

Apple Patents Suggest Future AirPods Could Monitor Biosignals & Brain Activity - AppleMagazine.
The US Patent & Trademark Office...
New

Truly independent web browser. Contribute to LadybirdBrowser/ladybird development by creating an account on GitHub.
New
Other popular topics

I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New

Curious to know which languages and frameworks you’re all thinking about learning next :upside_down_face:
Perhaps if there’s enough peop...
New

poll
poll
Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New

Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New

We’ve talked about his book briefly here but it is quickly becoming obsolete - so he’s decided to create a series of 7 podcasts, the firs...
New

Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New

Author Spotlight
Dmitry Zinoviev
@aqsaqal
Today we’re putting our spotlight on Dmitry Zinoviev, author of Data Science Essentials in ...
New

Was just curious to see if any were around, found this one:
I got 51/100:
Not sure if it was meant to buy I am sure at times the b...
New
New

Author Spotlight:
David Bryant Copeland
@davetron5000
We’re so happy to bring you another Author Spotlight, a series where we sit dow...
New
Categories:
Sub Categories:
- All
- In The News
- Dev Chat (201)
- Questions (32)
- Resources (118)
- Blogs/Talks (26)
- Jobs (3)
- Events (15)
- Code Editors (58)
- Hardware (57)
- Reviews (5)
- Sales (15)
- Design & UX (4)
- Marketing & SEO (1)
- Industry & Culture (14)
- Ethics & Privacy (19)
- Business (4)
- Learning Methods (4)
- Content Creators (7)
- DevOps & Hosting (9)
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /rails
- /js
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /onivim
- /svelte
- /typescript
- /crystal
- /kotlin
- /c-plus-plus
- /tailwind
- /gleam
- /ocaml
- /react
- /elm
- /flutter
- /vscode
- /ash
- /opensuse
- /centos
- /html
- /php
- /deepseek
- /zig
- /scala
- /textmate
- /lisp
- /sublime-text
- /nixos
- /debian
- /react-native
- /agda
- /kubuntu
- /arch-linux
- /revery
- /django
- /ubuntu
- /spring
- /manjaro
- /nodejs
- /diversity
- /lua
- /julia
- /slackware
- /c
- /neovim