> How you organize million line projects is an interesting topic. Does anybody have any actual links?
Large Scale C++ Software Design by John Lakos is about that topic. Of course, C++ is its own special hell when it comes to physical coupling because of what tends to go (and sometimes has to go) in header files.
It's not a terrible book when considering the lack of alternative sources for the material covered, but a lot of its suggestions are showing their advanced age and were dubious and controversial even at the time of writing. Nowadays you have to take into account precompiled headers, unity builds, distributed build clusters, etc, when considering trade-offs in physical design for large code bases.
Free startup idea: Incredibuild in the cloud! Tell us how how fast you want your code base to build and you got it! You'd have to design and implement finer-grained distributed compiling and linking to overcome Amdahl's Law speed-up barriers and make it really competitive with something like Incredibuild for larger companies. But you could bootstrap it with coarser-grained distribution (distributed compiling at the file granularity but with non-distributed monolithic linking) a la earlier versions of Incredibuild while targeting smaller development shops without a lot of spare CPU cycles floating around the office. Making it dead simple to drop in and use with existing code bases would be key.
I agree. I was looking forward to some useful information, but this is really the first thing you learn after "hello world" in C. I'm somewhat baffled as to why this was even submitted to HN much less how it made it to the front page.
In my experience, managing C projects becomes frustrating pretty fast but maybe that's a problem with all languages (most of my limited experience is in C).
I agree that this is kind of mistitled for HN - this is an intro to C - but it is actually a nice intro to C headers and linking if you have never seen that before.
[+] [-] mcpherrinm|14 years ago|reply
How you organize million line projects is an interesting topic. Does anybody have any actual links?
[+] [-] psykotic|14 years ago|reply
Large Scale C++ Software Design by John Lakos is about that topic. Of course, C++ is its own special hell when it comes to physical coupling because of what tends to go (and sometimes has to go) in header files.
It's not a terrible book when considering the lack of alternative sources for the material covered, but a lot of its suggestions are showing their advanced age and were dubious and controversial even at the time of writing. Nowadays you have to take into account precompiled headers, unity builds, distributed build clusters, etc, when considering trade-offs in physical design for large code bases.
Free startup idea: Incredibuild in the cloud! Tell us how how fast you want your code base to build and you got it! You'd have to design and implement finer-grained distributed compiling and linking to overcome Amdahl's Law speed-up barriers and make it really competitive with something like Incredibuild for larger companies. But you could bootstrap it with coarser-grained distribution (distributed compiling at the file granularity but with non-distributed monolithic linking) a la earlier versions of Incredibuild while targeting smaller development shops without a lot of spare CPU cycles floating around the office. Making it dead simple to drop in and use with existing code bases would be key.
[+] [-] dmbass|14 years ago|reply
In my experience, managing C projects becomes frustrating pretty fast but maybe that's a problem with all languages (most of my limited experience is in C).
[+] [-] reemrevnivek|14 years ago|reply
[+] [-] mechanical_fish|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]