现在越来越觉得两者有相似之处了。SOA目前在我看来就是提供粗粒度无状态的接口,这种接口基本上和基于过程的RPC是一样的。可能我对SOA的理解是错误的,但是我总可以说我理解的SOA是错误的,错误成了基于过程的RPC吧。下面来对比一下用户界面和SOA:
参数
用户界面:某些控件中用户填的内容
SOA:传过去的对象
调用
用户界面:用户触发一个事件
SOA:调用一个接口
返回值
用户界面:返回到前面的控件中或者在别的控件中显示
SOA:用by ref传递的对象的值的修改,或者返回一个返回值
即便是对于MDI这样的用户界面,操作也是共享的。而且更能说明其无状态的模型。因为提供操作功能的界面是公共的,所以子窗口更像是SOA中客户端保存的状态,在每次调用的时候传递给服务器。
——————————
一觉起来,接着说
把控件上用户填写的内容想象成客户端的对象,不需要我们处理的功能(比如控件自己带的ctrl+c)想象成客户端的代码。把用户触发事件想象成对Service的调用,把我们代码中表示控件内容的对象想象成服务器端相应的参数对象,我们事件处理的函数就是Service了。
联想到Web Service中服务器总是先写,客户端的存根总是根据WSDL文件生成。而写界面也是类似的,总是先有功能,然后再有界面。但是往往我们写界面的时候是需要用gui设计器,先画界面。那么是不是可以反过来,先写代码,然后gui设计器根据我们指定的一些对象作映射和设计,这是不是会更符合一个程序的产生过程呢?这样是不是减轻gui工作量的途径呢?
参数
用户界面:某些控件中用户填的内容
SOA:传过去的对象
调用
用户界面:用户触发一个事件
SOA:调用一个接口
返回值
用户界面:返回到前面的控件中或者在别的控件中显示
SOA:用by ref传递的对象的值的修改,或者返回一个返回值
即便是对于MDI这样的用户界面,操作也是共享的。而且更能说明其无状态的模型。因为提供操作功能的界面是公共的,所以子窗口更像是SOA中客户端保存的状态,在每次调用的时候传递给服务器。
——————————
一觉起来,接着说
把控件上用户填写的内容想象成客户端的对象,不需要我们处理的功能(比如控件自己带的ctrl+c)想象成客户端的代码。把用户触发事件想象成对Service的调用,把我们代码中表示控件内容的对象想象成服务器端相应的参数对象,我们事件处理的函数就是Service了。
联想到Web Service中服务器总是先写,客户端的存根总是根据WSDL文件生成。而写界面也是类似的,总是先有功能,然后再有界面。但是往往我们写界面的时候是需要用gui设计器,先画界面。那么是不是可以反过来,先写代码,然后gui设计器根据我们指定的一些对象作映射和设计,这是不是会更符合一个程序的产生过程呢?这样是不是减轻gui工作量的途径呢?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架