[关闭]
@DevWiki 2015-07-02T21:10:45.000000Z 字数 1671 阅读 1194

CleanCode笔记---格式

CleanCode


更多内容详见:CleanCode笔记

我本人算是一个有洁癖的程序猿,喜欢代码整齐的格式.

格式的意义

让代码能工作不是编程的头等大事,因为代码首先是给人看的,其次才是给计算机看的.

代码是团队沟通的桥梁,乱糟糟的代码是没有人想看的.

垂直格式

一个Java类文件应该有多长?这是个问题.有人可能说100行,有人可能说1000行.

但是人们倾向于短的代码文件,所以一个类文件应该越短越好,尽量不要超过1000行.

向报纸学习

代码排版应该像报纸一样.从上往下读,在顶部应该有个类似标题一样的东西,告诉读者大致内容是什么,再往下是章节,告诉读者代码有哪些部分组成,章节下面是细节,如果读者感兴趣可以了解这部分实现的细节.

比如:

  1. private Button backButton;
  2. private TextView titleView;
  3. private Button settingButton;
  4. private void init(){
  5. initUtil();
  6. initUI();
  7. initData();
  8. }
  9. private void initUtil(){
  10. //...
  11. }
  12. private void initUI(){
  13. initNavigationView();
  14. initContentView();
  15. }
  16. private void initNavigationView(){
  17. backButton = (Button) findViewById(R.id.btn_back);
  18. backButton.setOnClickListener(this);
  19. titleView = (TextView) findViewById(R.id.tv_title);
  20. settingButton = (Button) findViewById(R.id.btn_setting);
  21. settingButton.setOnClickListener(this);
  22. }
  23. private void initNavigationView(){
  24. //....
  25. }
  26. private void initContentView(){
  27. //...
  28. }
  29. private void initData(){
  30. //...
  31. };

垂直方向上的分割

几乎所有的代码都是从上往下读,从左往右读.每行展现一个表达式或者一个字句或者一个方法调用,每组代码行展示一条完整的思路.这些思路都是用空白行分隔开来.

就像上面的initUI()方法:

  1. private void initUI(){
  2. initNavigationView();
  3. initContentView();
  4. }

空白行让我们很容易明白初始化界面的步骤:
1. 初始化导航栏组件
2. 初始化内容视图

垂直距离

从上面的代码可以看出,关系密切的方法应该靠近;关系不密切的要分隔开来.这样很容易理解系统要做什么,怎么去做,不需要你去记住查找和记住代码碎片在哪里.

如何做到靠近与分隔呢?
1. 方法内的局部变量声明放在方法的顶部.
2. 对象变量的声明放在类的顶部.
3. 相关的函数应靠近放置.
4. 概念相近的代码应该放在一起.

垂直顺序

一般而言,我们都想自上而下展示函数的依赖调用.也就是说被调用的函数在执行函数的下面.

横向格式

一般而言,一行代码不应多于100个字符.

水平方向上的分隔与靠近

赋值语句的等号左右空一格,可以起到强调的作用.

多参方法中,参数的逗号后空一格,表明参数的独立性.

所以水平方向上也应遵循关系密切的靠近,关系交远的分隔.

水平对齐

不需要水平方向上的有意识的对齐,比如下面:

  1. private Button backButton;
  2. private TextView titleView;
  3. private Button settingButton;

如果出现名称更长的类型,所有的变量又得重新对齐.所以不推荐此种方式.

缩进

缩进表明的代码的影响范围!

缩进有利于代码的阅读,明确代码之间的等级关系和影响范围.

切记:单行也要缩进.不要违反缩进规则.

每个人都有不同的写代码的风格,个人建议按照Google的Java代码风格来编写代码.详情请点击此处查看:
Google Java编程风格

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注