代码之美 阅读笔记

听一位大师级的程序员这样称赞到,“我通过删除代码来实现功能的提升。”而法国著名作家兼飞行家 Antoine de Saint-Exupéry 的说法则更具代表性,“只有在不仅没有任何功能可以添加,而且也没有任何功能可以删除的情况下,设计师才能够认为自己的工作已臻完美。”从第二章我获得的感悟:

* 通过删除代码来实现功能的提升。
* 只有在不仅没有任何功能可以添加,而且也没有任何功能可以删除的情况下,设计
师才能够认为自己的工作已臻完美。
* 有时候,在软件中根本就不存在最漂亮的代码,最漂亮的函数,或者最漂亮的程序。
* 良好的写作风格即为简练。省略不必要的字词。 (Strunk and White)
* 在计算机系统中,那些最廉价、速度最快以及最为可靠的组件是不存在的(Bell)
* 努力做到事倍功半。
* 如果我有更多的时间,那么我给你写的信就会越短(Pascal)
* 发明家的矛盾:计划越宏大,成功的可能性就越大。(Pólya)
* 简单性并不是在复杂性之前,而是在复杂性之后(Perlis)
* 少即是多。(Browning)
* 尽量使每件事情变得简单,并且直到不可能再简单为止(Einstein)
* 软件有时候应该被视作为一个肥皂泡(Perlis)
* 在简单中寻找漂亮。

第三章,我们看到即使是最优秀的程序员和最漂亮的代码也仍然能从测试中获益。我们也看到了编写测试代码可以跟编写目标代码本身一样需要创造力,也一样具有挑战性。而
且测试自身,至少在 3 个方面,也可被认为是漂亮的。有些测试因为简单和高效而漂亮。只需几行,每次随构建自动运行的 JUnit 代码,就能描述你想要的代码的行为和边界情况,并且能确保在代码不断开发的过程中,这些行为和边界情况一直保持。另外一些测试,它们的漂亮是因为它们在被编写的过程中,能够通过一些细小却又很重要的方式,帮助改善被测代码的质量。它们可能并不能发现常规的 bug 或缺陷,但它们能让代码中的问题浮出水面,这些问题可能是设计、可测试性和可维护性方面的问题;它们能帮助把代码变得更漂亮。最后,有些测试的漂亮是因为它们的覆盖面和彻底性。他们获得信心:即代码在功能和性能上都达到了要求和期望,不仅仅是针对几个手工挑选的情况,而是针对大范围的输入数据和条件。

剩下几章的内容都是技术性的东西,目录如下,感觉掌握就好,没什么感悟。。。

第 4 章 NASA 火星漫步者任务中的高可靠企业系统.....................................................................49
4.1 任务与 CIP ....................................................................................................................................49
4.2 任务需求........................................................................................................................................50
4.3 系统架构........................................................................................................................................51
4.4 案例分析:流服务........................................................................................................................54
4.5 可靠性............................................................................................................................................57
iii
4.6 稳定性............................................................................................................................................66
4.7 结束语............................................................................................................................................67
第 5 章 美丽的并发.............................................................................................................................68
5.1 一个简单的例子............................................................................................................................68
5.2 软件事务内存................................................................................................................................71
5.3 圣诞老人问题................................................................................................................................80
5.4 对 Haskell 的一些思考 .................................................................................................................90
5.5 结论................................................................................................................................................91
5.6 致谢................................................................................................................................................92
第 6 章 以 REST 方式集成业务伙伴.................................................................................................93
6.1 项目背景........................................................................................................................................93
6.2 把服务开放给外部客户................................................................................................................93
6.3 使用工厂模式转发服务................................................................................................................97
6.4 用电子商务协议来交换数据........................................................................................................98

猜你喜欢

转载自www.cnblogs.com/sumuyu1105/p/8953018.html