or
Sign in to turn on 1-Click ordering.
or
Amazon Prime free trial required. Sign up when you check out. Learn more
More Buying Choices
Have one to sell? Sell yours here
or
Get a £4.75 Amazon.co.uk Gift Card
Large-Scale C++ Software Design (APC)
 
See larger image
 
Tell the Publisher!
Id like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Large-Scale C++ Software Design (APC) [Paperback]

John Lakos
4.8 out of 5 stars  See all reviews (17 customer reviews)
RRP: £50.99
Price: £43.34 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £7.65 (15%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In stock.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.
Only 6 left in stock--order soon (more on the way).
Want guaranteed delivery by Friday, June 1? Choose Express delivery at checkout. See Details
Trade In this Item for up to £4.75
Get an extra £5 when you trade in books worth £10 or more until June 30, 2012. Trade in Large-Scale C++ Software Design (APC) for an Amazon.co.uk gift card of up to £4.75, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Find more products eligible for trade-in.

Special Offers and Product Promotions

  • Jubilee offer: spend £10 or more on any product sold by Amazon.co.uk on or before June 6 and you can buy The Diamond Jubilee  A Classical Celebration Album for just £2.50 Here's how (terms and conditions apply)

Frequently Bought Together

Large-Scale C++ Software Design (APC) + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Addison-Wesley Professional Computing Series) + Design patterns : elements of reusable object-oriented software
Price For All Three: £94.24

Show availability and delivery details

Buy the selected items together


Product details

  • Paperback: 896 pages
  • Publisher: Addison Wesley; 1 edition (10 July 1996)
  • Language English
  • ISBN-10: 0201633620
  • ISBN-13: 978-0201633627
  • Product Dimensions: 23.5 x 19 x 3.3 cm
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (17 customer reviews)
  • Amazon Bestsellers Rank: 117,591 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

John S. Lakos
Discover books, learn about writers, and more.

Visit Amazon's John S. Lakos Page

Product Description

Product Description

Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, you will also need a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience. This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language. In this book, Lakos explains the process of decomposing large systems into physical (not inheritance) hierarchies of smaller, more manageable components. Such systems with their acyclic physical dependencies are fundamentally easier and more economical to maintain, test, and reuse than tightly interdependent systems.In addition to explaining the motivation for following good physical as well as logical design practices, Lakos provides you with a catalog of specific techniques designed to eliminate cyclic, compile-time, and link-time (physical) dependencies. He then extends these concepts from large to very large systems. The book concludes with a comprehensive top-down approach to the logical design of individual components. Appendices include a valuable design pattern "Protocol Hierarchy" designed to avoid fat interfaces while minimizing physical dependencies; the details of implementing an ANSI C compatible C++ procedural interface; and a complete specification for a suite of UNIX-like tools to extract and analyze physical dependencies. Practical design rules, guidelines, and principles are also collected in an appendix and indexed for quick reference. 0201633620B04062001

From the Back Cover

Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, you will also need a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience.

This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language.

In this book, Lakos explains the process of decomposing large systems into physical (not inheritance) hierarchies of smaller, more manageable components. Such systems with their acyclic physical dependencies are fundamentally easier and more economical to maintain, test, and reuse than tightly interdependent systems. In addition to explaining the motivation for following good physical as well as logical design practices, Lakos provides you with a catalog of specific techniques designed to eliminate cyclic, compile-time, and link-time (physical) dependencies. He then extends these concepts from large to very large systems. The book concludes with a comprehensive top-down approach to the logical design of individual components. Appendices include a valuable design pattern "Protocol Hierarchy" designed to avoid fat interfaces while minimizing physical dependencies; the details of implementing an ANSI C compatible C++ procedural interface; and a complete specification for a suite of UNIX-like tools to extract and analyze physical dependencies. Practical design rules, guidelines, and principles are also collected in an appendix and indexed for quick reference.



0201633620B04062001

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


Customer Reviews

