陈硕有一篇 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 友可以分享一下这方面的知识。
js 我能想到两个:
函数参数过长的话换行,object,array 同理
再把尾逗号能加的都加上
python 提交之前确保下 PEP8, 省着有人 format 之后一堆空格的修改
没有很大的必要去特地研究,尤其不同语言还不一样。
缺的是个 semantical diff
如无必要,不要改变两行旧代码的相对顺序。
引入格式化工具,保证提交到仓库的风格一致。
max page column < 100
sed 's/\t/ /g'
引入 check style,定义格式化,代码规范等,git push 之前强制检查
vim 用户 gg=G
git config --global diff.algorithm histogram
短时间内应该是见不到成熟的基于语义的 diff 了
强制使用 formatter 是目前的最好方案
go fmt
no code, no change, deploy nowhere
semantic diff 让我想起了王垠的结构化程序比较 ydiff ( https://henix.github.io/feeds/yinwang/2013-04-21-ydiff-结构化的程序比较.html )
那是 syntactic diff 或者 macro-syntactic diff 的样子
当然,semantic diff 对于可魔改且有副作用的语言非常不友好,甚至可能有时因为被管理的代码以外的因素导致等价性改变。
所以想了想就放弃了