50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

筷子定理(二)

  • 2020-01-17
  • 本文字数:919 字

    阅读完需:约 3 分钟

筷子定理(二)

我的筷子定理

还拿开头的 TDD 为例,一般我们大多数人习惯的方式是遇到问题后(例如实现一个计算前 n 位斐波那契数的函数),采用的是自上而下的设计实现方式,就是先想一个解决方案(例如递归啊什么的),然后写代码实现,这很自然是吧,相信大多数人也是这么做得。


而 TDD 所使用的方式是自下而上的设计实现方式,就是先快速解决 n 是 1 的情况,再快速解决 n 是 2 的情况,以此类推,通过不断地“红-绿-重构”来驱动实现的一步步演进同时驱动出好的设计。


乍一看 TDD 所使用的方式有点古怪,而且这个思路的转换对于大多数人都很难,难到让人本能的就想抗拒。所以才会有了这个问题:既然自上而下的方式已经可以解决问题了,为什么还要去自讨苦吃地去学习 TDD 自下而上的方式呢?


看来……是时候掏出我的筷子了…… (▭-▭)✧


如果说解决一个具体问题的过程,可以类比成寻找一根筷子平衡点的过程。


传统的自上而下的设计实现方式就像从左向右寻找筷子的平衡点。



而 TDD 中所描述的自下而上的设计实现方式则像是从右向左寻找筷子的平衡点。



两种方式虽然方向不同,但目标是相同的,自然也没有好坏之分。


既然都可以做到,为什么我还需要学两种不同的方式呢?


答案很简单:因为你会的越多,选择才会越多,也才有可能融会贯通,突破极限,达到一个更高的境界。例如,在找筷子平衡点这个问题上,就可以通过结合这两种不同的方式让整个过程变得更快,且更加容易(我闺女都能轻易做到)。而面对复杂的软件问题时,知识越多,视角越多,同样也可以帮我们从不同方向快速的逼近真正的目标。



那什么是经验呢?在我看来经验就是可以帮我们从一个比别人更接近最终目标的起点开始,而且速度更快一些而已。



那大神是什么?简单来讲大神就是经验丰富到一定程度后,起点无限接近于最终目标而已。



作为大神级人物,当然不止这些,还可以做到触类旁通,融会贯通。甚至突破一些我们认为不能突破的限制,快速的学习和掌握类似的知识技能。


所以

  • 不要问我为什么要学,尝试去问我为什么不学。

  • 不要给自己设围墙,勇于乐于尝试各种不同的语言、工具、思想、甚至看问题的角度。

  • 要持续不断地练习、反思、改进,大神之路就在前方。


本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/GoG2DGRRkTMF1mA_ARb48w


2020-01-17 11:23825

评论

发布
暂无评论
发现更多内容

Soul 网关实践 03|http 请求接入网关

哼干嘛

Java 探索与实践 Soul网关

如何通过即构小程序组件实现直播带货功能?

ZEGO即构

小程序 直播带货

Java 程序经验小结:接口只用于定义类型

后台技术汇

28天写作

[6/28]产品业务数据分析的质量实践

L3C老司机

听过闰年闰月,听过闰秒吗?

艾小仙

后端

区块链赋能物流行业:“圈子文化”下,网络货运的数字化转型之路

CECBC

区块链 区块链物流

如何轻松面过阿里社招Java岗,九大核心模块为你保驾护航!(知识点+面经)

Java架构追梦

Java 架构 面试

项目管理系列(3)-如何开好一个项目启动会

Ian哥

项目管理 28天写作

案例研究之聊聊 QLExpress 源码 (八-1)

小诚信驿站

聊聊架构 28天写作 QLExpress源码 聊聊源码

【计算机内功修炼】六:10张图让你彻底理解回调函数

码农的荒岛求生

异步 同步 异步IO 回调函数 异步编程

沉寂唯品会3年,毅然辞职冲刺阿里,我是怎么备战金三银四的?

比伯

Java 编程 架构 面试 程序人生

Java虚拟机内存模型

xcbeyond

Java JVM Java虚拟机 28天写作

Soul 网关实践 02|选择器&规则介绍

哼干嘛

Java 探索与实践 Soul网关

早上听了一场关于财富的线上专题分享

熊斌

财富自由 28天写作

区块链介绍

v16629866266

区块链

像用户一样测试:别掉链子

QualityFocus

软件测试 用户体验 回归测试

胆大无险,脚踏实地

.

28天写作

重学JS | 箭头函数为什么不能用做构造函数?

梁龙先森

面试 大前端 编程语言 28天写作

Redis 学习笔记 04:跳跃表

架构精进之路

redis 七日更 28天写作

想象力,科幻与其他「关于科幻 8/28」

道伟

28天写作

【CSS】文字特效(text-shadow)

德育处主任

CSS css3 html/css CSS小技巧 28天写作

生产环境全链路压测建设历程 29:FAQ 之 评估方法论、改造、痛点

数列科技杨德华

28天写作

2021年“区块链+”将会如何发展?

CECBC

区块链

电商网站商品管理(三)group by+avg+sort等聚合分析

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

智能building之 园区

张老蔫

28天写作

短视频+直播=最自然的表达方式?| 视频号 28 天 (09)

赵新龙

28天写作

架构师训练营 - 第三周作业

Mark

低代码是在炒概念,炒得不错

Justin

低代码 28天写作

餐饮品牌资产上链,产业区块链史诗级浪潮已到来

CECBC

餐饮

架构师训练营第八周课后作业

万有引力

深入理解nodejs中的异步编程

程序那些事

多线程 nodejs 异步编程 程序那些事 回调

筷子定理(二)_语言 & 开发_王健_InfoQ精选文章