新足迹

 找回密码
 注册

精华好帖回顾

· 求分贴——大型工程35米GARGEN EDGE DIY 换装记 (2013-5-5) LIQ8309 · 《The Man in the Iron Mask 》 (2005-1-3) leeshine
· 汪峰新专辑 ---- 一群人的《河流》 (2015-11-20) Skycat · 2017初夏北美游之二 : 公主邮轮-星辰公主 8日7夜 - 阿拉斯加内湾航线深度游 (更新完毕) (2017-7-31) woodywup
Advertisement
Advertisement
12
返回列表 发新帖
楼主:ztchen

[IT] 编程术语方面的请教,长期请教,还请各位指点 [复制链接]

发表于 2007-11-29 23:29 |显示全部楼层
此文章由 kenadams001 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kenadams001 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一点个人看法,仅供参考。

代码注释最好开门见山,第一句话应该说明整个类,方法或者重要程序段的主要目的。上面的代码片断最好有一个总结性注释。

如果是十分重要的算法,对于每个循环和判断条件最好都注释说明。但是注释的内容最好是程序员的思路的编码意图,而不是对代码的解释。比如第一句注释:

// Get the college's branchs.
aryBranchInfos = ws.GetBranchsBycollegeId(collegeInfo.CollegeId);

这个注释没有问题,但是也没有给读者带来更多的信息。

另外, if (aryStudentClassInfos.Length > 0) 没有给出注释,从上下文看不出这个条件判断有什么意义。

一般来说,对于成熟算法的具体实现细节可以不用详细说明,代码本身表达不清楚的算法再加一些注释。你上面的例子是一个片断,无法了解具体业务,大概是要创建一个树结构,把branch和studentclass根据业务规则加到相应节点里。

但是 BranchInfo branch = aryBranchInfos; 没有给出注释。aryBranchInfos 从上面看应该是数组,这里却给了一个类,显然需要说明一下目的和意图。

还有一个重要的判断语句if (!tvwLeft.Nodes.ContainsKey(strStudentTypeNodeKey))也没有给出注释,所以读者还要去看tvwleft是什么才能理解什么条件的studentclass才可以加到branch里。
Advertisement
Advertisement

发表于 2007-11-30 12:14 |显示全部楼层
此文章由 ztchen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ztchen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
非常感谢楼上的朋友,指出的地方都很对,一看就知道是比较有功力的。

我这里摘录的是片断代码,想让大家看看在代码中我写的注释,所以 if (aryStudentClassInfos.Length > 0) 是有用的判断,因为后面除了遍历该数组以外还有其他执行代码,否则会有问题。

另,BranchInfo branch = aryBranchInfos; 其实应该是BranchInfo branch = aryBranchInfos(i);,<-这里我用括号了,本应该是方括号,但发帖子的时候方括号会给转义,所以就变成莫名的代码了。


整体来说,在class 和 function里我都会写上基本的思路,怎奈现在英语水平有限,不能表达更多,所以就没有贴出来,之后要么我贴出来献丑一下,大家不要见笑,呵呵。

发表于 2007-11-30 22:02 |显示全部楼层
此文章由 kenadams001 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kenadams001 所有!转贴必须注明作者、出处和本声明,并保持内容完整
楼主客气了。我没有注意到楼主是要关注注释的英文表达。前面说的都是注释方法,关于英语我觉得还是简明易懂为主,核心应该是描述编码思路和意图。下面是对英文的一点建议:

// Loop the array of the objects of branch and add the children nodes of the root node.
“Loop the array“ 好像没有这样写的,一般表达遍历应该是iterate through. 要是我写的话,可能会是 iterate through  all branchs in the collection, create a tree node for each branch and add the them into the colleage node.

// First of all, add the child nodes of studenttype with each college node.
一般来说注释里面最好不要有代码语言,比如变量名称studenttype。这里studenttype并不是很清楚,应该使用实际业务的说法。注释可以写成: iterate through the course collection, create a treenode for the [studenttype-使用业务名称] which belongs to [那个条件的说明]  and add them into the  branch.

