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
Neovim nightly, v0.5.0 and v0.4.4 has been released.
Link: Release Nvim development (prerelease) build · neovim/neovim · GitHub
Link:...
New
It has some interesting features:
It’s entirely wireless (the left half speaks Bluetooth to the right half, and the right half speaks B...
New
You can now buy a 100W USB-C cable with a built-in power meter.
They’re just $20 on Amazon, and they work!
New
GitHub - Rezmason/matrix: matrix (web-based green code rain, made with love).
matrix (web-based green code rain, made with love) - GitHu...
New
Building GitHub with Ruby and Rails | The GitHub Blog.
Since the beginning, GitHub.com has been a Ruby on Rails monolith. Today, the app...
New
9 fintech engineering mistakes.
Read this list unless you want to build a money dissappearing system
New
The Definitive PHP 7.2, 7.3, 7.4, 8.0, and 8.1 Benchmarks (2023).
We tested the performance of 14 PHP platforms (WordPress, Drupal, Lara...
New
Dark mode isn’t as good for your eyes as you believe.
The shadowy display mode has leagues of fans claiming it helps reduce eye strain, ...
New
The French originated the meter in the 1790s as one/ten-millionth of the distance from the equator to the north pole along a meridian thr...
New
Bare is a minimal and modular JavaScript runtime designed for building high-performance apps across desktop and mobile. Open-source, fast...
New
Other popular topics
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
There’s a whole world of custom keycaps out there that I didn’t know existed!
Check out all of our Keycaps threads here:
https://forum....
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
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting:
asdf install erlang 23.1.2
Configure failed.
checking ...
New
I am asking for any distro that only has the bare-bones to be able to get a shell in the server and then just install the packages as we ...
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
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
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
Explore the power of Ash Framework by modeling and building the domain for a real-world web application.
Rebecca Le @sevenseacat and ...
New
This is cool!
DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON
We just witnessed something incredible: the largest open-s...
New
Categories:
Sub Categories:
- All
- In The News
- Dev Chat (208)
- Questions (37)
- Resources (122)
- Blogs/Talks (29)
- Jobs (3)
- Events (15)
- Code Editors (59)
- Hardware (60)
- Reviews (5)
- Sales (16)
- Design & UX (5)
- Marketing & SEO (2)
- Industry & Culture (14)
- Ethics & Privacy (19)
- Business (4)
- Learning Methods (7)
- Content Creators (7)
- DevOps & Hosting (13)
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /python
- /js
- /rails
- /security
- /go
- /swift
- /vim
- /java
- /clojure
- /emacs
- /haskell
- /typescript
- /svelte
- /onivim
- /kotlin
- /c-plus-plus
- /crystal
- /tailwind
- /react
- /gleam
- /ocaml
- /elm
- /vscode
- /flutter
- /html
- /ash
- /deepseek
- /zig
- /opensuse
- /centos
- /php
- /react-native
- /scala
- /lisp
- /sublime-text
- /textmate
- /debian
- /nixos
- /agda
- /deno
- /django
- /kubuntu
- /nodejs
- /arch-linux
- /ubuntu
- /spring
- /revery
- /manjaro
- /julia
- /lua
- /diversity
- /quarkus
- /markdown









