放心!没人在意你使用的是命令式编程还是声明式编程

作者 | Sunil Sandhu

译者 | 弯月,责编 | 屠敏

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

最初我想写一篇文章详细介绍命令式编程和声明式编程之间的区别。有这个想法是因为我阅读了许多关于这个话题的文章,大部分在比较两者的区别时都使用了蹩脚的例子,比如演示怎样将一个数字乘以2,或者找到数组中的偶数等。几乎任何命令式编程和声明式编程的文章都使用了类似下面的例子。

近几年,声明式编程越来越流行,很大一部分原因是 React 的崛起,因为它创建组件就使用了声明式。我想说,我喜欢用声明式的方式编写组件,因此绝不会建议你用命令式的方式编写 React 组件。

但是我还想说,在编写普通的 JavaScript 代码时,有时候使用命令式还是有好处的。通常在写完后我都会将代码转换成更为声明式的代码,因为每种想法都需要一个打磨的过程才能变得更清晰。对于我而言,这个从命令式转变为声明式的过程很有用,可以帮助我隔离特定的代码、将函数泛化、实现代码重用等。当然,在团队中工作时这种转变也有好处,因为声明式代码有助于提高代码的语义性。

当然,与之相反的是,命令式代码更容易被别人理解——尽管有时候你需要在代码审查时强调你的情况。记住,“很可能有些人在意”你用的是命令式还是声明式,而且你的领导很可能就很在意!

因此,我认为,用比较代码区别的方式来思考命令式和声明式之间的区别是没有意义的,比如“这样写就是命令式代码,这样写就是声明式代码”。要理解什么时候该使用命令式什么时候该使用声明式,需要更深刻的理解,因为两者都是你应该熟悉的工具,我认为只有多写代码、多尝试才能真正掌握两者。

不论如何,我想指出:有时候命令式代码更合理,而有时候声明式代码则更合理,尽管声明式的代码更优雅,但声明式的内部逻辑很可能由极其抽象的命令式代码构成。而且你知道机器怎样运行你的代码吗?机器会展开所有代码,包括你编写的那部分漂亮的声明式代码,然后将其转换成一长列命令式的指令,供计算机执行。

所以,可能有人会在意你使用命令式还是声明式,但计算机肯定不会在意!

原文:https://medium.com/javascript-in-plain-english/nobody-cares-whether-you-used-imperative-or-declarative-programming-66c396ecce06

本文为 CSDN 翻译,转载请注明来源出处。

【End】

《原力计划【第二季】- 学习力挑战》正式开始!
即日起至 3月21日,千万流量支持原创作者,更有专属【勋章】等你来挑战

推荐阅读 

国产 14nm 迎曙光,进口荷兰光刻机顺利入厂!

阿里华为百度三足鼎立,5G 资费高,操作系统 Linux 称王 | 中国物联网开发者真实现状报告

无需3D运动数据训练,最新人体姿势估计方法达到SOTA | CVPR 2020

年增代码 12.9 亿行,每天完成需求近 4000 个,鹅厂程序员秘密大爆料!

如何与亦敌亦友的 null 说拜拜?大神原来是这么做的!

从哈希函数、哈希冲突、开散列出发,一文告诉你哈希思想与哈希表构造到底是什么!

你点的每一个在看,我认真当成了喜欢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值