C++ in Action: Industrial-strength Programming Techniques (Paperback)

Bartosz Milewski

  • 出版商: Addison Wesley
  • 出版日期: 2001-06-01
  • 定價: $1,560
  • 售價: 8.0$1,248
  • 語言: 英文
  • 頁數: 485
  • 裝訂: Paperback
  • ISBN: 0201699486
  • ISBN-13: 9780201699487
  • 相關分類: C++ 程式語言
  • 立即出貨(限量)

買這商品的人也買了...

商品描述


Description

C++: Proven techniques for building -- and maintaining -- industrial-strength Windows software.

  • Extensive coverage of resource management -- a crucial technique for building robust, maintainable systems.
  • Detailed coverage of large-scale software projects: strategies, techniques, management, planning, and project dynamics.
  • CD-ROM includes extensive C++ source code library.
C++ in Action introduces state-of-the-art C++ programming and problem-solving techniques for developing efficient, powerful, scalable software systems. Renowned software architect Bartosz Milewski starts from two key premises. First, programs aren't written for computers: they're written for other programmers who will have to integrate and maintain them. Second, software development languages aren't ends in themselves: they're tools to solve problems. Starting from these principles, Milewski presents a comprehensive guide to C++ software engineering for maximum performance, reliability, and maintainability. He shows how to use resource management and exception management together to build more reliable code. Next, he introduces new techniques that simplify Windows development despite the complexity of the Windows API and libraries. The book also includes detailed coverage of large-scale software and scalability, encompassing development strategies and tactics as well as management, planning, and project dynamics. An accompanying CD-ROM and a companion web site contain an extensive source code library.

Bartosz Milewski has been programming since 1986, and teaching C++ since 1994. He is President of Reliable Software, a firm specializing in creating high-quality productivity tools for programmers. Previously, he was architect and programming lead for Microsoft Index Server, a successful commercial application now integrated in Windows 2000. Milewski holds a Ph.D in theoretical physics.

Back to Top


Table Of Contents

Introduction.
Language.
Techniques.
Windows.
Scaling Up.
How to Use this Book.
Language.

Objects and Scopes.
Global scope.
Local Scope.
Embedded objects.
Inheritance.
Member functions and Interfaces.
Member function scope.
Types.
Summary.
Exercises.
Abstract Data Types.
Exercises.

Arrays and references.
References.
Operators.
Arithmetic.
Logic.
Bitwise Logic.
Stack-based calculator.
Functional Specification.
Design.
Stubbed Implementation.
Implementation.
Exercises.

Pointers.
Pointers.
Pointers vs. References.
Pointers vs. Arrays.
Assembly Digression.
Exercises.
Pointers and Dynamic Memory Allocation.
Dynamic Data Structures.
Dynamic Stack.
Linked List.
String Table.
String Buffer.
Table Lookup.
Hash Table.
Test Program.
Exercises.

Polymorphism.
The Meaning of is-a.
Implementation Digression.
The Overhead.
Parse Tree.
C Digression.
Exercises.

Small Software Project.
Software Project.
Specification.
Stubbed Implementation.
Expanding Stubs.
Scanner.
Symbol Table.
Store.
Function Table.
Nodes.
Parser.
Main.
Initialization of Aggregates.
Exercises.
Procedural Programming.
Operator Overloading.
Passing by Value.
Value Semantics.
Techniques.

The Cleanup.
Decoupling the Output.
Fighting Defensive Programming.
A Case of Paranoid Programming.
Fringes.
Improving Communication Between Classes.
Correcting Design Flaws.
Hiding Implementation Details.
Using Embedded Classes.
Combining Classes.
Combining Things using Namespaces.
Hiding Constants in Enumerations.
Hiding Constants in Local Variables.

Sharing.
Isolating Global Program Parameters.
Pushing the Envelope.
Templates.
Exercises.

Removing Limitations.
Dynamic Array.
Dynamic MultiNode.
Dynamic StringBuffer.
Dynamic SymbolTable.
Dynamic Store.
Standard Vector.

Resource Management.
Exceptions.
Stack Unwinding.
Resources.
Ownership of Resources.
Access to Resources.
Smart Pointers.
Ownership Transfer: First Attempt.
Ownership Transfer: Second Attempt.
Safe Containers.
Iterators.
Error Propagation.
Conversion to Resource Management.
Conclusion.

