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
Dependencies
Data Encapsulation
Constraints
Error Handling
Naming Conventions
Avoid Complexity
Inheritance
Plays well with others (Java):
Plays well with others (.NET):
Testability
Documentation
Conformance Testing
Maintenance
The Last Concern (Performance)
Case Study: DOM vs. JDOM
Case Study: BoxLayout vs. GridBagLayout
Further Reading