查看原文
其他

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

CSDN云计算 2020-10-16

作者 | 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 翻译,转载请注明来源出处。

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

推荐阅读:真香,朕在看了!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存