
Large-scale C++ software design
by John Lakos · first published 1996
41mentions
24recommended by
34HN commenters
2009–2026first – last mentioned
69% recommend23% neutral9% critical
Why HN recommends it
Teaches C++ physical design: managing dependencies, eliminating circular dependencies, and structuring code and libraries to cut build times. Its ideas carry to any language; suits engineers on big codebases.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.






I'm not a C/C++ expert but I can highly recommend the book "Large-Scale C++ Software Design" by John Lakos. It gives an extensive discussion on how to structure programs and addresses the issue above in detail, in addition to many others. I'd be very interested to hear the opinions of any HN…
on “Rob Pike: Notes on Programming in C” ↗…dependency tree and see if anything jumps out at you. Alternately, you can "touch" a few files at a time manually, re-build, and try to track down a culprit that way. Also, take a look at John Lakos' "Large-Scale C++ Software Design", which offers metrics and design guides for reducing dependencies among files in a project. Assuming you have no way to get around each source file including lots of headers, many C/C++ build tools…
on “Ask HN: Why is compiling C/C++ so slow compared to Java?” ↗…consideration. There are cross-cutting concerns such as memory management, logging, and instrumentation. The design principles at the end of the post are better and more comprehensively covered by "Large-Scale C++ Software Design": http://www.amazon.com/Large-Scale-Software-Design-John-Lakos... Some of the language points in that book reflect the immaturity of C++ implementations when the book was written, but the design guidelines…
on “Surviving C++” ↗…perspectives. Also with some problems there seems to be a conservation of complexity notion. It's inherent in the system and depends on where you push it. For the book, you might want to check out Large-Scale C++ Software Design. Unfortunately it's at home so I can't crack it open and double check, but it seemed full of suggestions on structuring code and layout a large software project.
on “Hacking a Google Interview - MIT's guide to Google interviews” ↗If C++ compile time is a concern and/or impediment to productivity, I recommend the seminal work regarding this topic by Lakos: Large-Scale C++ Software Design[0] The techniques set forth therein are founded in real-world experience and can significantly address large-scale system build times. Granted, the book is dated and likely not entirely applicable to…
on “C++ Headers are Expensive” ↗* David Hanson: C Interfaces and Implementations * David Hanson: A Retargetable C Compiler * John Lakos: Large-Scale C++ Software Design * VA: Beautiful {Code, Data, Testing} * Design pattern books maybe * Code Complete * Fred Brooks: The Mythical Man Month * Fred Brooks: Design of Design * "Best of" books like C++ Pearls or More…
on “Ask HN: Suggested software /design/ books?” ↗On physical design: Large Scale C++ Software Design, John Lakos. http://www.abebooks.com/servlet/SearchResults?sts=t&tn=large...
on “Books for experienced software developers?” ↗"Large Scale C++ Software Design" by John Lakos This book made me understand that writing software is not just about creating opaque binaries with _stuff_ inside. It's also about what does this binary depends on, which symbols does…
on “Ask HN: What are some of the best written programming books?” ↗John Lakos, Large Scale C++ Software Design. Read it even if you dont do C++ as the most valuable parts apply to any language. Anything by Watts Humphrey. Elliot Aronson, The Social Animal Eric Berne MD, Games People Play
on “Ask HN: What books should I read as a software manager?” ↗…physical structure. I'm sure things have changed over the years but the sort of folder oriented loading of modules from the working directory baked habits into people that are hard to break I imagine. Give Large Scale C++ Software Design by Lakos a read to learn about the issues involved in ramping up tall dependency chains. A lot of the book is naturally C++ oriented and thus focuses on impact to compile and link time, but the dependency…
on “Ask HN: How’d you go from a noodler to writing large well structured programs?” ↗"Large-Scale C++ Software Design" by John Lakos. The only book (as far as I know) that really teach you the nitty gritty of handling very large scale systems (not just C++ systems). Something I have needed more than once in my career.
on “Ask HN: Which books have helped you the most professionally?” ↗with respect to the C++ Language: there was a book published in 1996. Large-Scale C++ Software Design by John Lakos. He's about to publish the second edition of the book while also expanding it's reach to span two volumes. Anyhow, while we await the publication of that book, John has been working at…
on “Ask HN: What open source project, in your opinion, has the highest code quality?” ↗A much better and more comprehensive read on this topic would be the book "Large-Scale C++ Software Design" by John Lakos.
on “Effective Header Management in C++” ↗The mention of Lakos' book "Large-Scale C++ Software Design" reminds me of the epiphany I had when I read it. You could almost boil the entire book (and it's not a small one) down to "eliminate circular dependencies". That's trite, but Lakos walks through all…
on “Cyclic dependencies are evil (2013)” ↗> Large-scale C++ Software Design by John Lakos Table of contents look really nice, will order it, thanks! https://www.amazon.com/Large-Scale-Software-Design-John-Lako... What do you think about this one? https://www.amazon.com/Large-Scale-Architecture-Addison-Wesl...
on “Ask HN: C/C++ books on infrastructure(building, linking, crosscompiling, etc.)?” ↗