设计模式¶
DRY原则¶
DRY(Don't repeat yourself):
1 |
|
DRY,不仅仅限定于“不要复制粘贴源码。它针对的是你对**知识**和**意图**的复制,它强调的是,在两个地方表达的东西其实是相同的,只是表达方式有可能完全不同。
当代码的某个单一方面必须改变时,你是否发现自己在多个地方以多种不同的格式进行了变更?有没有同时修改源代码和文档,或是同时变更数据库Schema和代码中相关的数据结构,亦或...?如果是,则你的代码不满足DRY。
ETC 原则¶
ETC(Easy to Change)
- 为什么解耦很好?因为通过隔离关注焦点,可让每一部分都容易变更——此谓ETC。
- 为什么单一职责原则很有用?因为一个需求变化仅体现为某个单一模块的一个对应变化——此谓ETC。
- 为什么命名很重要?因为好的命名可以使得代码更容易阅读,而你需要通过阅读代码来进行变更——此谓ETC。
ETC是一种价值观念,而不是一条确定的规则¶
价值观念是帮助你做决定的:应该做这个,还是做那个?当你在软件领域思考时,你应该让它漂浮在意识思维之下,指引你正确的方向。那么如何做到?
1 2 |
|
当你无法确定这样做是使得系统容易改变还是更难时怎么做
- 试着让你写的东西可以替换。这样无论发生什么,这块代码都不会成为你的障碍。想着一直保持代码的解耦和内聚,当然这也是你一直应该这样做。
- 把它当作培养直觉的一种方式。在工程日志中记录你面临的处境:你有哪些选择以及关于改变的猜测。在源码中留一个标签,以便以后修改代码时进行回顾并给自己留下反馈记录。