V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyxtc
V2EX  ›  程序员

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

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

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

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

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

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

    内部逻辑也算重构,但是对调用方无感。
    duron600
        6
    duron600  
       29 天前
    所以说整天把“重构”挂嘴上的,100 个里面估计就 1 个会重构。
    duron600
        7
    duron600  
       29 天前
    你看你看,他们又开始定义“重构”了。
    duron600
        8
    duron600  
       29 天前
    而且我猜测这些人读《重构》最多也就是看了前五章,后面最重要的章节一章没看。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   999 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 23:07 · PVG 07:07 · LAX 16:07 · JFK 19:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.