动机
今天闹了一天的肚子,下午总算缓过来了,再加上最近体重又有些飙升,决定不再乱吃东西,准备给自己做每天的健身餐,既然目标已经明确,接下来用TDD的方式拆分Task
1.减脂,又抗饿的主食
2.低糖,低脂,膳食纤维又多又不长肉的蔬菜。
3.补充蛋白质,低油低脂肪的肉类和饮品
快速通过身健身软件找到减肥最佳主食,最后选择了藜麦,由于实体店没有,在万能的大淘宝上完成了第一个Task
寻找不长肉的蔬菜,通过百度,最后锁定了西兰花,麻山药,红薯
接下来对比了猪肉,牛肉,鸡肉……发现鸡胸肉是物美价廉而且非常适合健身人士享用,饮品选择脱脂牛奶
去超市
藜麦在网上购买了,可是蔬菜,肉类还是决定去超市购买,这时候一个有意思的事情发生了,去超市的时候我即没有拎个篮子,也没有推个车,赤手空拳就杀了进去,这下可好画面如下
左手抱着两盒脱脂牛奶在胸前,还拎着一瓶橄榄油,右手抱着半米高麻山药,还要拿着鸡胸,顺便给自己买了点水果,这些全都是双手抱着,当时的感觉糟糕透顶。
联想到封装
用了好大的力气终于到了收款台,我做的第一件事就是买个塑料袋,当我结账后拎着塑料袋就在想这不就就是封装么。
我根本就不担心塑料袋里的食物是怎么放置的,我想要的东西都在我的塑料袋里,我想拿什么,只需要从塑料袋取就行。
思考计算机的发展
计算机技术的发展也和这个思想紧密相连,比如出现的各种个样的语言React,angular……移动操作系统android,IOS无不被这个思想影响着
1.从过程式编程到面向对象,过程式就好比我自己掌控了所有的食物,我要很清楚我哪个手拿着东西,哪个手还有地方放置东西,我必须要知道到所有细节,否则我就会出篓子,拿不了更多的东西(系统已经无法掌控)或者丢东西(Bug)。
2.面向对象也可以写出过程式代码,就拿Java来说,抛开函数不说,最小的塑料袋是类,但是塑料袋的承载是有限的,如果承载更多的东西就也会引发灾难(过大的类),而避免这种情况发生,就需要用更多的类分担这些风险,但是类多了也会有灾难,一个人也不可能拎着几百个塑料袋,这时候就出现了包(package)来封装这些塑料袋,包多了就用模块(Modular)来装这些包,模块多了咋办,可以想象微服务,docker……等等这些很潮的技术都是为解决问题而诞生了,而它们解决的问题始终没有变,就是封装起来。
完结
我的Idol王健说过一句关于TDD话,我们可以不把事情拆小,但是我们要具备可以把事情拆小的能力,有人说重构已死,面向对象语言已死,但是它们的思想一直伴随在我们的身边,未来肯定会越来越好,将来我们可能真的不再重构,可能机器帮我们写代码,可能需要什么功能只需要在云上直接进行可插拔的更换即可,可是这些想法就是从根本的思想(封装)发展而来,要这个能力,或许才能真的有可能理解小到重构,设计模式,大到微服务,云..
最后share下自己的健身餐