Building a program is one thing, writing a code that is going to be consumed from others, another. In this chapter we will take a look at designing libraries and the problems that are to be solved in that aspect:
- Interfaces - defining meaningful interface that expose enough functionallity, but in the same time hide the internals well
- Information hiding - what is public and what private?
- Resource management - who is responsible for the resources shared with the library?
- Error handling - how do you handle errors, how do you recover from one and how do you return them to your consumer?
- 4.1 Comma-Separated Values
- 4.2 A Prototype Library
- 4.3 A Library For Others
- 4.4 A C++ Implementation
- 4.5 Interface Principles
- 4.6 Resource Management
- 4.7 Abort, Retry, Fail?
- 4.8 User Interfaces
- The Mythical Man Month by Frederick P. Brooks, Jr.
- Large-Scale C++ Software Design by John Lakos
- C Interfaces and Implementations by David Hanson
- Rapid Development by Steve McConnell
- Designing Visual Interfaces: Communication Oriented Techniques by Kevin Mullet and Darrell Sano
- Designing the User Interface: Strategies for Effective Human-Computer Interaction by Ben Shneidermann
- About Face: The Essentials of User Interface Desing by Alan Cooper
- User Interface Design by Harold Thimbleby