《代码整洁之道》—第13章13.10节小结

简介:

本节书摘来自异步社区《代码整洁之道》一书中的第13章13.10节小结,作者【美】Robert C. Martin,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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

第一要诀是遵循单一权责原则。将系统切分为分离了线程相关代码和线程无关代码的POJO。确保在测试线程相关代码时只是在测试,没有做其他事情。线程相关代码应该保持短小和目的集中。

了解并发问题的可能原因:对共享数据的多线程操作,或使用了公共资源池。类似平静关闭或停止循环之类边界情况尤其棘手。

学习类库,了解基本算法。理解类库提供的与基础算法类似的解决问题的特性。

学习如何找到必须锁定的代码区域并锁定之。不要锁定不必锁定的代码。避免从锁定区域中调用其他锁定区域。这需要深刻理解某物是否已共享。尽可能减少共享对象和共享范围。修改对象的设计,向客户代码提供共享数据,而不是迫使客户代码管理共享状态。

问题会跳出来。那种在早期没跳出来的问题往往是偶发的。这种所谓偶发问题,通常仅在高负载下出现或者偶然出现。所以,你要能在不同平台上、以不同配置持续重复运行线程代码。跟随TDD三要则而来的可测试性意味着某种程度的可插拔性,从而提供了在大量不同配置下运行代码的必要支持。

如果花点时间装置代码,就能极大地提升发现错误代码的机会。可以手工做,也可以使用某种自动化技术。尽早这么做。在将线程代码投入生产环境前,就要尽可能多地运行它。

只要采用了整洁的做法,做对的可能性就有翻天覆地的提高。

相关文章
|
消息中间件 运维 前端开发
代码整洁之道
我们在做系统开发编码时,无论是对于系统响应及时性没有前端系统要求那么高,却有业务复杂、数据严谨的性质。还是面对高并发多线程,海量业务,分布式事务,一致性等要求很高的情况。良好的代码质量是保障系统和业务稳定的基础,要求我们从每一个代码、每一个变量、每一个方法做起
629 0
代码整洁之道
|
程序员 C++ 开发者
《代码整洁之道》-开篇
《代码整洁之道》-开篇
|
前端开发 测试技术 程序员
《代码整洁之道》-函数
《代码整洁之道》-函数
|
Java 程序员 测试技术
《代码整洁之道》&《程序员的职业素养》
《代码整洁之道》&《程序员的职业素养》
541 0
|
设计模式 测试技术 程序员
代码整洁之道(一)最佳实践小结
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. 普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。如何写出优雅整洁易懂的代码是一门学问,也是软件工程实践里重要的一环。前段时间通读了三本经典书籍《代码整洁之道 》、《编写可读代码的艺术》、《重构:改善既有代码的设计》,本文将重点从注释、命名、方法、异常、单元测试等方面总结了一些代码整洁最佳实践。
297 0
|
程序员 容器
代码整洁之道读后理解
###一,关于程序员的价值观 对于一个程序员来说,是应该有价值观的,然而最朴素的基本价值观,就是要写好的代码。然后,要做到这一点不容易, 对些,我针对这些价值观有自己的一些看法: (当然,在网上有关于价值观的内容一大片,各有视角,这里仅仅说说我的看法) 1,good software != quality code 2,软件开本 = 开发成本 + **维护成本** >注
1703 0
|
测试技术 程序员 Perl
代码整洁之道—函数
在编程的早期,系统由程序和子程序组成,后来,在Fortran和PL/1的年代,系统由程序,子程序和函数组成。如今,只有函数存活下来。 函数的规则 短小 函数的第一规则是要短小,第二规则还是要更短小。
901 0
|
设计模式 数据挖掘 Java
代码整洁之道—类
遵循Java约定,类应该从一组变量列表开始。如果有公共静态常量,应该先出现,然后是私有静态变量,以及私有实体变量。很少出现公共变量。 对于函数,我们通过计算代码行数衡量大小。
752 0

热门文章

最新文章