<?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: Best Practices Checklist</title>
	<atom:link href="http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/</link>
	<description>Flash Platform Geek</description>
	<lastBuildDate>Wed, 04 Jan 2012 21:31:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Abdul Qabiz</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10661</link>
		<dc:creator>Abdul Qabiz</dc:creator>
		<pubDate>Fri, 09 Feb 2007 18:35:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10661</guid>
		<description>When I talked about those long comment blocks, I meant Flex framework for example :-)

It depends team to team, developer to developer...Sometimes there are different opinions within team so people end up with something workable common...

-abdul</description>
		<content:encoded><![CDATA[<p>When I talked about those long comment blocks, I meant Flex framework for example :-)</p>
<p>It depends team to team, developer to developer&#8230;Sometimes there are different opinions within team so people end up with something workable common&#8230;</p>
<p>-abdul</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10660</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Fri, 09 Feb 2007 18:12:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10660</guid>
		<description>Abdul, good points -- one of the things I hate about auto-generated docs is that it promotes this absurdly long commenting style. 

I&#039;ve seen too many projects that try to mimick adobe livedocs for each and every method, resulting in more comments than actual code in a class. 

In my view comments are aimed at developers, documentation is a full text description that somebody like your project manager could grasp the jist of :)</description>
		<content:encoded><![CDATA[<p>Abdul, good points &#8212; one of the things I hate about auto-generated docs is that it promotes this absurdly long commenting style. </p>
<p>I&#8217;ve seen too many projects that try to mimick adobe livedocs for each and every method, resulting in more comments than actual code in a class. </p>
<p>In my view comments are aimed at developers, documentation is a full text description that somebody like your project manager could grasp the jist of :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Abdul Qabiz</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10659</link>
		<dc:creator>Abdul Qabiz</dc:creator>
		<pubDate>Fri, 09 Feb 2007 17:59:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10659</guid>
		<description>Comments are really important. These days, documentation is generated from code. It has become generally practice to keep big blocks of comments with all those common comment elements so that documentation team, if you have one, doesn&#039;t have to write everything from scratch rather they focus on description etc.

I believe, such comments doesn&#039;t help much to a developer who is walking through code. Good code (method name, signature, clear responsibility per method/class etc) speaks in itself. Sometimes, developers use tricks/hacks or sometimes code path is different based on context (params, conditions etc) , I like those to be commented (@private ?) for another developer who would deal with code in future. I don&#039;t assume that I would be only person dealing with code. That&#039;s I try to clean up (comment, names etc) code by refactoring to make it easy (formatting, naming-convention, less-use-of-non-standard things or hacks etc) to understand and intuitive to other developers... 

Commenting about platform specific hacks/tricks is really useful for developers new to platform (Flash Player etc)...</description>
		<content:encoded><![CDATA[<p>Comments are really important. These days, documentation is generated from code. It has become generally practice to keep big blocks of comments with all those common comment elements so that documentation team, if you have one, doesn&#8217;t have to write everything from scratch rather they focus on description etc.</p>
<p>I believe, such comments doesn&#8217;t help much to a developer who is walking through code. Good code (method name, signature, clear responsibility per method/class etc) speaks in itself. Sometimes, developers use tricks/hacks or sometimes code path is different based on context (params, conditions etc) , I like those to be commented (@private ?) for another developer who would deal with code in future. I don&#8217;t assume that I would be only person dealing with code. That&#8217;s I try to clean up (comment, names etc) code by refactoring to make it easy (formatting, naming-convention, less-use-of-non-standard things or hacks etc) to understand and intuitive to other developers&#8230; </p>
<p>Commenting about platform specific hacks/tricks is really useful for developers new to platform (Flash Player etc)&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan Taylor</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10651</link>
		<dc:creator>Ryan Taylor</dc:creator>
		<pubDate>Fri, 09 Feb 2007 03:37:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10651</guid>
		<description>Peter,

Knowing when and where a comment is necessary is subjective; what&#039;s obvious to you might not be obvious to somebody else. It&#039;s simply a good habit to be in and other programmers will certainly respect you for it.</description>
		<content:encoded><![CDATA[<p>Peter,</p>
<p>Knowing when and where a comment is necessary is subjective; what&#8217;s obvious to you might not be obvious to somebody else. It&#8217;s simply a good habit to be in and other programmers will certainly respect you for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter O'Brien</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10650</link>
		<dc:creator>Peter O'Brien</dc:creator>
		<pubDate>Thu, 08 Feb 2007 23:01:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10650</guid>
		<description>I&#039;m surprised by Ryan&#039;s and oz&#039;s comments on commenting. I never think I need to teach actionscript. I like to be as precise as poss in putting the odd line in saying whats going on, and when something is not obvious, that&#039;s when commenting is IMO worth a great deal - to both yourself at a later date (5mins or 5days) and everyone else who might have the experience of reading and following your code.

Something I&#039;ve recently started to do is to simply list events dispatched by the class at the top, for example like so:

[Event] onItemAdded {item}
[Event] onItemRemoved {item}

I&#039;ve found this commenting technique really help above everything else I use or have tried.</description>
		<content:encoded><![CDATA[<p>I&#8217;m surprised by Ryan&#8217;s and oz&#8217;s comments on commenting. I never think I need to teach actionscript. I like to be as precise as poss in putting the odd line in saying whats going on, and when something is not obvious, that&#8217;s when commenting is IMO worth a great deal &#8211; to both yourself at a later date (5mins or 5days) and everyone else who might have the experience of reading and following your code.</p>
<p>Something I&#8217;ve recently started to do is to simply list events dispatched by the class at the top, for example like so:</p>
<p>[Event] onItemAdded {item}<br />
[Event] onItemRemoved {item}</p>
<p>I&#8217;ve found this commenting technique really help above everything else I use or have tried.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oz</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10638</link>
		<dc:creator>oz</dc:creator>
		<pubDate>Thu, 08 Feb 2007 06:37:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10638</guid>
		<description>Thanks for the tips guys. This really helps.

Ryan: &quot;...a good commenting practice is to pretend like you are writing and commenting code for somebody that is learning the language.&quot;

I couldn&#039;t agree more. I try to follow this approach for code that I post online. For code at work I comment for my own elucidation and that&#039;s about it. I should really get better at that.

By the way, one of the funniest comments I ever read was from a dev that left before I started working at  Xbox. It basically said, &quot;All this code is crap. If you need to make changes to this project then just start over. It will save time.&quot;

I appreciated the honesty.</description>
		<content:encoded><![CDATA[<p>Thanks for the tips guys. This really helps.</p>
<p>Ryan: &#8220;&#8230;a good commenting practice is to pretend like you are writing and commenting code for somebody that is learning the language.&#8221;</p>
<p>I couldn&#8217;t agree more. I try to follow this approach for code that I post online. For code at work I comment for my own elucidation and that&#8217;s about it. I should really get better at that.</p>
<p>By the way, one of the funniest comments I ever read was from a dev that left before I started working at  Xbox. It basically said, &#8220;All this code is crap. If you need to make changes to this project then just start over. It will save time.&#8221;</p>
<p>I appreciated the honesty.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan Taylor</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10636</link>
		<dc:creator>Ryan Taylor</dc:creator>
		<pubDate>Thu, 08 Feb 2007 03:02:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10636</guid>
		<description>Commenting is actually the one area that I think most developers need improvement in the most. It&#039;s frustrating to me when I pop open a class file only to find that each method has a massive paragraph of Javadoc-ready commenting. Beyond the fact that the method&#039;s commenting and documentation are the same thing, the developers that comment like that also tend to neglect the code inside the method itself. To me, a good commenting practice is to pretend like you are writing and commenting code for somebody that is learning the language. Not only will the developers that look at your script later on appreciate it, but months down the road when you have to revisit it for whatever reason, you will certainly thank yourself as well.

Documentation -&gt; How and why you use it.
Commenting -&gt; How and why it works.

Great post though; I definitely agree with each of those practices.</description>
		<content:encoded><![CDATA[<p>Commenting is actually the one area that I think most developers need improvement in the most. It&#8217;s frustrating to me when I pop open a class file only to find that each method has a massive paragraph of Javadoc-ready commenting. Beyond the fact that the method&#8217;s commenting and documentation are the same thing, the developers that comment like that also tend to neglect the code inside the method itself. To me, a good commenting practice is to pretend like you are writing and commenting code for somebody that is learning the language. Not only will the developers that look at your script later on appreciate it, but months down the road when you have to revisit it for whatever reason, you will certainly thank yourself as well.</p>
<p>Documentation -&gt; How and why you use it.<br />
Commenting -&gt; How and why it works.</p>
<p>Great post though; I definitely agree with each of those practices.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10635</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Thu, 08 Feb 2007 02:10:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10635</guid>
		<description>Some great additions Abdul -- absolutely agree there! 

I generally also recommend using TODO, FIXME notes in the code with the developers initials and references to a bug id for team projects.

Also worth writing interfaces for any generic base classes that are used throughout multiple projects. Just helps in narrowing down any possibly issues and makes sure you have a solid implementation.

Will probably think of some more, its a really good exercise to consider these things even if you don&#039;t end up using every single best practice.</description>
		<content:encoded><![CDATA[<p>Some great additions Abdul &#8212; absolutely agree there! </p>
<p>I generally also recommend using TODO, FIXME notes in the code with the developers initials and references to a bug id for team projects.</p>
<p>Also worth writing interfaces for any generic base classes that are used throughout multiple projects. Just helps in narrowing down any possibly issues and makes sure you have a solid implementation.</p>
<p>Will probably think of some more, its a really good exercise to consider these things even if you don&#8217;t end up using every single best practice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Abdul Qabiz</title>
		<link>http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/comment-page-1/#comment-10633</link>
		<dc:creator>Abdul Qabiz</dc:creator>
		<pubDate>Thu, 08 Feb 2007 01:22:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.peterelst.com/blog/2007/02/08/best-practices-checklist/#comment-10633</guid>
		<description>There are some more things, that can be considered in Flex/AS3 context:-

1) Proper packaging structure for MXML and AS3 components, util classes and other libraries are important. Needs to be documented, so that team knows where to find things and not to duplicate things if it exists already. Saves loads of time over the time..

2) It&#039;s good idea to come up convention to give ids to MXML tags and a guidelines so that designers (using FlexBuilder) follow that. 

3) If #2 is followed consistently, it would allow to keep AS code in include file instead of MXML, this avoids any kind of mishaps in code if MXML is changed (layout etc) by someone else. I agree, version-control saves you from that...but having code outside gives you more control over things in terms of Version-Control :)

4) For a big team, it makes sense to create templates for different things (AS3 components, MXML components, Modules etc). This allows to quickly create things from templates without including the namespaces, includes etc...


Thanks Peter for posting this, this got me thinking about the practices...I would think more realistic and practical things and update here :)

-abdul</description>
		<content:encoded><![CDATA[<p>There are some more things, that can be considered in Flex/AS3 context:-</p>
<p>1) Proper packaging structure for MXML and AS3 components, util classes and other libraries are important. Needs to be documented, so that team knows where to find things and not to duplicate things if it exists already. Saves loads of time over the time..</p>
<p>2) It&#8217;s good idea to come up convention to give ids to MXML tags and a guidelines so that designers (using FlexBuilder) follow that. </p>
<p>3) If #2 is followed consistently, it would allow to keep AS code in include file instead of MXML, this avoids any kind of mishaps in code if MXML is changed (layout etc) by someone else. I agree, version-control saves you from that&#8230;but having code outside gives you more control over things in terms of Version-Control :)</p>
<p>4) For a big team, it makes sense to create templates for different things (AS3 components, MXML components, Modules etc). This allows to quickly create things from templates without including the namespaces, includes etc&#8230;</p>
<p>Thanks Peter for posting this, this got me thinking about the practices&#8230;I would think more realistic and practical things and update here :)</p>
<p>-abdul</p>
]]></content:encoded>
	</item>
</channel>
</rss>

