User Interface Principles in API Design
Programmers Are People Too
User Interface Design is a Science
Fundamental Principles
Libraries vs. Applications
Remember the People
What to put in an API
Data Encapsulation
Constraints
Requirements
Naming Conventions
Plays well with others (Java version):
Plays well with others (.NET version):
The Last Concern (Performance)
Documentation
Inheritance
Maintenance
Conformance Testing
Avoid Complexity
Case Study: JDOM
Case Study: GridBagLayout
Further Reading