Challenges of Large Scale C++ Programming
Programming is a fun activity, but which also provides plenty of challenges for its practitioners. A good programmer must have a keen ability to concentrate and get to the center of difficult problems.
While this is the case with traditional programming, it is even more true for large scale software development. A large scale project is one in which the number of lines is in excess of 100k. Such projects are much more demanding than normal projects because there is no way for a single programmer to understand every bit of the code.
In a large scale software project, one needs to rely on a group of expert programmers, instead of just one software developer. In this case, communication becomes a very important issue that needs to be addressed by software managers.
C++ for large scale projects
C++ is one of the few languages that have been tried and tested in the development of large scale software. Code bases with hundreds of thousands and even millions of lines of code are common. For example, think of projects such as KDE, or Microsoft Word, which are code in C++.
Despite the many advantages, C++ also has problems that need to be addressed on large-scale software development. A great book that describes this is Large scale software design, by John Lakos (a nice review can be find on the books session of this C++ web site.
In the book, Lakos describes the many strategies that can be used by software developers to break the dependencies of code written in C++.
One technique, for example, is to provide classes only with access to forward declarations of all classes that it uses in the interface. This way, one can save on the number of times a header file needs to be read
Many other techniques exist. It is necessary, however, to remember that C++ allows highly scalable software to be written, but it also requires good planning from software engineers.
Post a comment