远程访问

在软件业发展的初期,程序编写都是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维方式直接站在计算机的角度去抽象问题和解决问题,被称为面向过程的编程思想。与此类似,后来出现的面向对象的编程思想则站在现实世界的角度去抽象和解决问题,它把数据和行为都看作是对象的一部分,这样可以让程序员能以符合现实世界的思维方式来编写和组织程序。

这两种思想出现的时间有先后,但在人类使用计算机语言来处理数据的工作中,无论提倡以计算机的思维还是提倡以人类的思维来抽象问题,都是合乎逻辑的。经过了上世纪90年代末到21世纪初期面向对象编程的火热之后,如今又出现了另一种考虑如何对内封装逻辑、对外重用服务的新思想:面向资源的编程思想。这种思想是把问题空间中的数据对象作为抽象的主体,把解决问题时从输入数据到输出结果的处理过程,看作是一个(组)数据资源的状态不断发生变换而导致的结果。这种思想有其生根的土壤基础:在跨越进程、跨越网络主机、跨越编程语言的分布式系统中,人们尝试过将之前在单进程应用里行之有效的面向过程、面向对象的服务设计方法改造迁移,使之适应分布式环境,这项工作总体上获得了成功,但在分布式环境里多少还是出现了一些不适与瑕疵,所以为另一种服务设计风格,即面向资源的编程思想留出了成长的空间。

尽管在2020年还谈论什么RESTful、RPC,大概是确实有点落伍了,可这个问题是一个架构设计者必须有明确取舍权衡的重要技术决策,今天笔者仍准备来谈一下这个话题。

Kudos to Star
总字数: 649 字  最后更新: 7/20/2020, 6:01:46 PM