"/>
·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 站长圈 查看内容

没有if语句的代码长什么样子

2022-4-13 17:25| 发布者: admin| 查看: 134| 评论: 0|原作者: web前端开发

摘要: 来源|https://medium.com/@shirkavand/code-like-there-is-no-if-statement-36ca170c2b92if语句是任何软件工程师用来解决日常问题的...


来源 | https://medium.com/@shirkavand/code-like-there-is-no-if-statement-36ca170c2b92


if 语句是任何软件工程师用来解决日常问题的基本工具之一。从第一天开始,它就是软件工程的一部分,就在学生写下第一个“hello world”之后。它无处不在,它的破坏力也是如此。

尽管工程师们系统地对这一现实视而不见,但让我们看看我们如何改变思维方式来克服这个问题,并赢得与臭名昭著的 if 语句的战斗。

2013 年,我对一个有 20 年历史的软件进行逆向工程,他的原始创建者没有留下任何文档。几周后,我了解了算法的工作原理——它背后的美——以及它的边缘情况。这些边缘情况由 if 语句(或它们的邪恶化身)映射,最终在代码中形成一片森林。

如果您想知道,是的,它的原始创建者使用模式来适当地组织代码并使其可读,但事实是,模式只是为了可读性而隐藏 if 语句,但它们并没有摆脱它们。所以,最后,它们都在周围——就像蚊子整夜咬你一样。

就在那一刻,我用以下方式挑战自己。

如果每个算法可以使用有限数量的 if 语句,我将如何编写解决方案?

经过一番反复,我发现 if 语句让工程师懒于编码,此外,为他们提供了一种简单的方法来避免思考如何雄辩地解决问题——它创造了一种“啊,那里是一个边缘情况,让我们写一个 if 语句”。

考虑到这一点,现在我们可以谈谈我一开始承诺要分享的心态:

考虑一个问题,使边缘情况成为常态的一部分,而不是例外。

让我们用这种新的思维方式来解决一个实际的问题,看看它是如何工作的,在这种情况下——只是为了加强我之前关于工程师在这个问题上系统性地盲目的观点——让我们使用算法工程师在大学第一年学习一种称为“单链表”的特定数据类型:

尽管它是一段被广泛使用的代码,并且在世界各地的大学中都以这种方式教授,但该代码已经很糟糕了——如果你到目前为止已经注意了,你可能知道为什么……

是的,最后的 if 语句 。

我们不需要深入分析代码,简单来说就是处理一个特定的场景,当条目需要被删除,但是,删除的方式取决于它是第一个条目还是在中间(边缘 案子)。

如果我们使用新的思维方式——以边缘情况成为常态的一部分而不是例外的方式来思考问题——我们可以用这种新的方式重写这段古老的代码:

看看 if 语句是如何消失的,但更重要的是,边缘情况现在是规范的一部分,而不是例外,而且——作为一个重要的副作用——代码变得更加直接和雄辩。

尽管这是我们掌握主要思想的一个基本示例,但概念要复杂得多;它是关于看到边缘案例模式并本能地知道如何将它们转化为规范。一开始很难,但通过练习变得更容易管理。

现在继续打开您昨天正在处理的代码,并尝试使用这种新思维方式删除您的第一个 if 语句!

学习更多技能

请点击下方公众号



上一篇:前端开发必备基础英文单词整理汇总
下一篇:【ES6教程】第四章ES6类01—语法以及如何声明一个类

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.142.195.79,GMT+8, 2024-12-25 10:51 , Processed in 0.194650 second(s), 47 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部