关于软件中业务逻辑的形式化表现

有个浅薄的想法,记录如下:


【上下文】

  • 软件产品中往往充斥着大量的复杂的业务逻辑
  • 代码中经常有很多复杂的逻辑判断
  • 由于业务逻辑的演变,代码中的逻辑经常被改动
  • 代码的改动者未必了解最初作者的原意,可能会无意造成逻辑错误
  • 代码没有对应的技术文档,或者文件不能及时更新

【想法】


能否定义出一套类似方法论的东西,使得:

  • 再复杂的业务逻辑,都能被这套方法论抽丝剥茧,整理的层次清晰,井井有条。
  • 表现形式可能是图表或者其他形式化的东西。
  • 对于复杂的逻辑,可以自顶向下分层描述,每一层都比较简单,容易理解。
  • 相邻层次之间能够很方便的 step in 和 step out。
  • 这里的“形式化的东西”很容易被理解。
  • 在逻辑链条的每一层,每一个环节,都能通过类似数学公式的形式化的东西,明白无误地,强有力地表述出来:这里的逻辑的存在是有理的,这里的逻辑就是这么简单,就是这么清晰明白!
  • 逻辑链条中的每一层,每一个环节,在代码维护阶段,都能很容易地被维护者理解,后者不容易曲解先前作者的原意。
  • 业务逻辑最终是以代码的方式被实现,但是,最好也要能够以一种形式化的方式,类似图表的方式展现出来。

现在大家写的代码中的if/else/switch/case/for/while等的方式,当然是实现软件产品的必要手段,但是总觉得有点“弱”,能否在稍微抽象一点的层次,更有力地审视和“抓住”每一个逻辑呢?这里的“稍微抽象一点的层次”可能是介于代码和产品设计之间的,更接近于代码的一个抽象层次。


展开阅读全文

没有更多推荐了,返回首页