Professional C++

I strongly disliked writing when I was in school. In fact, it probably wouldn’t be too strong to say I hated it. In college I actively avoided classes involving writing assignments. So I sometimes find it hard to believe that not only do I enjoy writing now, I was the lead author of an 838-page book on C++.

My co-author, Scott Kleper, wrote a great post about the process of writing Professional C++, so I won’t dwell on that here. Instead, I’d like to introduce a few of the features that we feel sets Professional C++ apart from other programming books. In future posts I’ll cover some of the particularly interesting aspects of the C++ language and C++ software engineering.

Scott and I believe that teaching C++ programming involves two things: teaching C++ and teaching programming. To that end, we tried to present the C++ syntax and feature-set in the larger context of software engineering and object-oriented methodologies. Specifically,


  • Emphasis on design, including object-oriented design, design themes of abstraction and reuse, design techniques such as smart pointers, and design patterns such as the singleton pattern.

  • Discussion of software engineering methodologies such as extreme programming.

  • Focus on style. We include an entire chapter on C++ style, and call attention to good stylistic practices throughout the book.

  • Inclusion of debugging and testing strategies. We devote over 50 pages to testing and debugging.

  • Discussion of “extra” topics such as writing efficient C++ code, mixing C++ with other languages, and using distributed objects.


In addition, we of course cover all the "usual" C++ stuff: objects, classes, inheritance, memory management, templates, operator overloading, the STL, I/O, exceptions, etc. Watch this space for a tutorial on smart pointers, coming soon!

Comments:

Great Book.

Posted by Con on April 30, 2007 at 01:11 PM MDT #

Wow, I'm not familiar with "extreme programming." I did make some quick changes to a script on my palm top computer while perched on a steep precipice in the field one summer. Would that count? Or do you actually need to be in free-fall for it to be truly extreme? I guess I'll just have to buy the book to find out.

Posted by Matt on April 30, 2007 at 02:31 PM MDT #

Hi.... I am from India, I brought this book looking at the index, I never knew anything about u folks. I thoroughly enjoyed reading the book because its a perfect recipe for students who want to enter the corporate world .

Posted by P.R TARAKESHWAR RAO on April 30, 2007 at 08:58 PM MDT #

the book is great i still use it as a reference from time to time.

You all covered just about everything:
programming best practices (design patterns, c++ specific implementation auto pointers), testing, debugging, ect.

i just wished there was sections devoted to "Continuous Integration", dependency injection.

for dependency injection for c++ is done at compile time with make files. took me a while to figure that one out.

for continuous integration ... i haven't found a book that explains this yet. makefile, makefile.am, makefile.in? the goal now is automation from build, test, clean, deploy, publish, fetch, doc generation. What are professional ways of dealing with this? How do you manage build environments with different hardware architecture, operating systems, ect. [firefox browser build system?]

hopefully you pros can provide insight into beating that beast.

- lm

Posted by Leblanc Meneses on May 05, 2008 at 07:12 AM MDT #

Post a Comment:
Comments are closed for this entry.
About

Nick Solter is a software engineer and author living in Colorado.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today