官术网_书友最值得收藏!

Stateless versus stateful

Pure functions and referentially transparent expressions are stateless. A piece of code is stateless when its outcomes are not influenced by previous events. For example, the results of the isIndexPage function will not be influenced by the number of times that we invoke it, or by the moment in time when we invoke it.

The opposite of stateless code is stateful code. Stateless code is very difficult to test and becomes a problem when we are trying to implement scalable and resilient systems. Resilient systems are systems that can handle server failures; there is usually more than one instance of a service, and if one of them crashes, others can continue handling traffic. Also, new instances are created automatically after one of the instances has crashed. This becomes very difficult if our servers are stateful because we need to save the current state before a crash and restore the state before we spin up a new instance. The whole process becomes much simpler when we design our servers to be stateless.

With the arrival of the cloud computing revolution, these kinds of system have become more common, and this has led to an interest in functional programming languages and design principles because functional programming encourages us to write stateless code. The opposite can be said of OOP because classes are the main construct in OOP applications. Classes encapsulate state properties that are then modified by methods, which encourages methods to be stateful and not pure.

主站蜘蛛池模板: 安丘市| 姜堰市| 双流县| 隆尧县| 苍山县| 平果县| 崇礼县| 柘荣县| 皋兰县| 固阳县| 鸡东县| 义马市| 万年县| 黄浦区| 大港区| 太原市| 黄平县| 监利县| 灌南县| 夏津县| 大城县| 邳州市| 德昌县| 潼南县| 义马市| 营山县| 奈曼旗| 文登市| 东源县| 射洪县| 汉中市| 商洛市| 天气| 昭苏县| 错那县| 开远市| 湘潭县| 日照市| 安西县| 新泰市| 大理市|