Day 27 重构是否要排进待办清单里

重构是否要排进待办清单里

Imgur

说到重构,我想只要是软件工程师应该都做过这件事情,只是小时候我们用的术语叫做「我再把我的程序码整理一下」。长大以後我们学了一点知识,所以知道这个专有术语叫做「重构」。

在对重构这个名词有基本了解以後,我们来谈谈重构是否要排进待办清单里。情况大概是有位朋友问我,你们都什麽时候作重构阿,如果 PO/PM 不排 Item 你们要怎麽做阿?

重构的定义

我个人觉得这是很有趣的问题。我们先来看看重构的定义

不改变软件外在行为的前提之下改善程序码内部结构

PO/PM 关心的是 End to End 的行为

PO/PM 所开的 Item 通常我们希望是 End to End。简单的来说就是使用者做了动作,然後系统有反应,假设使用者按了按钮然後我们的系统会显示 Hello。

那如果针对这个行为开一个重构的 Item 他会是怎麽描述?我想应该还是「使用者按了按钮然後我们的系统会显示 Hello」,因为重构并不改变外在行为。所以 PO/PM 怎麽知道你做了没?要怎麽写验收条件?难道我们要跟 PO/PM 展示我们重构前後的程序码吗?我想这不是他关心的地方。

重构是谁该关心的

那程序码写的好或坏是谁该关心的呢?当然是身为软件工程师的我们该关心的事情。有人会说 PO/PM 并没有排时间给我们重构,所以我们没有时间重构。

我好奇的反而是, PO/PM 都坐在你的旁边看你写程序吗?然後你功能一写完他们马上就拿刀架着你说「不准重构,马上写下一个功能」不然重构应该是我们自己的责任,而不是拿别人没有给我们时间当藉口。

不重构,就等於是在挖坑给明天的我们跳,不是吗?


<<:  [Day 29] Frontend ? Backend ? 如何做选择?

>>:  Day27 JSON and serialization

[NestJS 带你飞!] DAY09 - Pipe (上)

什麽是 Pipe? Pipe 经常被用来处理使用者传入的参数,比如:验证参数的正确性、型别的转换等。...

21.移转 Aras PLM大小事-回复料号

写这篇主要是提供那些动不动会改错料号 需要回复前一版料号,首先要知道如果关联是用float时 子阶料...

[想试试看JavaScript ] 阵列一些操作阵列好用的方法 reduce

reduce() reduce 很常用在计算累加上面。 之前介绍的方法,大多都是将阵列的值一个一个放...

Day-19 PyTorch 怎麽读取资料? Dataset and DataLoader

今天来聊聊怎麽读取资料和调整资料集,你可能会问说奇怪我们前两天不是就已经可以使用资料了吗?这边有啥...

[第十九只羊] 迷雾森林舞会XIII 设定form 绑定dom 同步房间(单押)

天亮了 前晚是1号玩家死亡 关於迷雾森林故事 反指标 洛神:2号玩家请继续发言 2号:1号是猎人他带...