大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

筷子定理(二)

  • 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:23841

评论

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

今天!通义灵码在北京、成都、杭州三城开讲啦

阿里巴巴云原生

阿里云 云原生 通义灵码

Python 遍历字典的这6种方法,你都掌握了吗

我再BUG界嘎嘎乱杀

Python 后端 字典

Vue.js条件渲染与列表渲染指南 _

不在线第一只蜗牛

vue.js 前端

XSKY CTO 在英特尔存储技术峰会的演讲:LLM 存储,架构至关重要

XSKY星辰天合

分布式存储 大语言模型 XSKY 星辰天合 高带宽存储

全方位质量保障!龙蜥在内核、软件包、容器镜像、三方模块的 CI 工程实践

OpenAnolis小助手

ci 质量保证 龙蜥社区

今天!通义灵码在北京、成都、杭州三城开讲啦

阿里云云效

阿里云 云原生 通义灵码

QAnything 1.4.1 中的文档解析

有道技术团队

rag 知识库问答

报名倒计时!「飞天技术沙龙-CentOS 迁移替换专场」参会指南

OpenAnolis小助手

操作系统 CentOS 停服 CentOS 迁移最佳选择 CentOS迁移

龙蜥开发者说:夏日编码奇遇,中国科学院大学学子的开源世界探索记 | 第 27 期

OpenAnolis小助手

龙蜥开发者说

阿里1688布局跨境业务,瞄准海外代采丨1688代采系统

tbapi

1688 1688代采系统 1688代采

NFTScan | 05.20~05.26 NFT 市场热点汇总

NFT Research

NFT NFTScan

精彩回顾!AI赋能下的自动化攻防分享

云起无垠

# 使用RAG-GPT集成智谱AI、DeepSeek快速搭建OpenAI Cookbook智能客服

Geek_1ef48b

半导体存储品牌企业江波龙加入龙蜥社区,完成与 Anolis OS 适配

OpenAnolis小助手

龙蜥社区 龙蜥社区生态伙伴 江波龙

使用 Spring Cloud Alibaba AI 构建 RAG 应用

阿里巴巴云原生

阿里云 云原生

小白入门必备!计算机科学教程的Python精要参考PDF开放下载!

我再BUG界嘎嘎乱杀

Python 后端 入门 零基础

OpenHarmony开发者大会2024致谢项目群捐赠人,多家单位参与现场授牌

极客天地

安全厂商第一站!OASA 走进绿盟科技圆满结束

OpenAnolis小助手

龙蜥社区 龙蜥社区安全联盟

兼职福音!API信息录入员火热招募中

幂简集成

API 兼职 招募

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