为什么要重构代码?
发展缓慢?
省钱
成为一名工匠
案例研究 #1
案例研究 #2
如何保持代码健康
保持联系
导航你的软件开发职业通讯
重构只是一个花哨的术语,意思是在不改变代码行为的情况下改进代码。
让我们来看看为什么您应该了解何时以及如何有效重构的一些原因。
注意:这是我的书《重构 TypeScript:保持代码健康》的摘录。
发展缓慢?
您是否曾经在软件系统中工作过,当时您的业务要求您构建一个新功能 - 但是一旦您开始深入研究现有代码,您就会发现它并不那么容易实现?
很多时候,这是因为我们现有的代码不够灵活,无法处理企业想要在应用程序中包含的新行为。
为什么?
嗯,有时我们会走捷径并破解一些东西。
也许我们不具备编写健康代码的知识和技能?
其他时候,需要以引入这些捷径为代价来满足时间表。
这就是重构如此重要的原因:
重构可以帮助您当前受限制的代码再次变得灵活且能够/易于扩展。
就像花园一样,有时候你只需要除掉杂草!
我曾经参与过一个软件项目,当时的系统设置不允许我在屏幕上添加复选框!添加一个按钮也花了好几天才搞清楚!而且这还是我作为一名资深开发人员多年经验的成果。可惜的是,有些系统本身就非常复杂,而且都是乱七八糟的。
当我们没有保持代码健康时就会发生这种情况!
省钱
现实情况是,你需要按时完成任务,并向客户交付功能齐全的产品。这可能意味着,根据具体情况,你有时不得不走捷径。毕竟,为客户创造价值才是公司盈利的关键。
然而,从长远来看,这些“快速修复”或捷径会导致代码变得僵化、难以理解、更容易包含错误等。
提高并保持较高的代码质量可以带来以下好处:
- 更少的错误
- 能够更快地添加新功能
- 能够隔离现有代码的更改
- 更容易推理的代码
所有这些好处使得开发人员可以减少花在调试、修复问题、尝试理解代码如何工作等方面的时间。
例如,它可以为您的公司节省真正的金钱!
附言:海豹突击队明白了
许多人注意到,海豹突击队有一句名言也适用于软件开发:
慢即是顺,顺即是快。
提前投入时间构建高质量的代码将有助于贵公司长期快速发展。即便如此,我们也无法预测未来所有代码的变更,因此仍然需要不时地进行重构。
成为一名工匠
软件开发是我们社会的一个重要组成部分。
开发人员构建控制以下功能的代码:
- 车辆
- 电网
- 政府机密
- 家庭安全
- 武器
- 银行账户
- ETC。
我相信您可以想到更多开发人员创建的软件与个人或群体的安全和福祉息息相关的案例。
您是否希望医生在没有仔细确认您的病情的情况下随意给您开药?
您是否希望有一位汽车修理工花时间确保您的车辆轮胎在您驾驶时不会脱落?
成为一名工匠只是另一种说法,表明我们应该专业并且关心我们的工艺。
我们应该重视能够按预期运行的高质量软件!
我以前也遇到过这种情况:我的车轴换了,结果开走的时候,新的车轴就从车上掉了下来!这种技工值得我信赖吗?不!
同样,我们开发的软件的质量可以以现实的方式直接影响人们的生活。
案例研究 #1
您可能熟悉 2018 年发生的一起事故,一架波音 737 飞机坠毁,机上所有人员全部遇难。
研究发现,波音公司将其软件开发外包给了没有该特定行业经验的开发人员:
这家标志性的美国飞机制造商及其分包商越来越依赖每小时仅 9 美元的临时工来开发和测试软件,而这些临时工通常来自缺乏深厚航空航天背景的国家。
此外,这些开发人员还必须一遍又一遍地重写不正确的代码:
HCL的程序员通常按照波音公司制定的规范进行设计。然而,“这引起了争议,因为效率远低于波音工程师直接编写代码,”拉宾说道。他回忆道,经常“因为代码编写不正确,需要反复修改很多轮”。
波音公司的一位前软件工程师曾表示:
令我震惊的是,在一个挤满了几百名工程师(其中大部分是高级工程师)的房间里,我们被告知不需要我们。
虽然我对来自特定国家的软件开发人员没有意见,但当一群开发人员缺乏在这些关键系统中构建高质量软件的知识或工具时,我确实感到担忧。
对于波音公司整体而言,这种整体质量和工艺的缺乏导致了什么?
崩盘几天后,该公司股价大幅下跌。
哦,别忘了——有人死了。没人能挽回或弥补这一切。
总而言之,波音公司并没有从削减成本中获益,他们试图加快软件开发,注重速度而不是质量。
作为软件开发专业人士,我们应该努力做好自己的本分,重视成为专注于创造高质量软件的软件工匠。
案例研究 #2
你是否还认为,因为飞机可能造成人员伤亡,所以开发出来的软件就一定质量上乘?不。
这是航空领域软件质量问题的另一个例子:价值 3 亿美元的空客软件漏洞通过“每 149 小时关闭并重新打开”的方式得到解决。
听起来有点像内存泄漏?你知道的,一个 Web 应用程序打开一段时间后就会变得缓慢、卡顿。只需刷新页面,瞧!一切又恢复正常了!
可悲的是,我们也在制造这样的飞机……
引用文章:
欧洲航空安全局表示,尚未对某些型号的空客 A350 进行近期软件更新的航空公司被告知,他们必须每 149 小时对飞机进行一次彻底的电源循环,否则将面临“部分或全部丧失某些航空电子系统或功能”的风险。
你想乘坐那些飞机吗?
质量很重要。但事实上,很多开发人员编写的软件质量并不高。
如何保持代码健康
这篇文章摘自《重构 TypeScript》,它旨在成为一种平易近人且实用的工具,帮助开发人员更好地构建高质量的软件。
保持联系
不要忘记通过以下方式与我联系:
导航你的软件开发职业通讯
一封电子邮件简报,助您提升软件开发职业水平!您是否想过:
✔ 软件开发人员通常经历哪些阶段?
✔ 我如何知道自己处于哪个阶段?如何进入下一个阶段?
✔ 什么是技术领导者?如何成为技术领导者?
✔ 有人愿意陪伴我并解答我的疑问吗?
听起来很有趣?加入社区吧!
文章来源:https://dev.to/jamesmh/why-should-you-refactor-your-code-53fd