cststudio / csthinking

一些思路,一些想法,一些实验。随意提提,随意想想,随意看看,不做决策。
0 stars 0 forks source link

[术语]程序设计一些术语(正交性,幂等性) #27

Open latelee opened 3 years ago

latelee commented 3 years ago

正交性

正交性是有助于使复杂设计也能紧凑的重要特性之一。在纯粹的正交设计中,所有的操作均无副作用;每一个动作(无论是API调用,宏调用或者语言运算)只改变一件事情,不会影响其他。无论你控制的是什么系统,改变一个时期的方法有且只有一个。
基础API只提供,必要,且只完成一件事情的接口,这样用户可以通过组合的方式,完成所有功能。

幂等性

“幂等”是指一个操作重复执行N次得到的结果(副作用)与执行一次是相等的。幂等性原本是数学中的含义,表达式的是N次变换与1次变换的结果相同。
例如: 在HTTP协议中,get请求,会得到同样的数据

RESTFul API中的幂等性是指调用某个方法1次或N次对资源产生的影响结果都是相同的,需要特别注意的是:这里幂等性指的是对资源产生的影响结果,而不是调用HTTP方法的返回结果。 举个例子,RESTFul API中的GET方法是查询资源信息,不会对资源产生影响,所以它是符合幂等性的,但是每次调用GET方法返回的结果有可能不同(可能资源的某个属性在调用GET方法之前已经被其他方法修改了)

latelee commented 3 years ago

康威第一定律

Conway’s law: Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.– Melvin Conway(1967)
组织设计的产品/设计等价于这个组织的沟通结构。

康威第二定律

There is never enough time to do something right, but there is always enough time to do it over。
时间再多一件事情也不可能做的完美,但总有时间做完一件事情。

康威第三定律

There is a homomorphism from the linear graph of a system to the linear graph of its design organization.
线型系统和线型组织架构间有潜在的异质同态特性。

康威第四定律

The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems。
大的系统组织总是比小系统更倾向于分解。