Most Helpful Customer Reviews
9 of 9 people found the following review helpful
By A Customer
Format:Paperback
Have you ever noticed that none of your introductions to C++ ever mention things like header files? This book corrects that omission with a vengeance, taking us deep into the nuts and bolts of real software. It describes things no other book is going to mention (e.g. redundant external include guards, or static nonmember functions to replace private members) and things the object-oriented community prefers to be silent about (e.g., encapsulation in files, not in classes).

Lakos's great strength is in pragmatics; this is advice on programming from someone who has been there. If your project is large enough to need source code control, it's large enough to need this book.

Sometimes the book drifts away from its roots, assuming a dragging academic tone. However, this does not change the overall rating -- a book with no substitutes.

Comment | 
Was this review helpful to you?
8 of 8 people found the following review helpful
By A Customer
Format:Paperback
The vast majority of Programming books follow the latest technology trends - new languages, new products. However a book like this, published five years ago, will be useful for as long as C++ is used for professional software development. I've suffered the pain of worked on multi-million line software projects that don't follow the techniques outlined, and I've converted a medium sized software project to follow the guidelines outlined in the book, and I can confirm that this was one of the most practical computer books I've ever read.

In fact I'd have to say it is more useful and practical than the books of C++ tricks and tips that seem so popular, but focus mainly on intricate details of the language.

Unfortunately it is a heavy read, because Lakos provides the sorts of examples and justifications that you need to "buy in" to his suggestions.
I think the length and indepth nature would intimidate people from reading it. However it is very much worth the effort!

Comment | 
Was this review helpful to you?
5 of 5 people found the following review helpful
By A Customer
Format:Paperback
I second much of what has already been said in the previous reviews. This isn't a book for beginners, and its a tough read, but it contains many items that just aren't dealt with in any other book on C++ I've read. The most important point made is that _anything_ appearing in the C++ header file is part of the physical interface, and changing it will affect clients. As with most issues in programming, there's a trade off to be made between efficiency and insulation (and/or simplicity vs. flexibility), which this book tackles well. I certainly feel more confident about sucessfully translating an OOD into a workable C++ framework after reading and ingesting this book. Highly recommended.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
Great source of information on system design
If you are serious about nontrivial C++ system design you should buy this book. I have read many books on object oriented desing, design patterns, refactoring and so on. Read more
Published 20 months ago by D. Baas
Excellent book on the physical architecture of C++ applications
This book assumes you're already proficient in C++ and basic OOP design principles, and considers design at a level one higher than individual classes. Read more
Published on 23 Feb 2007 by Thing with a hook
God's own C++ book
John Lakos is God, and this is His Bible.
Published on 24 Jun 1999
Helpful, to a point
The book offers a lot of tips early on explaining ways to avoid keeping everything in the headers to permit changes to occur without forcing a load of code to recompile. Read more
Published on 17 Feb 1999
A 'Must have" for every serious programmer
Excellent book; covers both logical and physical design, as is very well documented.In these days, when is hardly impossible to find a serious book for professionals, Lakos has... Read more
Published on 20 Jan 1999
One of a kind
After flipping through the pages of this book for two minutes, I knew that a miracle had occured. I have avoided buying many pathetically simple C++ books that introduce nothing... Read more
Published on 14 Dec 1998
If you think you're an expert, think again.
I'm a single developer of about eight years who used to go around thinking that, being alone, the systems I write will always be small, and the interfaces between packages can be... Read more
Published on 1 Dec 1998
Solid real-world advice on physically putting together code
Many programmers, even if they have been in the industry for a while, still do not realize the importance of how a system physically fits together; what header files go where;... Read more
Published on 3 Aug 1998
a 'should read' for every programmer.
This book contains a lot of good hints for things to think about and mistakes to avoid in designing and/or coding a large software projekt. Read more
Published on 28 May 1998
Written from actual experience, a definite good buy
This book is full of advise that comes from actual experience in implementing C++ projects in the real world. Everything is explained clearly, while going straight to the point. Read more
Published on 30 April 1998
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!


Look for similar items by category


Look for similar items by subject


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges