本文目录
函数式编程的底层架构和命令式编程有区别吗
函数式编程与命令式编程最大的不同之处在于:
函数式编程主要体现的是数据的映射,命令式编程关心的是解决问题的环节或者说过程。
函数式编程反应的是一件事物和另一件事物的之间的对应关系。函数式编程中的Lambda可以看做两个类型之间的关系,一个式输入,一个是输出。它在演算时候给Lambda表达式一个输入类型的值,则可以得到一个输出类型的值。
函数式编程的思维就是如何把这些关系组合起来。
举个例子:用Hskell来讲,这个关系就是运算符(->),其实就是表达了lambda的运算类型。空类型(),积类型(a,b),与和类型Either a b是最基本的数据类型的构造。
命令式编程以命令为主,给机器提供一条命令,让它完全按照这个命令执行。
函数式编程把运算的过程尽量写成一系列的嵌套的函数调用,它强调没有副作用,函数要保持独立,所有的功能只返回一个新值,没有其它动作。
这也是命令式编程和函数式编程区别的另一种解释了。
五大场景深解无服务器架构如何实践
之前在其他问题里回答过,就直接粘过来了
无服务器技术的典型应用场景
1. 搭建应用程序的后端服务
无服务器技术适用于为各种Web 移动以及桌面应用构建可轻松快速扩展的后端程序
2.数据处理与操作
无服务器技术另一个常见的用途是数据处理、转换、操作和转码,例如使用AWS Lambda函数来处理CSV,JSON,XML文件,调整图像尺寸及格式转换
3. 实时分析
如使用AWS Lambda对流数据中的新记录做出反应,快速的处理、保存或丢弃
4.遗留API代理
可以使用API Gateway和lambda在遗留API和服务上建立新的API层,使他符合新系统的要求
5.计划任务和自动化任务
类似于LINUX上的定时任务,以及建立自动化的机器人,响应事件请求,发送通知等
无服务器的应用场景不仅仅是这些,还有更多的场景等待着人们去发现