Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Some of the keys to coming to grips with a large codebase:</p> <ul> <li>Learn the ins and outs of source control. For now, start with just learning how all the SVN commands work. <a href="http://svnbook.red-bean.com/" rel="nofollow noreferrer">SVNBook</a> is a good resource for this. Use <a href="http://www.visualsvn.com/" rel="nofollow noreferrer">VisualSVN</a> or a similar plugin to interact with your repository within your IDE (Tortoise is still useful when you want to interact from elsewhere). Down the road, you'll want to become intimately familiar with branching and merging (and the <a href="http://www.scootersoftware.com/" rel="nofollow noreferrer">tools</a> for doing so quickly and correctly), and perhaps learn a DVCS (distributed version control system) like <a href="http://git-scm.com/" rel="nofollow noreferrer">Git</a> or <a href="http://www.selenic.com/mercurial/wiki/" rel="nofollow noreferrer">Mercurial</a>. This will at the very least expand your mind a bit, and likely teach you some lessons that will be useful even in projects where you use more traditional (centralized) version control.</li> <li>Learn how to quickly look for things, find the declarations of unfamiliar classes and variables, and trace the execution of the larger application. There are lots of approaches for this, and you'll likely use most of them at one point or another, but some of them are your IDE's built-in features (most of them are quite robust in this regard, you should be able to right-click on a class name and find its declaration easily), <code>grep</code> and the like (<a href="http://betterthangrep.com/" rel="nofollow noreferrer">ack</a> is a variant that is very suitable for code spelunking), and <a href="http://ctags.sourceforge.net/" rel="nofollow noreferrer">CTAGS</a> if you swing that (C/C++) way.</li> <li>Learn the basics of unit testing, maybe even try out a framework like <a href="http://www.nunit.org/index.php" rel="nofollow noreferrer">NUnit</a>. Personally I'm not big into unit tests, but I recognize their utility and many swear by them, so don't knock it 'til you've tried it, at least.</li> <li>Even if you're a flawless programmer with a robust battery of unit tests, large codebases demand a higher level of debugging skill, due to the inherent complexity of the problems that crop up. Whether it's learning how to write concise, descriptive debug <code>printf()</code>-like statements, becoming more familiar with your debugger, or even learning the ins and outs of your language (e.g. the corner cases of the type system/object model) can be helpful in unwinding these complex issues.</li> </ul> <p>Unfortunately, I haven't used Visual Studio, but I think getting to know your IDE's project import/migration flow will be instructive too. Maybe somebody else will chime in with more concrete advice on that front. The process can be onerous, especially if you had a non-standard custom build system before and you want everything to be done The One True Visual Studio Way henceforth, but the tools for automatic dependence extraction from code are getting better and better.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload