《代码整洁之道》读后感之六并发编程

编写整洁的并发代码很难写正确。加入多线程和共享数据后,简单的代码会变成噩梦。要编写并发代码,就要严格地编写整洁的代码,否则将面临细微和不频繁发生的失败。

1、并发问题是由什么引起的?
1)、对共享数据的多线程操作,或使用了公共资源池。
2)、类似平静关闭或停止循环之类的边界情况尤其棘手。

2、为什么要并发?
并发是一种解耦策略。它帮助我们把做什么和何时做分解开。解耦目的与时机能明显改进应用程序的吞吐量和结构。

3、如何做并发防御?
分离并发相关代码与其他代码。
1)、限制数据作用域;
2)、使用数据副本;
3)、线程应尽可能地独立。

4、测试线程代码需要考虑哪些问题?
1)、将伪失败看做可能的线程问题;
2)、先使非线程代码可工作;
3)、编写可插拔的线程代码;
4)、编写可调整的线程代码;
5)、运行多于处理器数量的线程;
6)、在不同平台上运行;
7)、调整代码并强迫错误发生。
测试不能确保正确性,然而好的测试能尽量降低风险。

如果花点时间装置代码,就能极大的提升发生错误代码的机会。如果保证代码的整洁性,做对的可能性就会有翻天覆地的提高。

《代码整洁之道》读后感之五迭进

一、如何让设计变得简单?
1、运行所有测试
2、不可重复
3、表达力
4、尽可能减少类和方法的数量

二、设计如何制造出如预期一般工作的系统?
系统也许有一套绝佳的设计,但是没有验证系统是否按预期所工作的方法,那就无异于纸上谈兵。
只有全面测试并持续通过所有测试的系统,才是可测试的系统。不可测试的系统,绝不应部署。只要系统可测试,就会导向保持类短小目的单一的设计方案。
因此,编写测试将会引致出更好的设计。

三、重构
有了测试,就能保持代码和类的整洁,方法就是递增式的重构代码。
1、如何消除对清理代码就会破坏代码的恐惧?
测试。如果你添加了几行代码后,就要停下来,琢磨一下变化了的设计。是设计退不了吗?如果是,就要清理它并且运行测试,保证没有破坏任何东西。

四、表达力
我们中许多人自己都编写过费解的代码,写出自己能理解的代码很容易,因为自己在写这些代码的时候,正深入的解决这些问题中,代码其他维护者不会那么深入,理解起来就很难。软件项目的主要成本在于长期的维护。
1、如何减少维护成本?
代码应当清晰的表达其作者的意图。作者把代码写的越清晰,其他人花的理解代码上的时间就会越少,从而减少缺陷,降低维护成本。
2、如何增加表达力?
1)、起个好名称
2)、保持函数和类尺寸短小
3)、采用标准命名法
4)、单元测试