强制程序员使用统一的代码格式,好吗?
Java程序员Stijn Geukens与其他10位程序员一起为企业开发产品,但是他们11个人每个人都有自己喜好的编程平台,语言编写起来也是千奇百怪。不过,这种情况很快就会发生变化,因为企业即将强制要求所有的程序员使用统一代码格式,统一使用Eclipse Java平台。于是Stijn Geukens便在Stackexchange上 提问,“这样的强制要求是否值得?”目前已经有不少人回答了他的问题,让我们来看看精彩的回复。
统一代码标准更专业
ZeroOne回答:
我现在工作的地方使用的就是标准化的代码格式,当在编程软件中保存的时候,格式也将自动生成。刚加入这个公司的时候,我看到他们都在用统一的代码标准来编写程序,给我的第一感觉就是“这群人知道他们在干什么”,让我感到十分开心。
我想解释一下为什么在一个项目中要强制使用同一个代码标准,原因有二:
第一,与版本控制有关。如果开发团队中的所有人都能使用统一的代码标准,文件中所有的改动都将生效,所以没有人会在这里加个空格,那里栅格空格,也不会有人对代码进行随意的改动导致整个软件崩溃。
第二,让程序员静下心来编程,避免盲目自大。也就是说,所有人都在用统一的代码标准,所有人写的句子都是一样的,就算有人写的语句非常牛X,但也会被淹没在统一标准中,让程序员不那么骄傲,而且这样编写出来的代码才是团队的共同财产,其他程序员在改动别人的代码时也不必顾忌其他人的情面。
除此之外,还有一个原因:程序员不必再担心代码标准的问题,就像使用LaTeX来写文档一样,所有人在发布之前写的格式都是一样的,只有完工之后才进行格式的修改。我曾经在其他公司工作过,他们的程序员都用自己的编程平台,代码标准不一,在讨论编程的时候时常遇到“要不要用自己的格式来修改别人的代码”、“是不是要模仿其他人的代码格式”等问题。
统一代码标准遇到的最受争议的问题就是“程序员会对文件进行各种不必要的修改,打乱文件修改历史”,这种情况一般发生在项目进行后才统一代码标准的时候,所以要在项目开始前就打好“预防针”。
员工在自己喜欢的环境下更高效
有人则不赞同统一代码标准,认为这样会破坏团队和谐。
Rajah9回答:
我曾经去过一个团队,他们在编程的时候使用一个叫Checkstyle的插件,要求员工在测试项目前必须跑一边这个代码格式检查插件。遇到问题时,我们第一个问题就是“你用Checkstyle检查格式了吗?”
Checkstyle可以解决代码格式不统一的问题,何必再要求使用统一的代码标准?一个团队就应该面对的批评与改正,这样才能共同进步。所以,与其被迫使用相同的代码格式和相似的界面,我更喜欢使用自动化工具来完成项目。