이미 소장하고 있다면 판매해 보세요.
|
Foreword
Preface 1. Introduction What Are Application Programming Interfaces? What's Different about API Design? Why Should You Use APIs? When Should You Avoid APIs? API Examples File Formats and Network Protocols About This Book 2. Qualities Model the Problem Domain Hide Implementation Details Minimally Complete Easy to Use Loosely Coupled Stable, Documented, and Tested 3. Patterns Pimpl Idiom Singleton Factory Methods API Wrapping Patterns Observer Pattern 4. Design A Case for Good Design Gathering Functional Requirements Creating Use Cases Elements of API Design Architecture Design Class Design Function Design 5. Styles Flat C APIs Object-Oriented C++ APIs Template-Based APIs Data-Driven APIs 6. C++ Usage Namespaces Constructors and Assignment Const Correctness Templates Operator Overloading Function Parameters Avoid #define for Constants Avoid Using Friends Exporting Symbols Coding Conventions 7. Performance Pass Input Arguments by Const Reference Minimize #include Dependencies Declaring Constants Initialization Lists Memory Optimization Don't Inline Until You Need To Copy on Write Iterating Over Elements Performance Analysis 8. Versioning Version Numbers Software Branching Strategies Life Cycle of an API Levels of Compatibility How to Maintain Backward Compatibility API Reviews 9. Documentation Reasons to Write Documentation Types of Documentation Documentation Usability Using Doxygen 10. Testing Reasons to Write Tests Types of API Testing Writing Good Tests Writing Testable Code Automated Testing Tools 11. Scripting Adding Script Bindings Script-Binding Technologies Adding Python Bindings with Boost Python Adding Ruby Bindings with SWIG 12. Extensibility Extending via Plugins Extending via Inheritance Extending via Templates Appendix A: Libraries Static versus Dynamic Libraries Libraries on Windows Libraries on Linux Libraries on Mac OS X Bibliography Index |