Law 定律 #
奥卡姆剃刀原理 *** #
如果对于一个现象有好几种解释, 那么最简单的解释往往是最正确的.
排队理论 #
Little’s 定律 -> 应用 : 线程池中多线程个数的确定。
康威定律 #
organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations
- 衍生:
- 1).DDD context
- 2).微服务模块划分
Amdahl定律, 通用扩展定律(Universal Scalability Law, USL) #
CAP/BASE #
复杂度 简化本质复杂度,消除偶发复杂性. #
-
有三个问题可能会产生偶发复杂度。
- 第一个:由于日程或其他外部压力而导致临时大量削减代码。
- 第二个是复制。
- 第三个诱因是不可逆性,您做出的无法逆转的所有决定都将最终导致某种程度的偶发复杂度。
-
架构师: 去熵, 去复杂度。
原则 Principle #
SOLID *** #
- 开闭原则 [3]
- 对于扩展是开放的(Open for extension)
- 对于修改是关闭的(Closed for modification)
Happy path & Sad path 代码执行路径: happy path 和 sad path分离。 #
测试用例: happy path用例。 sad path用例, 使用@Exception(Junit4), fail(JUnit3)。
笛米特法则 #
只和最亲密的朋友讲话(talk only to your immediate friends). 任何对象都不需要知道与之交互的对象的任何细节.
MongoDB设计哲学 #
Databases are specializing – the “one size fits all” approach no longer applies.
“KISS”原则 - Keep it simple and stupid #
衍生: Rob Pike - Simplicity is Complicated
Rule of least power(够用就好)的原则。 #
这个原则是由 WWW 发明者 Tim Berners-Lee 提出的,它被广泛用于指导各种 W3C 标准制定
参考 #
- 对开发人员有用的定律、理论、原则和模式 ***
- 滴滴杜欢:大型微服务框架设计实践
- {% post_link ‘designOCPspi’ %} self