通常我们把想不明白的事情用这句话表达比如前台的MM怎么会看上那个小子???哎萝卜青菜各有所爱啊!
我喜欢反过来看事情为什么不管吃萝卜还是青菜都采用同一种端碗提筷子的手法但是不同的人居然还各自找到各自的满足?
让我们带着思考回到程序这个话题程序是否可以满足这样的特性总是那一套程序但是在不同的场景下由于吃的数据不同表现出不同的口味让大家都满意?
好吧这貌似有点难让我们用一个小程序理理思路
你需要管理一批库存材料材料方面我们简单起见只有价格这一个属性
老板要求需要知道所有材料价值多少另外单个材料大于元的属于贵重材料挑出明细列出来
这难不倒你三下五除二把程序做好了运行了几天没问题老板却说我觉得大于元也许才算贵重你改改吧!
改个数字并不难你修改了代码程序继续运行
哦 稍等!让我们停一停这个叙述太过于常规太流畅了我们回到更为一般的角度再看看也就是说老板下次改成元以上才算贵重我们还得修改代码或 许你要说我很擅长改这个木有问题!(我知道你只改个数字当然很自信!)但是永远不要忘了我们极大的简化了问题材料只有价格这唯一的属性真实的 情况下逻辑和条件都会随着考虑因素的加入而呈指数级增长!
如果这个时候你想到的是设计模式说明你还在徘徊!如果你想到了配置文件可以说你终于开始体会到一点点数据的好处了有那么点意思了!让我们继续
增加了配置文件把某个昂贵标准写入了配置文件每次老板说要改修改一个xml就行了!
程序运行了很久老板是个变态期间让你修改了好几百回这个价格!
让我们再停一停这个叙述中你发现配置文件虽然把数据独立出来却并没有解脱你这很关键
其实不是老板变态而是这个问题放到你身上你也不能一次把价格定下来因为但凡是个比较意义上的词汇(比如这里的贵重)都是没谱的!
我们需要从程序层面突破思维的障碍那么障碍是什么呢?其实人总是认为一个静态的概念一定是静态的!正如这里的贵重它一直在变诚然在具体的某个时间点上它是个数字但是它真的一直在变(我反复强调它在变你看到了么?)
来吧我们继续
在软件上增加个人中心让老板自己填一个数字他说多少算昂贵它就是昂贵!
这解决了很多问题甚至老板关心元以上的主管关心元以上的组长关心元以上的它们各自独立配置各自得到自己想要的结果!
我 们总结一下原来是程序里的代码逻辑驱动软件你写它就按执行(可不仅仅是筛选数据这么简单哦也许还涉及到分支判断就能感受到一个数字的 大不同了!)但是现在呢?程序不变了存储了用户和阀值之间的配对数据遇到什么样的人就按什么样的数据驱动软件!
千万不要觉得填写个性化选项太正常了要理解变化的产生是由于变化本身变化的解决方案就是让软件自由变化这种思想蔓延开来就能拨开云雾见青天!
稍等一下我稍微深入的再啰嗦几句通常我们的系统不会简单到只有价格这一个维度的那么错综复杂的数据和条件老板怎么可能配置的过来?
还是那句话人总是认为一个静态的概念一定是静态的!正如这里的软件它一直在变诚然在具体的某个时间点上它是具体存在的但是它真的一直随着数据而随时随地的变化
可能刚开始时你没有筛选出昂贵的功能只有一个按价格倒序分页的功能
随着老板的使用你发现他只看到第页而第页大约就是元的标准于是对他来说关心的昂贵就是为标准
随着他的继续使用可能慢慢只看第一页了而第一页是元的标准于是整个程序对他来说很自然的切换到为标准
这是一个从行为到数据积累潜移默化的过程!千万记住软件由数据驱动数据无时无刻不在变化软件不是一个静态的概念!
于是无论数据多么复杂都是和整个系统相辅相成的来的很自然用的也会很自然!
最后我想说一说类似哲学上的事情任何事件的发生都是有原因的一只小小的蝴蝶可以引发蝴蝶效应!所以牢牢的把握住数据利用它们驱动软件利用它们的变化提升软件因为业务的变化早就在数据上反应出来而软件由数据驱动你甚至根本不用修改软件
试试吧又不会怀孕