« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9693600 建立时间:2004年12月20日 |

| |
[编程感想]我的编码手册  原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2006/4/13 11:24:28 |
看到很多牛人,说别人的代码风格如何如何,我也打算说两句。
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元运算符。当时就是这帮人按时高质量的完成了我们的任务,这很值得中国软件的反思,我们细节很强,但是没有大局观,这里细节决定不了成败。 |
|
|