声明:这篇文章的原文出自José M. Aguilar的Variable Not Found,这里仅对其进行中文转译工作,一切版权归原作者所有

以下将会介绍13给有用的TIPS供你参考注释代码,借此你可以很容易的维护理解你的代码:

1、分级注释

对于每一个代码块,每一级代码都进行统一风格的注释,例如:

=>对于每一个class,注释应该包含简介,作者,和最后修改日期

=>对于每一个方法,注释应该包含方法的目的,功能,参数,返回值的简介

团队工作中统一风格的注释显得格外重要。当然,我们能够接受也推荐使用代码注释工具(例如xml in c#或者javadoc for java)来简化这项任务。

2、段注释

我们可以用注释来将代码块分解成多个“段”,每一个段完成一个单一的任务。段注释将会在段起始处说明段内代码的功能,使阅读者明确接下去代码的功能。

// Check that all data records
// are correct
foreach (Record record in records)
{
    if (rec.checkStatus()==Status.OK)
    {
        . . .
    }
}
// Now we begin to perform
// transactions
Context ctx = new ApplicationContext();
ctx.BeginTransaction();
. . .

3、对齐的连行注释

对于多行连续代码的尾部注释,将注释对齐将会方便阅读者的阅读

const MAX_ITEMS = 10; // maximum number of packets
const MASK = 0x1F;    // mask bit TCP

一些程序员习惯用tab来对齐注释,然而其他人却喜欢用空格。因为tab的占位是取决于不同IDE的,而空格则没有这个问题,因此最佳的方法是使用空格。

4、不要侮辱读者的智慧

要避免对功能显而易见的代码进行注释,比如:

if (a == 5)      // if a equals 5
    counter = 0; // set the counter to zero

这不仅浪费你的时间去写这些毫无意义的东西,而且这些显然能从代码中推断出的“细节”还扰乱了读者的思路。

5、请礼貌些~

避免粗鲁的注解,比如“那些愚蠢的家伙输入了个负数”或者“这修正了那些可悲又愚蠢的程序员最初实现的副作用”。这些注释将给作者带来不必要的麻烦,你根本不知道将来谁会来阅读你的代码:你的老板,你的客户,或者是那些你刚侮辱的“可悲”程序员。

6、一针见血

请不要写过多的废话来表达你的思想。要避免使用ASCII ART,笑话,诗歌,hyperverbosity(译者注:天哪,谁会去写这些诡异的东西?)。总而言之,保持你注释的简单,明了。

7、统一的风格

一些人认为注释的一种作用是让非程序员来读懂代码。而另一些人认为注释仅仅是服务于程序员的。在任何情况下,正犹如Successful Strategies for Commenting Code中所说,最终要的是注释风格要连贯 ,并且面向统一的阅读者。就我个人而言,我很怀疑那些非程序员会去阅读我们的代码,因此注释应该服务于程序员。

8、为团队服务的特殊标记

当我们团队协作时, 常会用一些特殊的标记来交流。比如,很多团队用"TODO:"标记来说明这段代码需要补充额外的工作:

int Estimate(int x, int y)
{
    // TODO: implement the calculations
    return 0;
}

这些标记并非用来解释代码,而是作为讯息发布的工具。但是,请记住这一点,当你利用这些标记工作时,请确切地理解标记的含义,并且去完成标记隐含的需要你做的工作。

9、边CODE边注释

在编写代码的同时完成注释,这有助于你时刻了解自己在干什么。如果你把这项工作放到最后,你不得不痛苦地做第二次的“编码”工作。“我没有时间写注释”,“我很忙”,“项目进度已经晚了”都是我们常用的理由来搪塞注释的编写工作。一些程序员认为应该在CODE前就开始注释的编写,这有助于对程序有一个总体的计划。例如:

public void ProcessOrder() 
{
    // Make sure the products are available
    // Check that the customer is valid
    // Send the order to the store
    // Generate bill
}

10、为自己而写

当写代码时,请好好考虑,你不单单是为那些将来维护你代码的程序员写注释,同时也是为你自己。用伟大的Phil Haack的话来说:

‘当一行代码出现在屏幕上时,你就已经处于维护这行代码的状态下了’("As soon as a line of code is laid on the screen, you’re in maintenance mode on that piece of code.")

因此,你自己将会是自己那些优秀(糟糕)注释的第一个受益者(受害者)。

11、更新代码的同时更新注释

如果代码并没有改变,那么注释也就没有必要进行修改。但是代码与注释是一体的,两者要保持同步的更新,否则维护者将会发现读懂你的代码是一项极其痛苦的工作。这里要注意那些重构工具,它们常常为你更新了代码却留下了一堆不知所谓的注释。

12、黄金准则:可阅读的代码

一条程序员的基本准则是:让你的代码自己解释自己。虽然有人质疑那些不愿意写代码的程序员提出这项原则的动机,但那些可自解释的代码的的确确能够很好的解释程序,并且使得注释毫无用武之地。比如,在我的Fluid Interfaces 这篇文章中表现了自解释代码是多么地清晰易懂:

Calculator calc = new Calculator();
calc.Set(0);
calc.Add(10);
calc.Multiply(2);
calc.Subtract(4);
Console.WriteLine( "Result: {0}", calc.Get() );

在这个例子中,注释是没有必要的并且是有悖于TIP 4的。为了写出可阅读的代码,你应该要使用那些合适的变量名,保证正确的缩进,以及采用编码样式指导(coding style guides)。如果没能做到这一点,你就不得不为你那些糟糕的代码负责了~

13、与你的同事分享这些TIPS

虽然TIP 10说明了我们自己能够从优秀的注释中获益良多,这些TIPS同样有益于你的同事们,特别是与自己一同工作的团队成员。因此,和你的同事们自由得分享这些TIPS, 你会发觉代码是多么得容易编写与维护。

posted @ 2008-07-30 09:38 D.K. 阅读(112) 评论(0) 编辑

原文地址:http://www.codethinked.com/post/2008/07/14/Getting-IronRuby-Up-and-Running.aspx

 

在这片文章中,我想简单地介绍一下IRONRUBY的安装配置以及如何运行示例。通常而言,我是一个玩弄C#的人,而且这个BLOG大多数时候本身就关于C#,但我想接触动态语言是十分重要的。因为.net已经开始逐步走向动态化(其拥有IronPython,Boo,IronRuby,和VB.net 10),所以我想作为程序员应该开始逐步去了解更多关于动态语言的知识。正处于这种目的,我写下了这个系列。(译者注:此处省略了一些无关的话题)

这个教程可能节奏比较慢,但我想确保对于绝大多数人而言都能看懂。

OK,我们开始:

第一步是最简单的,你只需点击这个链接:http://www.ironruby.com/

IronRuby

 

在那你会找到一个指向RubyForge.org的一个链接:http://rubyforge.org/projects/ironruby

RubyForge 

在RubyForge那,你将找到一些文件,此时你有必要先安装TortoiseSVN来获取他们。如果你没有TortoiseSVN,请到这里下载http://tortoisesvn.net/downloads

第二步是用Tortoise来获取代码,首先新建一个文件夹

IronRuby folder 

然后右键点击选择"SVN Checkout..."

SVN Checkout

 

当checkout对话框弹出后,我们在svn的url链接处填写地址:

svn://rubyforge.org/var/svn/ironruby

IronRuby Get

  

好了,现在安静地休息一会等待下载的完成。这东西不是一般的大,因此究竟要等对久完全取决于你的网速。当它结束后,画面如此:

IronRuby Get Done

 

当你得到源码后你需要重新设置你的vs2008。如果你没有vs,你可以从这里得到:http://www.microsoft.com/express/download/

之后浏览到你下载源码的目录,这里我是下载到了C:\development\Ruby\IronRuby\. 你可以看到我们有一个"trunk"文件夹,这是源码的一部分。然后打开 IronRuby.sln.

image

 

你将会收到一个关于Microsoft.Scripting.Core 的警告要求你自定义设置,因为它来自于微软,所以你只要让它正常加载就行了。

Security Warning

 

项目加载后,你会看到:

image

  现在你要做的就是生成整个工程,你会希望看到如下的画面:

image

为了使用IronRuby,你需要进入文件夹 \trunk\build\debug (这里假定你是用debug模式编译的). 你可以用以下命令来使用IR:

IronRuby command line

  

第一次运行时,你会得到一个FileLoadException告知你无法加载 ir

image

 

这是因为IronRuby项目被签名了,而且delay signing选项被选中了。如果你查看项目属性,你会在"Signing" tab下看到:

IronRuby Signing

 

好了,你要做的就是打开一个终端窗口,进入trunk文件夹。然后找到runfirst.cmd,这个文件包含了一些命令,其中一个叫做"sn -Vr *,31bf3856ad364e35". 这个命令将会使IronRuby项目跳过强名称检验

image

 

我第一次执行时,得到了如下信息:

image

这是因为sn.exe并不在我默认的path, 通过打开一个Visual Studio Command Prompt我解决了这个问题 (如果你使用Vista,点击右键选择 "Run As Administrator"):

image

  你需要管理员权限来执行一下操作

  image

   

但再一次的我又遇到了强名称检验的问题,我做了些研究终于发现毛病出在我使用64位系统上。因为默认的32位 sn.exe 已经使用了.64位版本的 sn.exe 在 "\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64". 因此,我用command prompt执行以下命令 command (确保运行于管理员权限下):

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64>sn.exe -Vr *,31bf3856ad364e35

最终,最终。。。。。

image

好了,你终于能够用IR了,很简单,是不?

不!现在是你安装 alpha software的时候了!

现在让我们测试一下。先把Ironruby 添加到我们的 path. 在控制面板打开“系统”选择“高级”标签

System Properties

   你会在底部找到“环境变量”按钮:

image

   点击它,然后你会看到以下内容:

System Variables

  把你IR的路径添加进取,对我而言是';C:\development\Ruby\IronRuby\trunk\build\debug'.

现在你可以在任何目录下运行IR了.我再 'development\Ruby\' 下新建了一个HelloWorld文件夹,并创建了一个HelloWorld.rb文件.

HelloWorld

  命令行下,运行这个程序:

image

  好了,我们搞定这些了~你已经能够用它进行开发了。希望能够对你有所帮助!!

posted @ 2008-07-30 08:11 D.K. 阅读(1240) 评论(4) 编辑