434
社区成员
发帖
与我相关
我的任务
分享参考腾讯java编码规范代码规范:
由于2000行以上程序代码难以阅读,应避免代码超过两千行
代码风格
1、缩进
程序块要采用缩进方式编写,缩进只使用TAB键进行缩进,不能使用空格键(编译器将TAB设置为四格);
方法体的开始、类的定义、以及if、for、do、while、switch、case语句中的代码都要采用缩进的方式;
2、对齐
程序块的分界符左大括号“{”和右大括号“}”都另起一行,应独占一行并且位于同一列,同时与与引用他们的语句左对齐;
对齐只使用TAB键,不适用空格键;
不允许把多个短语句写在一行,即一行一条语句;
if、for、do、while、case、switch、default等语句独占一行;
3、换行
一行语句超过八十个字符需要换行,换行规则如下
在一个逗号后面断开;
在一个操作符前面断开;
长表达式要在低优先级操作符处划分新行;
新行缩进两个TAB;
4、间隔
类、方法及相对独立的程序块之间、变量说明之后必须加空行;
关键字之后要留空格,像if、for、while、等关键字之后应留一个空格在跟左括号“(”,以突出关键字;
方法名与其左括号“(”之间不要留空格,以与关键字进行区别;
二元操作符如“=”、“+=”、“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”、“^”等的前后应当加空格;
一元操作符如“!”、“~”、“++”、“--”等前后不加空格;
for语句中的表达式应该用空格分开;
强制转型后面应该跟一个空格;
注释
代码后面应跟上必要注释
命名
变量命名
采用大小写混合的方式,第一个单词首字母小写,其余单词首字母均大写;
变量名不能以下划线或者美元符号开头;
尽量避免单个字符的变量命名,除非是临时变量。临时变量通常命名为i、j、k、m、n,它们一般用于整形,c、d、e一般用于字符型;
常量命名
全部采用大写;
习惯
if、 for. do、 while 等语句的执行语句部分无论多少都要加括号"{}";
每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释;
尽量避免在循环中构造和释放对象;
在使用局部变量的过程,按就近原则处理。不允许定义一个局部变量,然后在很远的地方才使用;
相同的功能不允许复制成N份代码;
在处理String的时候要尽量使用StringBuffer 类。
读《数学之美》第一二章有感
我们每个人都从小就开始学数学,多数人说起数学,恐怕都会觉得太难、太深奥,学了没太大用。而且很多时候,似乎我们的工作和生活过程中也不需要那么多复杂的数学知识。
不过事实上我们无法回避,在现实物质世界中的各种知识,它的底层逻辑,几乎都离不开数学。我们现代生活的方方面面,无论是现实的物质世界,还是虚拟的网络社会,都建立在一个以数学逻辑为基础的复杂结构里。
例如让计算机处理自然语言时,人们一开始想让计算机学会人类的语法(书中提到的“基于规则的方法”),但后来通过不断的实验研究发现,要写出来的语法不仅数量特别多,而且实际的识别率特别低。后来科学家们在数学统计学工具的帮助下(书中所提到的“基于统计的方法”),让计算机计算出句子的出现概率,通过概率的大小来判断正确与否,从而解决了这个难题,并且有了突破性进展。
通过一二章我发现一个有意思的现象,克劳德·香农等一系列信息界大拿花了几十年走了一个大弯路(基于规则的自然语言处理)却是繁杂的,例如自然语言的多义性,“世界的知识”(常识),严重依赖上下文等等原因,最终导致基于规则的句法分析很快走到了尽头;而本书中看起来普普通通的小小的IBM华生实验室却用简单粗暴的数学概率论(即将人类语言上千年来单词组成概率计算出该句子所对应的意思),在此之前谁又能想到这种简单粗暴的方法会是解释自然语言的一大神器呢?有时候又不得不感叹世界的奇妙,人类花了上万年形成语言,几千年将数字与文字分开,又在近现代花了几十年将数学统计和语言学结合,到头来发现让一个机器学会人类的语言只需要统计就能将人类文明的精华学会。
最后想来,数学让我们抓住做事的规律也就是“道”。当使用数学的方法,“术”可能比较复杂,但是“道”却总是简单的。不管是计算机背后隐含的简单的布尔代数原理,还是使用数学来解决各种问题时体现出的简单思想,都向我们展示出数学之美就是简单美,规律美。