以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 编程心得 』   (http://bbs.xml.org.cn/list.asp?boardid=42)
----  [转帖] 我的编码手册 -- 邢红瑞 发表于 2006-4-13 11:24:28  (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=45408)


--  作者:admin
--  发布时间:4/14/2007 12:35:00 AM

--  [转帖] 我的编码手册 -- 邢红瑞 发表于 2006-4-13 11:24:28

转自:http://blogger.org.cn/blog/more.asp?name=hongrui&id=23966

看到很多牛人,说别人的代码风格如何如何,我也打算说两句。

   1 代码缩进
     说到这个问题,缩进使用tab还是空格,是没有事情可干。早在visual studuio6时代,也就是9年前,vc6就提供了代码格式化功能,java的主流IDE都有代码格式化功能,你觉得他的代码不好,有抱怨的时间,早就format好了,一个程序员连自己的IDE能干什末都不知道,恐怕说不过去了。如果你觉得大家代码不统一,都安装checkStyle,这样代码规范基本一致。
     下面说出java主流IDE提供的功能(重构部分除外),支持未声明类的import,生成构造函数,生成get/set方法,代码块的注释和解除注释,不用你一行一行的写“//”。不过你要是python程序员就麻烦一些,python的缩进是代码的一部分。
   2 变量的命名
     vc程序员最好使用匈牙利命名法,java程序员不要使用,你要遵循javabean的规范,类的首字母大写,方法名的首字母小写,因为你的类可能要被java的反射机制调用,到时候找不到就麻烦了。我一直使用idea Introduce Variable,觉得也没有什末。
   3 程序的注释
     程序最好只写必要的注释,不要写的过多,那样会耽误别人看注释的时间,方法名最好让人判断出要干什末,一个方法内代码不要超过20行,(详见我得bloghttp://www.w3china.org/blog/more.asp?name=hongrui&id=8479)。最好最后再补注释,因为一开始代码和注释一块写,如果项目紧,很可能只修该代码,不改注释,后人阅读会产生驴唇不对马嘴的问题。
   4 基本的编程约定
     关于约定我不知道是不是程序员中的潜规则,这是我以前我在贝尔面试的一个问题,
     请写出 BOOL flag 与“零值”比较的 if 语句:
     我写的 if(a==true)
            {
             }
     结果答案是
            if(a)
            {
             }
     后来得知这是林锐那本《高质量C++/C 编程指南》的题目,据我所知,c++实际提供了布尔类型的值,这就是程序员中奇技淫巧。
     编写strcpy函数(10分)
     已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);
     其中strDest是目的字符串,strSrc是源字符串。
    (1)不调用C++/C的字符串库函数,请编写函数 strcpy
    (2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
    注意写不出这样的代码不是致命的,用strcpy不用strncpy可能会要你的程序的小命,产生缓冲区溢出。建议你最好编写安全的代码,这比什末都重要。
    而且最好使用开源而且跨平台的类库,例如c++ STL,java的JSTL ,不要另辟蹊径,这样利于移植,而且这样的代码经过了考验,比你写的代码稳定的多。
    印度人常写这样的代码,有两个bool变量,a为true,b为false,a是false,b为true。
    if(a==true)
     b=false;
    else
     b=true;
     我看了之后,笑了半天,一句b=!a;不就ok了吗?
     更有甚者,a,b两个整型,如果a为1,b为0,否则b就是99
     印度阿三的代码
     if(a==1)
       b=0
     else
       b=99;
     我告诉他, b= (a==1)? 0 :99;可怜的这个红头阿三不知道java还有3元运算符。当时就是这帮人按时高质量的完成了我们的任务,这很值得中国软件的反思,我们细节很强,但是没有大局观,这里细节决定不了成败。




--  作者:micro_sandal
--  发布时间:4/19/2007 11:39:00 AM

--  
不错的
工作中很多都是参考这个手册来做的
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
42.969ms