// In this place, the studenttype key is composed by branchId and studenttypeId.
这句实际上在解释代码,最好说明这个key的用途。比如:combine the IDs of the current branch and student type as a key used to judge whether the current student type should be added into the current branch.

我的英文纯属一般,仅供参考。

发表于 2007-12-2 21:17 |显示全部楼层
此文章由 ztchen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ztchen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
非常感谢楼上,不仅指出了问题,还给出了整句的示例。并且不仅仅是英语上的帮助,注释方面也很受益,对我来说非常有用,像Loop等的都可能都是中国式英语,我确实是要表达为遍历的意思,但自己都是靠单词面上的意思来写的,自己估计也不规范,所以就需要在澳洲的同行帮我指出问题了。
studenttype其实不是变量名称,我只是想表达学生类型,不过变量名和数据库字段名都是这么命名的,所以就直接写了。

这些我以后会逐步改正,再次感谢!

参与宝库编辑功臣

发表于 2007-12-3 16:21 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ztchen 于 2007-12-2 22:17 发表
非常感谢楼上,不仅指出了问题,还给出了整句的示例。并且不仅仅是英语上的帮助,注释方面也很受益,对我来说非常有用,像Loop等的都可能都是中国式英语,我确实是要表达为遍历的意思,但自己都是靠单词面上的意思来 ...


Loop is not a chinglish really...

For similar context, please google "loop through" + c# + keyword, and you'll have some ideas.

2008年度奖章获得者

发表于 2007-12-3 16:25 |显示全部楼层
此文章由 degra 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 degra 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bffbffbff 于 2007-12-3 17:21 发表


Loop is not a chinglish really...

For similar context, please google "loop through" + c# + keyword, and you'll have some ideas.

Advertisement
Advertisement

参与宝库编辑功臣

发表于 2007-12-3 16:29 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 gandu 于 2007-12-3 17:25 发表



汗...

发表于 2007-12-3 19:48 |显示全部楼层
此文章由 ztchen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ztchen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bffbffbff 于 2007-12-3 17:21 发表


Loop is not a chinglish really...

For similar context, please google "loop through" + c# + keyword, and you'll have some ideas.



谢谢,请问你怎么写的?

[ 本帖最后由 ztchen 于 2007-12-5 03:29 编辑 ]

发表于 2008-1-18 19:36 |显示全部楼层
此文章由 ztchen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ztchen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很久没贴代码,都到新地方来了,贴一些自己写的注释,继续话题,大家帮我看看写得是否正确?
我比较困惑的是一般用口语还是书面习惯写程序注释?

/// <summary>
        /// Get or set the activate flag of the user object.
        /// </summary>
        public bool ActivateFlag
        {
            get
            {
                return _ActivateFlag;
            }
            set
            {
                _ActivateFlag = value;
            }
        }

/// <summary>
        /// Get or set the real name of the users.
        /// </summary>
        public string UserRealName
        {
            get
            {
                return _UserRealName;
            }
            set
            {
                _UserRealName = value;
            }
        }

2010年度奖章获得者

发表于 2008-1-18 22:01 |显示全部楼层
此文章由 魔头 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 魔头 所有!转贴必须注明作者、出处和本声明,并保持内容完整
注释写那么罗嗦复杂干吗

=.=

发表于 2008-1-18 23:44 |显示全部楼层
此文章由 miles 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 miles 所有!转贴必须注明作者、出处和本声明,并保持内容完整
注释不规范,原则上应该把函数的用途,参数的解释以及返回值含义描述清楚,以便于将来可以通过文档软件自动生成程序文档。关键在于容易理解,用词不必规范
Advertisement
Advertisement

发表于 2008-1-21 14:07 |显示全部楼层
此文章由 ztchen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ztchen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
恩,不过这个是简单属性。可能写得比较少。但我不确定应该怎样书写。就像楼上说的,将来肯定是要生成说明文档的,那么不就是要书面写法,而不是口语化的写法了?

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部