写点什么

筷子定理(二)

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

评论

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

5个影响YashanDB数据库性能的关键因素

数据库砖家

5种方式提升YashanDB数据库的查询速度

数据库砖家

7个步骤更好地维护您的YashanDB环境

数据库砖家

Apache Doris 与 ClickHouse:运维与开源闭源对比

SelectDB

数据库 数据分析 实时数仓 Clickhouse apache doris

一文读懂更换域名注册商的步骤和常见问题

防火墙后吃泡面

0代码,用n8n一键打通微信、钉钉与数据库,效率提升500%

测试人

【RFID隧道机品牌评测】斯科信息 VS 其他品牌性能对比

斯科信息

斯科信息 RFID隧道机 RFID隧道机品牌

如何通过Python SDK在Collection中进行相似性检索

DashVector

人工智能 数据库 AI 大模型

5个原因选择YashanDB支持您的企业增长

数据库砖家

1688图片搜索API详解

tbapi

1688API 1688图片搜索接口 1688拍立淘api

6种实用的方法提升YashanDB数据库的可用性

数据库砖家

极氪汽车×火山引擎:AI数据专家“上岗”,注入“分钟级”数据洞察力

北京中暄互动广告传媒有限公司

俄罗斯合作伙伴 Mobx,用 NocoBase 交付多场景方案

NocoBase

数据库 开源 项目管理 CRM 无代码

在AI技术快速实现创意的时代,挖掘新需求成为核心竞争力——某知名笔记应用主题需求洞察

qife122

用户体验 需求分析

5个有效方法提升YashanDB数据库的安全性

数据库砖家

5个主要因素影响YashanDB的选择

数据库砖家

5个最常见的YashanDB数据库配置误区

数据库砖家

5种方式提升YashanDB的使用体验

数据库砖家

6个常见错误避免在YashanDB数据库管理中出现

数据库砖家

6个常见误区关于YashanDB的使用与维护

数据库砖家

7个常见问题解答关于YashanDB的误区

数据库砖家

基于 Seedream 4.0 模型的多图融合应用开发实战(下)

北京中暄互动广告传媒有限公司

6个理由为什么选择YashanDB数据库

数据库砖家

文心快码Comate3.5S更新,用多智能体协同做个健康管理应用

Comate编码助手

AI 编程 文心快码 编程智能体 文心快码3.5S AI编程助手

不做“赛博棉花工”!TRAE 帮我实现数据处理自由

北京中暄互动广告传媒有限公司

使用 Visual Studio 快速创建 NuGet 程序包并发布到 NuGet 官网

追逐时光者

.net 微软 Visual Studio 2022

5项指标助您评估YashanDB数据库的性能

数据库砖家

7个步骤轻松掌握YashanDB的使用技巧

数据库砖家

7个步骤确保YashanDB数据库的顺利迁移

数据库砖家

鸿蒙应用开发从入门到实战(二十二):使用Stack实现层叠布局

程序员潘Sir

鸿蒙 HarmonyOS

Aniyomi扩展开发指南与Google Drive集成方案

qife122

android Aniyomi

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