
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

skiftOS is a simple, handmade operating system for the x86 platform, aiming for clean and pretty APIs while keeping the spirit of UNIX.
s...
New

Mediocre typing feel overshadows reliable wireless and fantastic battery life.
New

This Keyboard Lets People Type So Fast It’s Banned From Typing Competitions.
A new peripheral lets you keep typing without ever lifting ...
New

It’s not what programming languages do, it’s what they shepherd you to.
How many of you have listened, read or taken part in a discussio...
New

How a piece of advice became a lifestyle
TABLE OF CONTENTS
WHERE TO BEGIN…
FIRST CONTACT
PICKING EMACS FOR LIFE
CHEATING ON EMACS
SERE...
New

API Gateway Trends behind Features: Apache APISIX 3.0 vs. Kong 3.0 - API7.ai.
By comparing the open-source API Gateway Apache APISIX and...
New

Docker on MacOS is slow and how to fix it.
Thanks to the DALL·E 2, we finally have a very nice graphic representation of the feelings of...
New

Apple’s Tim Cook to take 50% pay hit after shareholder feedback.
‘Target compensation’ for CEO down from $99.4m in 2022 to an expected $...
New

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

New
Other popular topics

I’m thinking of buying a monitor that I can rotate to use as a vertical monitor?
Also, I want to know if someone is using it for program...
New

You might be thinking we should just ask who’s not using VSCode :joy: however there are some new additions in the space that might give V...
New

We have a thread about the keyboards we have, but what about nice keyboards we come across that we want? If you have seen any that look n...
New

I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New

I have seen the keycaps I want - they are due for a group-buy this week but won’t be delivered until October next year!!! :rofl:
The Ser...
New

Hello content creators! Happy new year. What tech topics do you think will be the focus of 2021? My vote for one topic is ethics in tech...
New

Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New

Biggest jackpot ever apparently! :upside_down_face:
I don’t (usually) gamble/play the lottery, but working on a program to predict the...
New

Author Spotlight
Jamis Buck
@jamis
This month, we have the pleasure of spotlighting author Jamis Buck, who has written Mazes for Prog...
New

Hello,
I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
Categories:
Sub Categories:
- All
- In The News
- Dev Chat (200)
- 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
- /ruby
- /wasm
- /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
- /php
- /deepseek
- /html
- /zig
- /scala
- /sublime-text
- /textmate
- /lisp
- /debian
- /nixos
- /agda
- /react-native
- /kubuntu
- /arch-linux
- /django
- /revery
- /ubuntu
- /manjaro
- /spring
- /nodejs
- /diversity
- /lua
- /julia
- /slackware
- /c
- /markdown