Making Use of the STL.
Reference Counting and Copy-On-Write.
End of Restrictions.
Getting Rid of C-Strings.
Exploring Streams.

Serialization and Deserialization.
The Calculator Object.
Command Parser.
Serialization and Deserialization.
In-Memory (De-) Serialization.
Multiple Inheritance.
Conclusion.

Overloading Operator new.
Class-specific new.
Caching.
Bulk Allocation.
Array new.
Global new.
Macros.
Tracing Memory Leaks.
Debug Output.
Placement new.
Windows.

Libraries.
Of Macros and Wizards.

Programming Paradigm.
Hello Windows!
Encapsulation.

Controlling Windows through C++.
Model-View-Controller.
Exception Specification.
Cleanup.

Painting.
Application Icon.
Window Painting and the View Object.
The Canvas.
The WM_PAINT Message.
The Model.
Capturing the Mouse.
Adding Colors and Frills.

Windows Application.
Porting the Calculator to Windows.
User Interface.
Child Windows.
Windows Controls.
Static Text.
Edit Control.
Window Subclassing.
Plugging in the Calculator.
List Box Control.
Model-View Feedback Loop.
Commands and Menus.
Dynamic Menus.
Dialogs.
Exercises.

Scaling Up.
About Software.
Complexity.
The Fractal Nature of Software.
The Living Project.
The Living Programmer.

Design Strategies.
Top-Down Object Oriented Design.
Model-View-Controller.
Documentation.
Requirement Specification.
Architecture Specification.

Team Work.
Productivity.
Team Strategies.

Implementation Strategies.
Global Decisions.
Top-Down Object Oriented Implementation.
Program Modifications.
Inheriting Legacy Code.
Multi-platform development.

Porting.
Creating an Abstraction Layer.
Porting the Calculator.
Eliminating Simple Windows Dependencies.
Non-trivial Windows Dependencies.
The Advantages of Porting.

Bibliography.
Appendices.
Exercise Solutions.
Transactions.
Transient Transactions.
Persistent Transactions.
The Three-File Scheme.
The Mapping-File Scheme. 0201699486T04062001



Back to Top

商品描述(中文翻譯)

《C++ in Action》是一本介紹C++程式設計和問題解決技巧的書籍,旨在開發高效、強大和可擴展的軟體系統。著名軟體架構師Bartosz Milewski從兩個關鍵前提出發。首先,程式不是為了電腦而寫的,而是為了其他程式設計師來整合和維護。其次,軟體開發語言不是目的,而是解決問題的工具。基於這些原則,Milewski提供了一個全面的C++軟體工程指南,以實現最佳性能、可靠性和可維護性。他展示了如何結合資源管理和例外管理來構建更可靠的程式碼。接下來,他介紹了簡化Windows開發的新技術,儘管Windows API和庫的複雜性。該書還詳細介紹了大型軟體和可擴展性,包括開發策略和戰術,以及管理、計劃和項目動態。附帶的CD-ROM和配套網站包含了大量的源代碼庫。

作者Bartosz Milewski自1986年開始編程,自1994年起教授C++課程。他是Reliable Software的總裁,該公司專門為程式設計師創建高質量的生產力工具。在此之前,他是Microsoft Index Server的架構師和程式設計主管,該成功的商業應用現已集成在Windows 2000中。Milewski擁有理論物理學博士學位。

目錄包括:
- 引言:語言、技巧、Windows、擴展、如何使用本書
- 物件和作用域:全域作用域、區域作用域、嵌入式物件、繼承、成員函數和介面、成員函數作用域、類型、摘要、練習、抽象資料類型、練習
- 陣列和引用:引用、運算子、算術、邏輯、位元邏輯、基於堆疊的計算機、功能規格、設計、存根實現、實現、練習
- 指標:指標、指標與引用、指標與陣列、組合語言、練習、指標和動態記憶體配置、動態資料結構、動態堆疊、鏈結列表、字串表、字串緩衝區、表查找、哈希表、測試程式、練習
- 多型:is-a的意義、實現細節、開銷、解析樹、C語言細節、練習
- 小型軟體專案:軟體專案、規格、存根實現、擴展存根、掃描器、符號表、存儲、函數表、節點、解析器、主程式、初始化聚合

該書提供了豐富的C++源代碼庫,附帶CD-ROM和配套網站。