2004年8月1日

推荐两篇文章

 这里可是高手云集的地方:http://www.allaboutprogram.com

我要推荐的两篇文章,是ajoo翻译。《面向对象语言概论》前三章,也许会你了解很多听都没听的面向对象概念。去年,他刚发表时,我就向很多朋友推荐这两篇文章了。

http://www.allaboutprogram.com/post-1841.htm
 (第一、二章)
http://www.allaboutprogram.com/about304.htm (第三章)

ajoo对语言的理解很深,精通C++,目前正在设计一门C++语言的改进版本CG,是我认识的最牛的几个人中的一个。

posted @ 2004-08-01 15:19 温少 阅读(849) 评论(7) 编辑

关于返回值

数组,一定不能返回NULL

Object[] F1()
{
    
//do something 
    return null//灾难
}

上面的代码可能导致灾难性的后果。极少有人这样使用你的函数的。

Object[] objArray = F1();
if (objArray != null)
{
    
for (int i = 0; i < objArray.Length; ++i)
    
{
        
//do something 
    }

}

你应该这样写F1函数:

Object[] F1()
{
    
//do something 
    return new Object[0];
}

 

集合,也不能返回NULL

ICollection F1()
{
    
//do something 
    return null//灾难
}

你应该这样写:

ICollection F1()
{
    
//do something 
    return new ArrayList(0); 
}


字符串,有时候也不能返回NULL

如果你编写一个WebControl,有如下代码:

public String Text
{
    
get
    
{
        
return null//不好,可能导致灾难
    }

}

这样不好,下面的方式可能更好:

public String Text
{
    
get
    
{
        
if (this.text == null)
        
{
            
return String.Empty; 
        }

        
        
return this.text;
    }

}

字符串很多情况下还是可以返回NULL值的,具体情况需要具体分析。


总结
    这都是很简单的规则,必须掌握。以上规则,可以运用在代码评审中。从以前参加代码评审的经验来看,还是有不少初学者犯这类错误的。

posted @ 2004-08-01 10:30 温少 阅读(1313) 评论(11) 编辑

感概枪手

从博客园首页的一篇文章(http://www.cnblogs.com/william_fire/archive/2004/07/31/28765.aspx),连接博客堂的一篇文章(http://blog.joycode.com/mvm/archive/2004/07/29/28830.aspx),又从博客堂的文章,连接到MSDN的一篇枪手文章(http://www.microsoft.com/china/technet/prodtechnol/sql/2000/plan/ssmsam.mspx),很明显的枪手文章,居然很多人相信了??!!

这年头,枪手的枪法很神。看我所在公司的枪手文章,如果不知道作者是公司本身的人,几乎难以分辨。再看竞争对手的,Microsoft的,Oracle的,SUN的枪手文章,避重就轻,扬长避短。如果无保持清醒的头脑,没有相关的背景知识,就很容易中抢。

不过,这篇文章的作者Jim Gray的枪法还没有那么神,其动机太容易让人觉察了,枪法还需要进一步锻炼呀!!

这种文章,用龙空(http://dragon-door.net/forum/viewforum.php?f=5&sid=e619b9b5822a8f0d46a1e2740bcc306e)上人们的习惯用语称之,芭乐。

MSDN上评论Oracle的文章,就如同香港的苹果报、俄罗斯的真理报所报道的新闻,你也敢相信,就应该找自身的问题了!!

posted @ 2004-08-01 02:30 温少 阅读(816) 评论(14) 编辑