整洁代码之道——Robert C.Martin (整理~上)

1.什么是整洁的代码

代码逻辑直接了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依赖某种分层战略完善错误处理代码;性能调至最优,省的引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。 ——Bjarne Stroustrup

正如破窗理论。窗户破损的建筑让人觉得似乎无人照管。于是别人也不再关心。他们放任窗户继续破损。最终自己也加入了破坏活动,一扇破损的窗户开辟了大厦走向倾颓的道路。

所以在我们处理错误代码时要在细节花心思。

整洁的代码力求集中。每个函数、每个类和每个模块都全身关注于一事,完全不受四周细节的干扰和污染。

整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直接了当的控制语句。

代码块应该尽量小,越小越好。

整洁代码特性:能通过所有测试;没有重复代码;提现系统的全部设计理念;包括尽量少的实体,比如类、方法、函数等。

2.该如何做

2.1 有意义的命名

变量、函数或类的名称应该已经答复了所有的大问题。它应该告诉你,它为什么会存在,它做什么事,应该怎么用。如果名称需要注释来解释就不算名副其实。

不要用一些通用或者专有名称来命名,不用要一些类型的词来命名比如list,除非真的是list类型,可以用group、accounts等代替。

尽量不要使用一些amount、info、data、message类似的明知故问的一些函数名,不然谁知道是什么鬼。

使用一些易于查找的命名,避免日后定位时从百万代码中找个数字5之类的东西。

类名不应该是个动词。想manager、processor、打他、info应当避免使用。

方法名应该是个动词或者动词短语,比如加上get、set前缀等。

合理利用语境,可以通过算法将大函数分解成更小的函数而变得干净利落。

2.2 函数应有的样子

函数的第一规则要短小,第二条规则还要更短小。

每个函数都一目了然。每个函数都只说一件事,而且每个函数都会依序把你带到下一个函数,这就是函数应该达到的短小程度。

函数应该只做一件事。做好这件事。只做这一件事。

要确保函数只做一件事,函数的语句都要在同一个抽象层

函数越短小,功能越集中,就越便于取个好名字。

别害怕长名称。长而具有描述性的名称要比短而令人费解的名称好。

命名方式保持一致。

函数参数个数最理想的数字是0 其次是1 再次是2 应该避免3或者更多。

抽离try/catch代码块:

public void delete (Page page) {

        try{ deletePage(page) }

        catch(Exception e){ logError(e) }

}

我们要不断的在源代码中消灭重复

2.3 注释该如何存在

别给糟糕的代码加注释——重新写吧 

若编程语言有足够的表达力,就不那么需要注释

TODO可以作为应该去做,却还没有实现的工作。

直接把代码注释掉是讨厌的做法,别人会想代码还放在那,是有原因的或许还很重要,就不敢删除。而注释掉的代码只能沦为渣滓。无用的代码坚决删除,一般我是不允许我的代码里有大段注释的。

2.4 格式

格式 团队统一缩进换行的等规则老生常谈 因为我们想要系统有着一以贯之的风格。

我们应该尽力保持代码行短小,我一向遵循无需横向滚动原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值