编码规范+《数学之美》第8章读后感

代码规范

 

格式规范

  • 大括号的使用
    • 如果是大括号内为空,则简洁地写成{}即可,不需要换行
    • 如果是非空代码块则
      • 左大括号前不换行,左大括号后换行
      • 右大括号前换行,右大括号后还有else等代码则不换行,表示终止右大括号后换行

 

  • if / for / while / switch / do等保留字与左右括号之间都必须加空格

 

  • 任何运算符左右必须加一个空格(运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号、三目运行符等)

 

  • 缩进采用4个空格,不使用Tab字符

注:如果使用Tab缩进,必须设置1个Tab为4个空格

IDEA设置Tab为4个空格时,勿勾选Use tab character;而在eclipse中,须勾选insert spaces for tabs

 1 public static void main(String[] args) {
 2     //缩进四个空格
 3     String say = "hello";
 4     //运算符的左右必须有一个空格
 5     int flag = 0;
 6     //关键词if与括号之间必须有一个空格,括号内f与0分别与左括号,右括号不需要空格
 7     if (flag == 0) {
 8         System.out.println(say);
 9     }
10         
11     //左大括号前加空格不换行,左大括号后换行
12     if (flag == 1) {
13         System.out.println("world");
14     //右大括号前换行,右大括号后有else不换行
15     } else {
16         System.out.println("ok");
17     }
18 }

 

  • 单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则
    • 第二行相对第一行缩进4个空格,从第三行开始,不再继续缩进
    • 运算符与下文一起换行
    • 方法调用的点符号与下文一起换行
    • 在多个参数超长,逗号后进行换行
    • 在括号前不要换行

 

  • 方法参数在定义和传入时,多个参数逗号后边必须加空格
    • 正例:method("a", "b", "c"); 中实参的 "a", 后边必须要有一个空格

 

命名规范

  • 代码中的命名均不以下划线或美元符号开始,也不以下划线或美元符号结束
    • 反例_name  / $Object / name_  / Object$

 

  • 代码中的命名不应使用拼音与英文混合的方式,也不应直接使用中文的方式
    • 反例:DaZhePromotion[打折] / getPingfenByName()[评分] / int某变量= 3
    • 正例:alibaba / taobao / youku / hangzhou等国际通用的名称,可视同英文

 

  • 类名使用UpperCamelCase风格,遵从驼峰形式
    • 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
    • 领域模型的相关命名除外:DO / BO / DTO / VO等

 

  • 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,遵从驼峰形式
    • 正例:localValue / getHttpMessage() / inputUserId

 

  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长
    • 正例:  MAX_STOCK_COUN

 

  • 中括号是数组类型的一部分,数组定义如下:String[] args;

 

  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词;包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式
    • 正例:应用工具类包名为com.alibaba.open.util、类名为MessageUtils

 

  • 不要完全不规范的缩写,避免望文不知义
    • 反例:AbstractClass“缩写”命名成AbsClass

 

常量定义

  • 不要出现任何魔法值(即未经定义的常量)直接出现在代码中

 

  • long或者Long初始赋值时,必须使用大写的L,不能是小写的l,小写容易跟数字1混淆,造成误解

 

 注释规范

  • 方法内部单行注释,在被注释语句上方另起一行,使用 // 注释;方法内部多行注释使用 /* */ 注释,注意与代码对齐

 

  • 类、类属性、类方法的注释使用/**内容*/格式,不使用//xxx方式

 

 

 

《数学之美》第8章读后感

 

  作者在本章一开始便说明了这本书是想写给大众看的,这说明即使没有很深厚的数学学习底蕴的人也能看懂,我看过这一章后就是这么觉得的,我还觉得作者不仅把这些数学相关的事情讲的特别易懂,还讲的挺有趣的。

  在本章开始处我收获到了两句道理,一是原文“只有掌握了搜索的本质和精髓才能永远游刃有余”,我的理解是看事情要看本质,掌握了事情的本质,什么问题都比较容易解决了。二是原文“真正做好一件事没有捷径”,我觉得现实中事事其实都在说明着这个道理!做房子、学习我们都要从基础开始,一点一点的积累,最后完成。

  其后作者开始了讲本章重点内容之一的布尔代数。作者将二进制运算联系到古代的阴阳学说我是从来都没想过的,不过确实很合理,这进一步就会让想到:阴阳两极,是非黑白。这也就讲到了布尔运算。作者通过举简单易懂的例子来说明布尔运算,我觉得原来会让人感觉枯燥的布尔运算瞬间就形象生动起来了,更有趣了!

  接着作者通过布尔运算慢慢引出另一个重点内容——搜索引擎。其实之前学习数据结构的时候就对搜索这方面的编程思维有所了解,当时的理解是通过关键字匹对,如果能匹配的就能搜索到,但是当时确实没想到是二进制在里面起来作用,没想到是通过二进制,也就是布尔判断匹不匹配。其实我这就是没有掌握事情的本质吧,本来计算机就是把人类的信息转换成二进制在计算机中进行计算,然后再转换成人类可以认识、接收的形式显示出来。二进制就是桥梁即布尔代数在其中发挥了重要的作用。

  其实我们的生活处处离不开数学,计算机这些东西的创造也就是依赖了数学,还有就像这布尔代数,让二进制既能计数,又能进行逻辑判断,让搜索更方便,它将数学和逻辑合二为一,给更多的问题提供了可能更优的解决办法。

  最后还是很想说这本书的作者真的很厉害,他写的这些内容不仅非常有逻辑,而且关联性强,让你自然而然的读完了。我想我会继续读完这本书的

 

2021-09-12

 

 

 

 

posted @ 2021-09-12 14:29  hoshitsuki  阅读(67)  评论(0编辑  收藏  举报