2022年新的开始,刚好公司每周分享轮到我这里了。憋了两周,经过痛苦的选题阶段,终于定下来了分享主题——“浅谈函数式编程”。之所以是浅谈,最大的原因是自己并没有玩明白😂。只能讲讲思想,带大家一起加入。😄 这篇文章,主要是在分享过程中做的一个demo,希望大家看了之后,能从实践中感受到三种编程范式的不同。
先介绍一下这个demo: 通过这个丑陋的表单创建一个用户。就这么简单
在展示代码之前,先梳理一下过程式编程的思路。这种范式其实是在基本的,在我们开始接触代码时,基本都使用过。自上而下告诉计算机怎么做,去实现这个功能
接下来是面向对象编程(oop),这里我使用了class语法糖。还是先梳理思路: 首先是需要创建一个类,包含表单里的属性。然后再建一个类,去校验表单输入的合法性。最后创建一个类,生成用户。之所以创建三个类,其实也是为了增加重用性,必须表单校验就可以被拿去复用。省掉了很多CV
最后是函数式编程。函数式编程的原则就是通过用无副作用的纯函数组合实现功能
总结一下: 显而易见,三种编程方式在书写上有很大的不同。虽然针对这个简单的demo我们看到的是过程式编程代码量更少。但是我们在日常需要处理的都是些负责的业务。在coding时,我们必须要注意 1.可扩展性 2.易模块化 3.可重用性 4.可测性 5.易推理性
这里函数式编程就是会把长函数分离成多个具有单一职责的短函数,这就灵活了很多。提高了代码的复用性、也更加容易做单元测试。