Online Book Reader

Home Category

Professional C__ - Marc Gregoire [415]

By Root 1503 0
before checkin can continue.

Revision or Version: A revision or version is a snapshot of the contents of a file at a specific point in time. Versions represent specific points to which the code can be reverted to, or compared against.

Update or Sync: Updating or synchronizing means that the local copy on the developer’s machine is synchronized with a version on the central server. Note that this may require a merge, which may result in a conflict that needs to be resolved.

Working Copy: The working copy is the local copy on the individual developer’s machine.

Several Source Code Control software solutions are available. Some of them are free, some of them are commercial. The following table lists a few available solutions:

FREE/OPEN-SOURCE COMMERCIAL

LOCAL ONLY SCCS, RCS PVCS

CLIENT/SERVER CVS, Subversion IBM Rational ClearCase, Microsoft Visual SourceSafe, Microsoft Team Foundation Server

DISTRIBUTED Git, Mercurial TeamWare, BitKeeper, Plastic SCM

The preceding list is definitely not an exhaustive list. It’s just a small selection to give you an idea of what’s available.

The authors are not recommending one or the other software solution. Most software companies these days have a Source Code Control solution already in place, which every developer needs to adopt. If this is not the case, the company should definitely invest some time for doing research on the available solutions, and to pick one that suits them. The bottom line is that it will be a maintenance nightmare without any Source Code Control solution in place. Even for your personal projects you might want to investigate the available solutions. If you find one that you like to work with, it will make your life easier. It will automatically keep track of different versions and a history of your changes. This makes it easy for you to change back to an older version if a change didn’t work out the way it was supposed to.

SUMMARY


This chapter has introduced you to several models and methodologies for the software development process. There are certainly many other ways of building software, both formalized and informal. There probably isn’t a single correct method for developing software except the method that works for your team. The best way to find this method is to do your own research, learn what you can from various methods, talk to your peers about their experiences, and iterate on your process. Remember, the only metric that matters when examining a process methodology is how much it helps your team to write code.

The last part of this chapter briefly touched on the concept of Source Code Control. This should be an integral part of any software company, big or small, and can even be beneficial for personal projects at home. There are several Source Code Control software solutions available, so it is recommended that you try out a few and see which of them work for you.

Chapter 24

Writing Efficient C++


WHAT’S IN THIS CHAPTER?

What “efficiency” and “performance” mean

What kind of language-level optimizations you can use

Which design-level guidelines you can follow to design efficient programs

What profiling tools are

The efficiency of your programs is important regardless of your application domain. If your product competes with others in the marketplace, speed can be a major differentiator: Given the choice between a slower and a faster program, which one would you choose? No one would buy an operating system that takes two weeks to boot up, unless it was the only option. Even if you don’t intend to sell your products, they will have users. Those users will not be happy with you if they end up wasting time waiting for your programs to complete tasks.

Now that you understand the concepts of Professional C++ design and coding, and have tackled some of the more complex facilities that the language provides, you are ready to incorporate performance into your programs. Writing efficient programs involves thought at the design level, as well as details at the implementation level. Although this chapter falls late in this

Return Main Page Previous Page Next Page

®Online Book Reader