摘要:
我们知道依赖注入(DI)是一种实现对象及其协作者或依赖关系之间松散耦合的技术。 ASP.NET Core包含一个简单的内建 "容器" 来支持构造器注入。 我们试图将DI的最佳实践带到.NET Core应用程序中,这表现在以下方面: 1. 构造器注入 2. 注册组件 3. DI in testing 阅读全文
摘要:
模式匹配在F 是非常普遍的,用来对某个值进行分支匹配或流程控制。 模式匹配的基本用法 模式匹配通过match...with表达式来完成,一个完整的模式表达式长下面的样子: 当你第一次使用模式匹配,你可以认为他就是命令式语言中的switch...case或者说是if...else if...else。 阅读全文
摘要:
在深入到函数式编程思想之前,了解函数式独有的类型是非常有必要的。函数式类型跟OO语言中的数据结构截然不同,这也导致使用函数式编程语言来解决问题的思路跟OO的思路有明显的区别。 什么是类型?类型在编程语言中有什么作用呢?一般来说,类型有两个作用: 1. 首先当你对某个数据声明类型后,就拥有了编译时的检 阅读全文
摘要:
写在前面 API网关是系统内部服务暴露在外部的一个访问入口,类似于代理服务器,就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导等工作,我们可以形象的用下图来表示: 外部设备需要访问内部系统服务时必须要通过我们的API Gateway,目的是为了隔离内部服务和外部访问来做统一的认证授权,限流 阅读全文
摘要:
作者:陈计节 个人博客:https://blog.jijiechen.com/post/powershell remoting/ 在 Linux/Unix 世界里 SSH 是个好东西,SSH 是 Secure Shell 的缩写,用它可以很容易连接到指定的服务器,并执行特定命令行。除了支持远程终端, 阅读全文
摘要:
众多语言都会设计Option类型,例如Java 8和Swift都设计了Optional类型。其实这种类型早就出现在了函数式语言中,在OCaml和Scala中叫Option,在Haskell中叫Maybe。Option类型是为了解决了什么样的问题呢? null的局限性 你一定写过类似的C 代码: cs 阅读全文
摘要:
作者:陈计节 个人博客:https://blog.jijiechen.com/post/docker on windows/ [Docker][1],或者准确一点说,容器技术,在近几年里几乎成为了应用分发和集群部署的默认技术了。背景部分,如果感兴趣,请参考[闲谈集群管理模式][2]一文。Docker 阅读全文
摘要:
组合 函数式编程的核心在于 ,其中之一就是如何组合函数。我们在Currying一文就提到过组合,我们当时是这样描述的:只有一个输入和一个输出的函数才能完成组合,当然并不是所有的函数都只有一个输入,Currying可以帮助我们把多个输入参数的函数变成只有一个输入的函数。 那么到底什么是组合,怎么组合? 阅读全文
摘要:
是时候介绍如何在F 中定义函数了,在你没有接触过函数式编程语言之前,你也许会觉得C /Java的语法已经够丰富了,有什么任务做不了呢?当你读过 "函数式编程之Currying" 和 "函数式编程之Partial application" ,你就会发现C 在函数式编程方面已经略显无力了,虽然我用C 模 阅读全文
摘要:
上一篇关于Currying的介绍,我们提到F 是如何做Currying变换的: 给定一个接受三个参数的函数 ,我们通过 这样的方式创建出了一个新的函数 ,其函数签名为: 上面是F 用来描述函数签名的方式,它表示函数接受两个int类型的参数,返回类型为int类型。 类似地: 表示参数为 类型的函数,返 阅读全文