11.1阅读笔记
《程序员的修炼之道:从小工到专家》
第四章:注重实效的偏执
- 按合约设计:没有什么比常识和坦率更让人感到惊讶。按合约设计: 一种简单而强大的技术,他关注的是用文档记载(并约定)软件模块的权利与责任,以确保程序正确性< 通过合约进行设计 >出错时要偏向消费者,这是我们对行为的保证
- 断言式编程:在自责中有一种满足感。当我们责备自己时,会觉得再没有人有权责备我们。这绝不会发生。。。我们不要这样自我欺骗,特别是在编码时< 如果他不可能发生,用断言确保他不会发生 >
- 何时使用异常
第五章:弯曲或折断
- 解耦与得墨忒耳法则:好篱笆促成好邻居。函数的得墨忒耳法则视图使任何给定程序中的模块之间的耦合减至最少
-
元程序设计:再多的天才也无法胜过对细节的专注。我们可以让我们的代码变得高度可配置和”软和“ ------ 也就是容易适应变化< 要配置,不要集成 >< 将抽象放进代码,细节放进元数据
-
不要让你的项目(或你的职业生涯)走上渡渡鸟的道路(毛里求斯岛上的渡渡鸟不能适应人类和他们的家畜的出现,很久就灭绝了。这是人类记载的第一起物种灭绝)
-
时间是软件架构的一个常常被忽视的方面。时间有两个方面对我们很重要:并发(事情在同一时间发生)和次序(事情在时间中的相对位置)我们需要容许并发,并考虑解除任何时间或次序上的依赖
-
它只是视图:那人依然只听到,他想要听到的东西,而不顾其他。不要把程序写成一个大块,应该”分而治之“,吧程序划分成模块模块的一个好定义就是,他具有单一的、定义良好的责任让视图与模型分离
-
黑板系统让我们完全解除了我们的对象之间的耦合,并提供了一个”论坛“,知识消费者和生产者可以在哪里匿名、异步地交换数据,还能减少我们必须编写的代码的数量。可以用黑板协调完全不同的事实和因素,同时又使个参与方保持独立、甚至隔离。