zoukankan      html  css  js  c++  java
  • 《干净架构读书笔记》——编程范式

      编程范式就像法律。每个法律条文,都从你手中征收了部分权利,但同时赋予你更好的社会(理论上)。比如法律禁止你杀人,那么也同时保证了你不会被随意谋杀。从计算机软件开始之初,一共诞生了3种重要的编程范式。

      一是结构化编程。结构化编程范式把我们直接控制语句的权利给没收了。我们从此不再用Goto直接在语句中跳来跳去,而是采用将大的方法拆分成N多个小方法(单一职责原则)来分解问题。这样带来的好处是代码更容易读,也更容易测试。

      二是面向对象编程。面向对象的最大价值是面向抽象。在面向对象出现前,我们要调用其他模块的功能,就必须引用其他模块,比如C里面的Include,这样就带来了耦合。比如我们业务模块需要调用数据库来存储,那么业务模块中就必须引用数据库模块,而业务是高层,他不应该依赖细节。这么做的缺点就是当你想换个数据库实现(这种情况可能并不多)的时候,就要修改很多东西,包括业务。而面向对象出来后,我们可以在业务模块声明一个数据库接口并使用接口实现存取,然后用依赖倒转原则注入实现。因此,面向对象是没收了我们直接控制模块的权利,从而给你提供了更好的解耦。

      三是函数式编程。在命令式编程中,状态和控制是一起的,比如一个用户账户余额。余额是一个状态,当余额发生变化,就要不断修改余额。这样就带来的并发冲突问题,因此就需要用诸如同步锁的方式来保证访问的安全性。而在函数式编程中,变量一旦声明赋值,就不再发生变化,因此也就没有访问冲突。函数式编程没收了我们直接修改变量的权力,从而给我们提供了更好的并发特性,函数因为没有副作用,也更容易测试,问题也更容易定位。

  • 相关阅读:
    凤凰架构-读书笔记
    《团队协作的五大障碍》笔记
    MongoDB基本操作命令一
    NBI可视化集成clickhouse,实现百亿级数据分析能力
    AI文本与图像数据集荟萃
    gitLab内网部署
    git管理子模块
    git基础使用
    linux内核数据结构之链表-再实现
    win10下安装linux子系统
  • 原文地址:https://www.cnblogs.com/bobdeng/p/8927081.html
Copyright © 2011-2022 走看看