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

有哪些对 diff 友好的编码习惯

  •  
  •   RicardoY · 2021-05-11 20:35:20 +08:00 · 3367 次点击
    这是一个创建于 1270 天前的主题,其中的信息可能已经有所发展或是发生改变。

    陈硕有一篇 blog 讨论了这个问题( http://webcache.googleusercontent.com/search?q=cache:ZoIn7s7WoggJ:www.cppblog.com/Solstice/archive/2011/03/05/141164.html+&cd=1&hl=zh-CN&ct=clnk ),除此之外的资料就很难找到了,希望 v 友可以分享一下这方面的知识。

    第 1 条附言  ·  2022-04-11 00:36:30 +08:00

    update: 前段时间有了一些新想法,核心是不要违反开闭原则

    16 条回复    2021-05-12 23:32:35 +08:00
    renmu123
        1
    renmu123  
       2021-05-11 20:44:54 +08:00 via Android   ❤️ 1
    js 我能想到两个:
    函数参数过长的话换行,object,array 同理
    再把尾逗号能加的都加上
    meiyoumingzi6
        2
    meiyoumingzi6  
       2021-05-11 20:46:59 +08:00
    python 提交之前确保下 PEP8, 省着有人 format 之后一堆空格的修改
    no1xsyzy
        3
    no1xsyzy  
       2021-05-11 21:00:22 +08:00
    没有很大的必要去特地研究,尤其不同语言还不一样。
    缺的是个 semantical diff
    hugo54
        4
    hugo54  
       2021-05-11 21:22:01 +08:00   ❤️ 1
    如无必要,不要改变两行旧代码的相对顺序。
    redbuck
        5
    redbuck  
       2021-05-11 21:41:39 +08:00   ❤️ 3
    引入格式化工具,保证提交到仓库的风格一致。
    xingheng
        6
    xingheng  
       2021-05-11 23:24:19 +08:00   ❤️ 1
    max page column < 100
    xingheng
        7
    xingheng  
       2021-05-11 23:26:28 +08:00
    sed 's/\t/ /g'
    strawberryBug
        8
    strawberryBug  
       2021-05-12 00:35:05 +08:00 via Android
    引入 check style,定义格式化,代码规范等,git push 之前强制检查
    wellsc
        9
    wellsc  
       2021-05-12 00:41:42 +08:00
    vim 用户 gg=G
    wdhwg001
        10
    wdhwg001  
       2021-05-12 02:00:44 +08:00
    git config --global diff.algorithm histogram
    RicardoY
        11
    RicardoY  
    OP
       2021-05-12 02:18:46 +08:00 via iPhone
    @no1xsyzy 短时间内应该是见不到成熟的基于语义的 diff 了
    laike9m
        12
    laike9m  
       2021-05-12 02:46:56 +08:00 via Android
    强制使用 formatter 是目前的最好方案
    Weixiao0725
        13
    Weixiao0725  
       2021-05-12 03:35:55 +08:00   ❤️ 1
    go fmt
    okayan
        14
    okayan  
       2021-05-12 17:37:43 +08:00
    no code, no change, deploy nowhere
    NanonaN
        15
    NanonaN  
       2021-05-12 19:58:55 +08:00
    @no1xsyzy semantic diff 让我想起了王垠的结构化程序比较 ydiff ( https://henix.github.io/feeds/yinwang/2013-04-21-ydiff-结构化的程序比较.html
    no1xsyzy
        16
    no1xsyzy  
       2021-05-12 23:32:35 +08:00
    @NanonaN 那是 syntactic diff 或者 macro-syntactic diff 的样子
    当然,semantic diff 对于可魔改且有副作用的语言非常不友好,甚至可能有时因为被管理的代码以外的因素导致等价性改变。
    所以想了想就放弃了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2652 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.