软件模型:从数据流视图到对象视图

本文探讨了软件开发中的领域层和技术层,指出领域层适合采用面向对象视图,而技术层则更适合数据流视图。通过数据流角度理解软件运行过程,强调使用纯函数减少副作用,并提供了编写技术层代码的原则,包括数据载体、管道管理和正交化代码块。同时,领域层的业务逻辑通过对象进行描述,领域对象与技术层通过模型适配器交互,保持两者间的正交性。
摘要由CSDN通过智能技术生成

软件代码可以分成两个层次:领域层和技术层。

领域层:描述软件所满足的业务需求。核心业务逻辑在这一层抽象和表述

技术层:代码实现层面,是编程语言实际运行的载体,程序员每天工作的第一手材料。

 

 

领域层描述现实生活,是宏观视图,相对的,技术层就是微观视图。正如牛顿力学定律描述宏观物体的运动,而量子力学展现了微观世界的另一幅截然不同的画面,技术层和领域层许多时候应采用不同的思维模式。

面向对象视图在过去20年里的实践证明其适合大多数企业级应用的业务逻辑层开发,在领域层采用此思维方式是合适的。这个领域的经典方法论是领域驱动开发(DDD)。

技术层是否适合采用面向对象视图呢?我认为许多时候不合适。

经验丰富的程序员们,回想我们每天编写的代码,除了业务逻辑,剩下的就是一般人看不懂的技术元素:设备,文件,网络,通信,线程,界面控件,内存数据……等等。处理这些技术元素的代码,在许多业务简单的系统上,甚至占了代码的大部分。这些并不适合用对象来表述。

现在我们来返璞归真,凭自己的直觉来写代码——具体实现的编程语句。

语句是一行一行写的,声明,读取,计算,赋值,间或有分支,循环,中断,跳转。

思路顺着语句顺序向下流动,程序也是按照这个步骤一步一步,带着二进制数据向下传。这是一副小河潺潺流水,大河奔腾向前的图景。

如果我们的程序能像这片山河般井然有序,安定祥和,那该多好。哦,山河……,不好意思,我站在宏观世界的角度去描述微观世界了,应该将自己缩小到分子原子电子的尺寸下看世界。

原子世界的规则是多么简单,他们仅用屈指可数的几个元素,定律,便缔造出宏伟壮丽的世界。世界的本原到了这里,豁然开朗,原来规则如此简单,再也不会烧脑,掉头发了。那我们就用少数的几个元素——设备,文件,网络,线程等——来描绘一个新世界。像乐高积木一样,红橙蓝绿,方块圆柱,几种原材料,随意组合,无限种可能性,我们的生活就丰富多彩了。写情书,用货币到超市买东西,看足球比赛,在高速公路飙车&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值