There are several other good answers on this already, so I thought I'd just throw in some links I didn't see mentioned.
Articles
- "A Little Manual Of API Design" by Jasmin Blanchette of Trolltech
- "Defining QT-Style C++ APIs" also Trolltech
Books:
- "Effective Java" by Joshua Bloch
- "The Practice Of Programming" by Kernighan and Pike