- Hands-On Functional Programming with TypeScript
- Remo H. Jansen
- 248字
- 2021-07-02 14:03:10
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.
- 現(xiàn)代C++編程:從入門到實(shí)踐
- Learning ROS for Robotics Programming(Second Edition)
- 少年輕松趣編程:用Scratch創(chuàng)作自己的小游戲
- C語言程序設(shè)計(jì)基礎(chǔ)與實(shí)驗(yàn)指導(dǎo)
- Learn Programming in Python with Cody Jackson
- PLC編程及應(yīng)用實(shí)戰(zhàn)
- Kali Linux Wireless Penetration Testing Beginner's Guide(Third Edition)
- 手把手教你學(xué)C語言
- Java項(xiàng)目實(shí)戰(zhàn)精編
- MySQL程序員面試筆試寶典
- 編程改變生活:用Python提升你的能力(進(jìn)階篇·微課視頻版)
- Mastering SciPy
- TypeScript全棧開發(fā)
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用
- Hands-On Exploratory Data Analysis with Python