<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Developing CodeBurner — An Exercise in Exploratory Programming</title>
	<atom:link href="http://www.sitepoint.com/blogs/2009/01/28/developing-codeburner-%e2%80%94-an-exercise-in-exploratory-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sitepoint.com/blogs/2009/01/28/developing-codeburner-%e2%80%94-an-exercise-in-exploratory-programming/</link>
	<description>News, opinion, and fresh thinking for web developers and designers. The official podcast of sitepoint.com.</description>
	<lastBuildDate>Fri, 19 Mar 2010 15:44:46 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tarh</title>
		<link>http://www.sitepoint.com/blogs/2009/01/28/developing-codeburner-%e2%80%94-an-exercise-in-exploratory-programming/comment-page-1/#comment-873011</link>
		<dc:creator>Tarh</dc:creator>
		<pubDate>Tue, 03 Feb 2009 15:46:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/?p=4462#comment-873011</guid>
		<description>I do this kind of exploratory programming almost daily, as I work with a nearly completely undocumented C++ codebase with 100,000+ lines of procedural code.  Also, due to the nature of the project, it&#039;s not possible to run it in debugging mode.
&#160;
Luckily, the Visual Studio IDE has plenty of tools to help make this process easy.  I&#039;ve become a huge fan of the &quot;Callers Graph&quot; function, which basically shows a tree of all calls to a particular method and lets you quickly jump around.  The &quot;Find All References&quot; function points out every single spot in the code which refers to a method, class, or variable.  And finally, for all those sticky bits, the good old &quot;Find and Replace&quot; function can be used to find things that the interpreter can&#039;t quite figure out.
&#160;
The process is completely backward.  If you&#039;re looking for code that does something, but you have no idea where it is, you start by thinking &quot;what code would this method need to use in order to do what it does?&quot;  You can then find that child code more easily, and work your way back through the calls to find where everything originated.  At this point you can use a debugger to scan the scope for the information that you need or, if you&#039;re like me and don&#039;t have access to a debugger for this project, you can resort to a few good ol&#039; &quot;echo&quot; statements! :-P
&#160;
It&#039;s not easy, but assuming that you know the language and IDE that you&#039;re working with quite well, it&#039;s not that difficult, either.</description>
		<content:encoded><![CDATA[<p>I do this kind of exploratory programming almost daily, as I work with a nearly completely undocumented C++ codebase with 100,000+ lines of procedural code.  Also, due to the nature of the project, it&#8217;s not possible to run it in debugging mode.<br />
&nbsp;<br />
Luckily, the Visual Studio IDE has plenty of tools to help make this process easy.  I&#8217;ve become a huge fan of the &#8220;Callers Graph&#8221; function, which basically shows a tree of all calls to a particular method and lets you quickly jump around.  The &#8220;Find All References&#8221; function points out every single spot in the code which refers to a method, class, or variable.  And finally, for all those sticky bits, the good old &#8220;Find and Replace&#8221; function can be used to find things that the interpreter can&#8217;t quite figure out.<br />
&nbsp;<br />
The process is completely backward.  If you&#8217;re looking for code that does something, but you have no idea where it is, you start by thinking &#8220;what code would this method need to use in order to do what it does?&#8221;  You can then find that child code more easily, and work your way back through the calls to find where everything originated.  At this point you can use a debugger to scan the scope for the information that you need or, if you&#8217;re like me and don&#8217;t have access to a debugger for this project, you can resort to a few good ol&#8217; &#8220;echo&#8221; statements! :-P<br />
&nbsp;<br />
It&#8217;s not easy, but assuming that you know the language and IDE that you&#8217;re working with quite well, it&#8217;s not that difficult, either.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Hawk</title>
		<link>http://www.sitepoint.com/blogs/2009/01/28/developing-codeburner-%e2%80%94-an-exercise-in-exploratory-programming/comment-page-1/#comment-869974</link>
		<dc:creator>Hawk</dc:creator>
		<pubDate>Thu, 29 Jan 2009 02:45:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/?p=4462#comment-869974</guid>
		<description>Great tool! Thank you!

The only thing I would ask is to include other browsers like IE6 and FF2. But mostly IE6 because like it or not we still have to make our sites work with that browser.</description>
		<content:encoded><![CDATA[<p>Great tool! Thank you!</p>
<p>The only thing I would ask is to include other browsers like IE6 and FF2. But mostly IE6 because like it or not we still have to make our sites work with that browser.</p>]]></content:encoded>
	</item>
</channel>
</rss>
