

Buy Large-Scale C++ Software Design (Addison-Wesley Professional Computing Series) 1 by Lakos, John (ISBN: 8601300152905) from desertcart's Book Store. Everyday low prices and free delivery on eligible orders. Review: Very good - Good book for advanced c++ topics. Not for beginners Review: Must read for software architects - Lakos really rubs your nose into the fact that every change to a header file has (potentially far-reaching) consequences. He formally introduces some concepts that every programmer has a vague idea about but never really stops to think about. If you want to write a system with thousands of components and you want to be able to expand and maintain that system for years to come, then this book is an essential read. Every serious software company should own at least one copy. I do have some problems with the age of the C++ code in the book. Many of his examples are outdated (they were written even before the C++98 standard) and it shows. You have to mentally do the conversion of his examples to more modern C++ (using e.g. the guidelines in C++ Coding Standards : Rules, Guidelines, and Best Practices ). So if you can read past the aging C++ code, this book comes highly recommended to experienced (or aspiring) software architects. I wouldn't recommend it to the novice since it can be daunting at times.





























| Best Sellers Rank | 570,455 in Books ( See Top 100 in Books ) 432 in Programming Languages & Tools 1,339 in Software Design & Development 1,352 in Computing & Internet for Professionals |
| Customer reviews | 4.5 4.5 out of 5 stars (33) |
| Dimensions | 23.47 x 19 x 3.3 cm |
| Edition | 1st |
| ISBN-10 | 0201633620 |
| ISBN-13 | 978-0201633627 |
| Item weight | 210 g |
| Language | English |
| Print length | 896 pages |
| Publication date | 28 Aug. 1996 |
| Publisher | Addison-Wesley Professional |
J**N
Very good
Good book for advanced c++ topics. Not for beginners
K**S
Must read for software architects
Lakos really rubs your nose into the fact that every change to a header file has (potentially far-reaching) consequences. He formally introduces some concepts that every programmer has a vague idea about but never really stops to think about. If you want to write a system with thousands of components and you want to be able to expand and maintain that system for years to come, then this book is an essential read. Every serious software company should own at least one copy. I do have some problems with the age of the C++ code in the book. Many of his examples are outdated (they were written even before the C++98 standard) and it shows. You have to mentally do the conversion of his examples to more modern C++ (using e.g. the guidelines in C++ Coding Standards : Rules, Guidelines, and Best Practices ). So if you can read past the aging C++ code, this book comes highly recommended to experienced (or aspiring) software architects. I wouldn't recommend it to the novice since it can be daunting at times.
D**S
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. However, none of those books mentioned placed much emphasis on physical design. This is strange, given that a solid physical design is crucial for creating maintainable, understandable components. As mentioned by other reviewers it is a tough read, but that is a small price to pay for the information that is on offer.
T**K
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. You'll learn how to arrange your classes into modules and packages, and then how to organise communication within and between these higher-level constructs. Nonetheless, the book never forgets that the important thing is working C++ code, not diagrams and acronyms, so it's always practical. There are two core advantages to the designs discussed in this book: maintaining the correct level of abstraction, and reducing recompilation times. Performance issues always run the risk of becoming outdated fairly quickly, and to a certain extent, some of the timing material is no longer relevant. In particular, Sutter and Alexandrescu, in C++ Coding Standards, explicitly disavow the advocated method of external header guards. Additionally, although namespaces are mentioned, they are not used much, and the older method of using prefixes is recommended instead. The last part of the book drops down to more low level concerns, such as Schwarz counters, operators, and function arguments. This leans heavily on the likes of Effective C++, C++ Strategy And Tactics and C++ Programming Style, and to be honest, you'd be better off looking in more modern books for up to date best practices. For example, in this book assignment is implemented through the copy-and-destroy idiom, which is nowadays considered to be a mistake. But this is a big book, and you won't be buying it for the lower-level stuff, but for the large amount of higher level material that makes up the bulk. The main practices and metrics remain extremely relevant, the text is clear and well written. And there just isn't many other places where you can go and read about this sort of stuff. It's a must-read.
L**A
L'ordine è arrivato prima del previsto, magari sarebbe stato meglio usare un packaging diverso per proteggere maggiormente il libro, che in ogni caso è arrivato in ottime condizioni. Al momento non ho avuto modo di leggerlo.
S**O
One of the few texts in the literature to deal with development and quality issues that arise in large C++ projects. It introduces the concept of component and package as the unit of physical design. On this concepts the text develops extremely valuable design rules, practices and techniques (to name a few: factoring, escalating encapsulation, protocol classes, fully insulating concrete classes) to obtain critical qualities (like levelization and insulation) for large-scale C++ projects. The text gives also rules and techniques that address logical design issues in perfect harmony with the techniques related to physical design issues. Although it was written back in 1997, the book remains as timely as ever, given that exposes the same problems that justify the likely introduction of Contracts and Modules in the next C++17 standard. I strongly recommend the book to any C++ developer who wants to take advantage of the precious experience gained by the author in the context of really large C++ projects.
D**H
Must have book for software dev
A**N
This book is a must-read for any serious C++ programmer. Why? Because it is the only decent treatment of physical C++ design available. Physical design issues, if not addressed, will inexorably cripple any sufficiently complex, performance-sensitive C++ project. Moreover, there is never any time to worry about physical design quality in the heat of battle, so you really need to deal with it up front. Having said that, the book is not without its flaws. First, the age of the text is evident. It doesn't address the interchangeability of typedefs and classes for certain purposes, it doesn't fully appreciate the power of namespaces, and it is rife with "the World didn't go that way" conventions. Fortunately, this doesn't prevent the book from getting its point across, but you do need to take some of its "rules" with a grain of salt. Second, it's longer than it needs to be. This isn't so much of a liability, because it reads faster as a result. Still, its redundancy and long-windedness is sometimes tedious. But all in all, if you've bothered to read this review, then you probably ought to own a copy of this book.
M**E
I read this book back in 1998. It is the foundation for my understanding of the design of object oriented software. Prior to reading this book I programmed in C++ for more than 8 years. It was apparent to me that there were gaps in my understanding of how to design medium and large scale object oriented systems. This is a huge and dense book, but as I read through it, many times a light went on in my head (those ah ha moments). The book also gives specific details about consideration for the C++ language. C++ has changed over the years, and the examples do not use newer language features. I do not feel that this is important. The code clearly illustrates the ideas, which are not limited by the state of C++ at the time the code was written. Regardless of the object oriented language you use to develop software this book will teach invaluable concepts that I have not found explained elsewhere.
Trustpilot
2 months ago
1 week ago