《重构》读后感(前言)

我们写代码的基本都听过差不多这么一句话:过段时间再回头看自己以前写的代码,那真是不忍直视。
如果真能达到不忍直视的效果,那么恭喜你,你这段时间大有进步。
不过现如今,会有多少人会花时间去看以前写的代码呢?或者说有时间去看呢?
所以最方便的事情就是,一上来就写的出足够好的代码。不过这种事情也不是一蹴而就的。
读完《重构》的前言,整理以下重点内容:

代码会随着时间而腐烂,会变得不合时宜。
重构的本质就是在代码写好之后改进它的设计,就是为了在不改变外在行为的情况下,提交代码质量,或是让代码重新焕发活力。
因此软件不死,重构不歇。

注意:如果一段代码能正常工作,且确定不会再被修改,那么完全可以不去重构它。
因此我们要正确的认识重构,重构是有风险,有成本的。学习《重构》的目的就是为了减少重构,就是为了让我们一开始就用正确的方式去做正确的事,不能为了重构而重构。

正确的事就是:保持代码的易读、易修改。

《代码整洁之道》读后感之四

一、单元测试
测试代码和生产代码一样重要,它需要被思考、设计,同时也要保持整洁。如果测试不能保持整洁,你就会失去它们。而没有测试,你就会失去保证代码生产的可扩展性的一切要素。因为单元测试可以让你的代码可扩展、维护、复用。有了测试后,你不再担心代码的修改。没有测试,每次修改都有可能带来缺陷,无论架构多有扩展性、设计划分的多好,你都很难做改动,因为你怕改动会引入不可预知的缺陷。
1、如何保证测试代码的整洁?
可读性。在单元测试中,可读性甚至比生产代码还重要。
2、如何才能做到可读性?
明确、简洁、并有足够表达力。整洁的测试代码要保持测试代码的整洁,中和生产代码一样重要。
3、如何做到整洁的测试?
快速、独立、可复用、自足验证、及时。

编写生产代码前先编写单元测试,既测试驱动开发。测试能保证和增强生产代码的可扩展性、维护性、复用性。

二、类
类的设计规则和函数一样,要短小,更短小。
1、如何衡量类的大小?
计算其权责
2、单一权责
单一权责是面向对象设计中的重要概念之一。我们大多数人都认为,程序能正常工作,就万事大吉了。却没有把思维转向有关代码组织和整洁部分,直接就转向下一个问题,而没有把臃肿的类划分为单一权责的去耦式单元。
我们都知道,达到一定规模的系统,都会包括大量的逻辑性和复杂性。管理这些复杂性的首要目标就是加以组织,便于开发者寻找。
记住,系统应该由许多个短小的类而不是少数大量巨大的类组成,每个小类封装一个权责,只有一个修改的原因,并与其他少数类一起协同达成期望的系统。