几个易混淆的软件术语
Scalability
https://www.reactivemanifesto.org/glossary#Scalability
伸缩性: 一种系统的能力,通过增加更多的计算资源来增加性能(吞吐量)。
The ability of a system to make use of more computing resources in order to increase its performance is measured by the ratio of throughput gain to resource increase. A perfectly scalable system is characterized by both numbers being proportional: a twofold allocation of resources will double the throughput. Scalability is typically limited by the introduction of bottlenecks or synchronization points within the system, leading to constrained scalability, see Amdahl’s Law and Gunther’s Universal Scalability Model.
Elasticity (in contrast to Scalability)
https://www.reactivemanifesto.org/glossary#Elasticity
弹性: 系统的吞吐量自动地伸张或者收缩,来满足变化的需求,当资源被同比例地添加或者移除的时候。
弹性的前提是系统首先要求可伸缩性。
Elasticity means that the throughput of a system scales up or down automatically to meet varying demand as resource is proportionally added or removed. The system needs to be scalable (see Scalability) to allow it to benefit from the dynamic addition, or removal, of resources at runtime. Elasticity therefore builds upon scalability and expands on it by adding the notion of automatic resource management.
Elastic
https://www.reactivemanifesto.org/
The system stays responsive under varying workload. Reactive Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs. This implies designs that have no contention points or central bottlenecks, resulting in the ability to shard or replicate components and distribute inputs among them. Reactive Systems support predictive, as well as Reactive, scaling algorithms by providing relevant live performance measures. They achieve elasticity in a cost-effective way on commodity hardware and software platforms.
https://www.dictionary.com/browse/elasticity
弹性 -- 物理上的定义, 物质的性质,能够立刻响应压力,改变长度、体积、形状, 压力去除后,可以恢复成原始的形状。
the property of a substance that enables it to change its length, volume, or shape in direct response to a force effecting such a change and to recover its original form upon the removal of the force.
resilience
复原力:当系统遇到失败时候, 这里的失败是不能够提供正常的服务, 能够从失败中自动恢复,提供服务。
与弹性相比, 我理解, 弹性是系统应对压力的表现性质,
复原力, 是系统应对故障的表现性质, 弹性要求压力有一定的范围, 故障可能是压力导致,也可能是某些意外导致, 但是遇到这些故障后, 系统能够恢复正常状态。
https://www.hujiang.com/ciku/resilience/
the physical property of a material that can return to its original shape or position after deformation that does not exceed its elastic limit
http://www.iciba.com/resilience
ADJ-GRADED 坚韧的;有弹性的;有韧性的;有回弹力的 Something that is resilient is strong and not easily damaged by being hit, stretched, or squeezed.
Cotton is more resistant to being squashed and polyester is more resilient.
棉布更抗压,而涤纶更有弹性。
...an armchair of some resilient plastic material.
由某种弹性塑料做成的扶手椅
2ADJ-GRADED 能复原的;恢复快的;适应力强的 People and things that are resilient are able to recover easily and quickly from unpleasant or damaging events.
George Fraser was clearly a good soldier, calm and resilient...
乔治·弗雷泽显然是个好士兵,沉着冷静且适应力强。
When the U.S. stock market collapsed in October 1987, the Japanese stock market was the most resilient.
1987年10月美国股市崩盘后,日本股市是反弹最快的。
https://www.reactivemanifesto.org/
The system stays responsive in the face of failure. This applies not only to highly-available, mission-critical systems — any system that is not resilient will be unresponsive after a failure. Resilience is achieved by replication, containment, isolation and delegation. Failures are contained within each component, isolating components from each other and thereby ensuring that parts of the system can fail and recover without compromising the system as a whole. Recovery of each component is delegated to another (external) component and high-availability is ensured by replication where necessary. The client of a component is not burdened with handling its failures.
flexibility
http://www.iciba.com/flexibility
柔韧性: 系统可以变化自身,不出故障,并适应很多不同的环境和情况。
与之相反的,就是刚性,不能随着变化自身,适应不同的环境的变化。 这个跟恐龙的灭绝很相似,不能适应环境的很有可能被淘汰掉。
与弹性关系, 有弹性肯定有柔韧性, 但是反之不成立, 柔韧性可以包括若干方面, 并不仅仅是面对压力的伸缩性, 以及复原力也是柔韧性的表现。
ADJ-GRADED 可弯曲的;柔韧的 A flexible object or material can be bent easily without breaking.
...brushes with long, flexible bristles.
鬃毛长而柔韧的毛笔
2ADJ-GRADED 易变通的;适应性强的;灵活的 Something or someone that is flexible is able to change easily and adapt to different conditions and circumstances as they occur.
Look for software that's flexible enough for a range of abilities.
寻找功能多、适用性强的软件。
...flexible working hours.
灵活的工作时间
extensibility
扩展性: 软件设计上的考虑,应对未来的变化,设计框架容易扩展功能,满足将来的需求。
https://www.dictionary.com/browse/extensible?s=t
capable of being extended.
http://cncc.bingj.com/cache.aspx?q=extensible&d=4734226548597395&mkt=zh-CN&setlang=zh-CN&w=7PSdja64oPto4OiFATjltmDEuGodTT-o
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions.
An extensible system is one whose internal structure and dataflow are minimally or not affected by new or modified functionality, for example recompiling or changing the original source code might be unnecessary when changing a system’s behavior, either by the creator or other programmers.[1] Because software systems are long lived and will be modified for new features and added functionalities demanded by users, extensibility enables developers to expand or add to the software’s capabilities and facilitates systematic reuse. Some of its approaches include facilities for allowing users’ own program routines to be inserted and the abilities to define new data types as well as to define new formatting markup tags.[2]
fault、failure、exception和error
https://blog.csdn.net/qq_14982047/article/details/51016905
error -- 错误(人为可预知的, 与正确对应)
fault -- 差错(代码逻辑上的差错), 地质上为断层的意思, 用在代码上, 表示实现的跟正确的逻辑只见的差异, 有错误则必有差错。
failure -- 失败 (软件的效用上不成功), 不能共正确的提供整体宏观上的服务。
exception -- 与错误对比, 异常为人为不可知的差错, 例如硬件上的故障。
(一)什么是error?
我们先看软件工程中对error的定义,
Error is deviation from actual and expected value.
It represents mistake made by people.
1
2
这句话的意思是,Error是指实际值偏离你最初的期望,往往是由人为造成的。
(二)什么是fault?
Fault is incorrect step, process or data definition in a computer program which causes the program to behave in an unintended or unanticipated manner.
It is the result of the error.
1
2
这段话的意思,fault通常是由于程序中不正确的步骤,过程或者数据定义,导致程序出现了非故意的、不可预料的行为。fault通常是由error导致的。
(三)什么是failure?
Failure is the inability of a system or a component to perform its required functions within specified performance requirements.
Failure occurs when fault executes.
1
2
这段话的意思是failure是一个系统或者组件不能完成它被要求的功能。failure通常是由fault导致的。
从前面的解释我们可以顺理成章的得出这样的解释,一些人为的error,使得程序中产生了不正确的步骤、过程和数据定义,从而使程序出现了一些不可预料的fualt,这些 fault最终又致使系统或者组件不能完成了最初要求的功能,也就是failure。如果你还有点迷糊,那么通过下面的这个例子,相信你应该就更清楚了。
————————————————
版权声明:本文为CSDN博主「在地图上飞行」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_14982047/article/details/51016905