《重构》原来我一直都错误理解了重构的含义

220 天前
 fyxtc
最近在看 conventional commits ,里面说到了
refactor: 用于重构代码,例如修改代码结构、变量名、函数名等但不修改功能逻辑;

我才发现修改方法内部逻辑是不算重构的,比如一个 a 方法,修改了里面的行为逻辑、数据结构、算法这些都不能算重构。之前我修改内部逻辑提交日志都是写“重构了 a 方法或者 a 模块”,还有 v 友们最典型的“又重构了一坨屎山”,很多情况下应该都是错误的说法,只不过好像大家都习惯了。

挺纠结是按照老习惯还是约定规范了= =
990 次点击
所在节点    程序员
8 条回复
BeiChuanAlex
220 天前
feat: 新功能( feature )、新特性
fix: 修复 bug
docs: 文档( documentation ),仅修改了文档,比如 README,LICENSE, CHANGELOG, CONTRIBUTE 等
style: 格式(不影响代码运行的变动,注意不是 css 修改)仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
refactor:代码重构(即不是新增功能,也不是修改 bug 的代码变动)
perf: 优化相关,比如提升性能、体验(在不影响代码内部行为的前提下,对程序性能进行优化)
test: 测试用例的新增、修改,包括单元测试、集成测试等
revert: 回滚到上一个版本
build: 影响项目构建或依赖项修改
ci: 持续集成相关文件修改(构建过程或辅助工具的变动,改变构建流程)
release: 发布新版本
workflow: 工作流相关文件修改
chore: 其他修改(不在上述类型中的修改)例如:增加依赖库、工具等
kneo
220 天前
改逻辑,改算法,只要最终代码行为和之前一样,就算重构。

重构屎山,如果产品行为基本不变,当然也算重构。哪怕内部某些函数的行为大改。只要在更高层次来看,产品行为一致就可以。

函数改名这种反而是最低级重构。属于术之末端。说不好听点,如果这就是你学习的结果我觉得你还不如不学。
k9982874
220 天前
别那么矫情,如果你是产品经理当我没说
weijancc
220 天前
你自己都说重构的定义包含修改代码结构, 下面又说数据结构不算, 我建议你先学学语文.
flyqie
220 天前
都是重构,只是层级不一样,别纠结。

内部逻辑也算重构,但是对调用方无感。
duron600
220 天前
所以说整天把“重构”挂嘴上的,100 个里面估计就 1 个会重构。
duron600
220 天前
你看你看,他们又开始定义“重构”了。
duron600
220 天前
而且我猜测这些人读《重构》最多也就是看了前五章,后面最重要的章节一章没看。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX