代码整洁之道
来源:互联网 发布:淘宝店铺海报怎么做 编辑:程序博客网 时间:2024/05/02 01:20
Ron的整洁代码见解:
— 没有重复代码;
— 使用有意义的命名来提高表达力
— 提早构建简单抽象
童子军军规:让营地比你来时更干净!
应用到我们的专业领域就是:每次对代码的修改都比修改之前干净。这样代码就不会随时间腐坏。
取个好命名的几条简单规则:
1、名副其实,见名知意
2、做有意义的区分
如果缺少明确约定,变量moneyAmount就与money没区别,customerInfo与customer没区别,accountData与account没区别,theMessage也与message没区别。要区分名称,就要以读者
能鉴别不同之处的方式来区分。
3、使用读的出来的名称
4、使用可以搜索的名称:
单字母名称或数字变量经常有一个问题,那就是很难在一大篇代码中找出来。
5、使用描述性的名称
不要害怕长名称。长而具有描述性的名称,要比短而费解的名称好;要比描述性的注释要好。
不要害怕花时间该名称。可以尝试不同的名称,实测其阅读效果。
6、类名
类名和对象名应该是名次或者名次短语。类名不应该是动词。
7、方法名
方法名应该是动词或者动词短语。
如何写好函数:
1、函数的第一规则是要短小。第二条规则是还要更短小。
2、代码快和缩进:
if语句,else语句,while语句等,其中的代码行应该只有一行。改行大抵应该是一个函数调用语句。
这样不但能保持函数短小,而且,因为块内调用的函数拥有较具说明性的名称,从而增加了文档上的价值。
3、函数应该只做一件事:
做好这件事。只做一件事。
4、有顶向下读代码:
让代码拥有自顶向下的阅读顺序。
5、函数的参数:
最理想的参数数量是零(零参数函数),其次是一(单参数函数),再次是二(双参数函数),应尽量避免三(三参数函数)。
有足够特殊的理由才能使用三个以上参数(多参数函数)。
参数对象:当函数的参数需要三个及以上的时候,就需要将其中一些参数封装为类了。从参数创建对象,从而减少参数的数量。
6、使用异常替代返回错误码:
例如下面的情况,从函数返回错误码,导致更深层次的嵌套结构:
if (deletePage(page) == E_OK) { if (registry.deleteReference(page.name) == E_OK) { if (configKeys.deleteKey(page.name.makeKey()) == E_OK){ logger.log("page deleted"); } else { logger.log("configKey not deleted"); } } else { logger.log("deleteReference from registry failed"); }} else { logger.log("delete failed"); return E_ERROR;}
如果使用异常替代返回错误码,错误处理代码就能从主路径代码中分离出来,得到简化:
try { deletePage(page); registry.deleteReference(page.name); configKeys.deleteKey(page.name.makeKey());}catch (Exception e) { logger.log(e.getMessage());}
7、抽离try-catch代码快
try/catch代码块丑陋不堪。它们搞乱了代码结构,把错误处理与正常流程混为一谈。最好把try和catch代码块的主体部分抽离出来,另外形成函数。
例如的下面的代码示例:
public void delete(Page page) { try { deletePageAndAllReferences(page); } catch (Exception e) { logError(e); }}private void deletePageAndAllReferences(Page page) throws Exception { deletePage(page); registry.deleteReference(page.name); configKeys.deleteKey(page.name.makeKey());}private void logError(Exception e) { logger.log(e.getMessage());}
在上例中,delete函数只与错误处理有关。很容易理解然后就忽略掉。deletePageAndAllReference函数只与完全删除一个page有关。错误处理可以忽略掉。有了这样美妙的区隔,代码就更易于理解和修改了。
8、如何写出好的函数
写代码和写别的东西很像,在写论文或文章时,你先想什么就写什么,然后在打磨它,初稿也许粗陋无序,你就斟酌推敲,直到达到你心目中的样子。
不要一开始就按照规则来写代码,那样也没人能做得到。
注释:
应尽力减少注释,因为注释会撒谎,注释存在的时间越久,就离其所描述的代码越远,越来越变得全然错误。原因很简单,程序员不能坚持维护注释。
1、注释不能美化糟糕的代码:
带有少量注释的整洁而有表达力的代码,要比带有大量注释的零碎而复杂的代码像样的多,与其花时间编写解释你搞出的糟糕的代码的注释,不如花时间清洁那对糟糕的代码。
2、好注释:
有些注释是必须的,也是有利的,下面是一些值得写的注释。不过要记住:唯一真正好的注释是你想办法不去写注释。
3、直接把代码注释掉是讨厌的做法。千万别这样做。
其他人不敢删掉注释的代码。注释掉的代码堆积在一起,就像破酒瓶底的残渣一样。
待续…….
- [代码整洁之道]-整洁代码
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 《代码整洁之道》
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- android左右滑动切换activity的途径
- Oracle中查看建立索引和使用索引的注意点
- 学历代表过去、能力代表现在、学习力代表未来
- 用反射和Dictionary替代if else
- Netty那点事(二)Netty中的buffer
- 代码整洁之道
- 第三周项目四考了语文数学的学生
- 控制webView控件或者HTML5页面上方加载条
- Android Java 如何读写CSV格式文件
- poj_3252
- 使用md5sum递归生成整个目录的sum
- 计算机图形学与图像处理图形学的研究内容
- /bin/bash^M: bad interpreter: 没有那个文件或目录
- 与其骑会三处。汉军不知羽所居