用数学公式谈谈需求变更与架构调整

背景

因为很偶然的原因,来到了现在的团队,并从事很有兴趣但从未接触过的游戏服务端开发。过去的一年多,整天琢磨分布式、序列化、事件。中间,经常遇到牙膏式的需求变更,那个酸爽,一言难尽。你怎么谈复杂性、银弹……,统统没用。
某夜失眠,无意中想到以前在头条看到的一道数学题,很好说明需求变更、架构设计面对的问题。正好拿来练练笔。

题目

列举出0到9,然后用四个相同的数字,通过常用的运算符来匹配,使其等式成立,比如用3:
0 = 3 3 3 3 1 = 3 3 3 3 2 = 3 3 3 3 3 = 3 3 3 3 4 = 3 3 3 3 5 = 3 3 3 3 6 = 3 3 3 3 7 = 3 3 3 3 8 = 3 3 3 3 9 = 3 3 3 3 0=\quad3\quad3\quad3\quad3\\ 1=\quad3\quad3\quad3\quad3\\ 2=\quad3\quad3\quad3\quad3\\ 3=\quad3\quad3\quad3\quad3\\ 4=\quad3\quad3\quad3\quad3\\ 5=\quad3\quad3\quad3\quad3\\ 6=\quad3\quad3\quad3\quad3\\ 7=\quad3\quad3\quad3\quad3\\ 8=\quad3\quad3\quad3\quad3\\ 9=\quad3\quad3\quad3\quad3\\ 0=33331=33332=33333=33334=33335=33336=33337=33338=33339=3333

作为受过高等教育的我们,可以很容易弄出答案:
0 = ( 3 + 3 ) − ( 3 + 3 ) 1 = ( 3 + 3 ) ÷ ( 3 + 3 ) 2 = ( 3 ÷ 3 ) + ( 3 ÷ 3 ) 3 = ( 3 × 3 ) − ( 3 + 3 ) 4 = 3 × 3 + ( 3 ÷ 3 ) 5 = ( 3 + 3 ) − ( 3 ÷ 3 ) 6 = ( 3 + 3 ) + ( 3 − 3 ) 7 = ( 3 + 3 ) + ( 3 ÷ 3 ) 8 = ( 3 × 3 ) − ( 3 ÷ 3 ) 9 = ( 3 × 3 ) − ( 3 − 3 ) 0=(3+3)-(3+3)\\ 1=(3+3)\div(3+3)\\ 2=(3\div3)+(3\div3)\\ 3=(3\times3)-(3+3)\\ 4=\sqrt{3\times3}+(3\div3)\\ 5=(3+3)-(3\div3)\\ 6=(3+3)+(3-3)\\ 7=(3+3)+(3\div3)\\ 8=(3\times3)-(3\div3)\\ 9=(3\times3)-(3-3)\\ 0=(3+3)(3+3)1=(3+3)÷(3+3)2=(3÷3)+(3÷3)3=(3×3)(3+3)4=3×3 +(3÷3)5=(3+3)(3÷3)6=(3+3)+(33)7=(3+3)+(3÷3)8=(3×3)(3÷3)9=(3×3)(33)

需求变更

我们的业务需求,好比左边的数字。而右边的数字与组合,就好比我们采用的开发语言与对应的框架。
对于变更,比如1->2,很简单的调整,右边的规则却又很大的变化。运气好,框架唉支持能力强,或者前期建模能够适应,那么调整还不算困难。但那是偶尔。如果借用代数术语,运算符号的变化,就是函子发生了变化,代码规则必然跟着调整。
再有需求变更,把这个题交给产品试试,或许更形象一点。当然,我们是期望能够一次性的多了解需求,这样,即使迭代,我也知道大概怎么调整更好。比如预知5->6,我们架构上提前考虑了适配,后期改动就会更小。用公式表达就好比这样:
5 = ( 3 × 3 ) − ( 3 ÷ 3 ) 6 = ( 3 × 3 ) − ( 3 − 3 ) 5=(3\times3)-(3\div3)\\ 6=(3\times3)-(3-3)\\ 5=(3×3)(3÷3)6=(3×3)(33)
仅仅改变了一个符号而已!

最后

这公式还表达了另一个现象:有时候,看似很小的变更,还不一定能实现。好比之前的1,我要变成1.1,求解。怎么弄??

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值