23

译文:软件研发:即效率和效益

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzU1Njk2NjkxNA%3D%3D&%3Bmid=2247483936&%3Bidx=1&%3Bsn=98f9a1eaf6bc1442f39ff19b9f456443
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

译自: https://ddimitrov.dev/2020/06/29/software-development-is-about-being-effective-and-efficient/

P.S. 英文好的同学,可以直接看英文。

RJ3ABfn.jpg!mobile

让我再重申一遍——软件研发:即效率和效益。

浏览twitter和其他社交媒体时,我经常看到人们对技术的偏爱,只是因为它 "性感"、是新出的和 "酷 "的。

值得注意的是,编程语言和平台只是工具。如果你需要一把锤子,你就不应该用螺丝刀,无论螺丝刀多么新奇和花哨。

软件研发的反模式例子

在我的职业生涯中,我看到了项目如何因为使用错误的工具而失败。

真实的例子——一个非常简单的CRUD应用程序,但却用Event Sourcing和CQRS实现。为什么这样做?因为它很 "酷"。

需求需要这样的实现吗?不,客户只是想要几个相关数据的表。当客户要求对系统进行改进和扩展时,开发团队决定使用新的方法从头开始,只是因为当前的架构对于所需的扩展来说不划算。

另一个很好的例子。在Silverlight(有人记得Silverlight吗?)出来的时候,我认识的一家公司的技术负责人,决定在他们新的ERP系统UI中采用该技术。这是一个非常冒险的决定。该技术是新的,而且还没有在实际市场上进行深入的测试。当时没有人知道Silverlight会在几年后被丢弃。而当时它很 "酷"...

历史上有很多这样的的例子。问题是——我们从他们身上学到了什么?

在软件研发中,所有的事情都是关于权衡。你可以用速度换取可用性,也可以用复杂性换取灵活性,等等。当权衡的不是质量属性,而是你的个人喜好和欲望时,问题就出现了。

任何时候,当你选择方案时,你应该问自己 "我得到了什么?我失去了什么?"。如果我选择了新的花哨的JS库,它是否会在下一个5年上市?如果我必须处理大量的文本数据,Java和Python哪个更好?当然,答案可能不同,这很正常。

如果你想变得很酷,请使用适合的工具,并在预算范围内按时完成项目。没有什么比这更酷了:blush:。

译后感

可惜说得有些浅。但是点到了一些点上:软件研发中,所有的事情都是关于权衡。

6riqa2V.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK