代码风格,是一件头疼的事情

2017-07-23 14:17:05 +08:00
 changnet

代码风格,不能没有。但是又没有对错,混用各种风格,非常头疼。

在游戏公司上班,现在用的框架常用是 C++作底层,Lua 作上层脚本。但是这个框架非常古老,我估计 10 年以上了。期间经历无数项目,无数人来来去去。代码风格混乱。

公司并没有严格的代码审核。每次新项目时,上头都是:这个功能之前的项目已经有了,就不用重新做了。重构这种东西,不存在的,时间才是最重要的。 然后实际做的时候又发现和现在的设定有点不一样,就继续在原文件上改。

加上个人的原因,我喜欢在函数的括号前后加一空格,但是另人都不加。 我是

void Player:SendPosition( int x,int y ); 

别人是

void Player:SendPosition(int x,int y); 

而且最近业余看点 egret 的东西,主要是 js,这就更令人崩溃了。js 的大括号是不换行的,而我之前写的 C++都是换的。已经写了 4 年代码了,而且自己业余写的一些东西,风格已经固定,不想再换了。但是不换,在各种语言中混着写感觉就像精神分裂一样。

9831 次点击
所在节点    程序员
72 条回复
ansheng
2017-07-23 14:32:55 +08:00
每种编程语言都有自己的规范,官方承认的规范,跟着那个写就好了,不过经常来回切换语言确实有些蛋疼
iEverX
2017-07-23 14:33:37 +08:00
风格没有对错,重在统一。所以参与项目,就按照项目的风格来,即使一个项目里面的 java 是下划线的,那也应该是下划线的
mornlight
2017-07-23 15:08:31 +08:00
仅针对你说的在函数的括号前后加一空格这一点我倒是觉得有点新奇,通常是逗号后面有空格,没见过括号后面有的。
sunriseyuen
2017-07-23 15:11:37 +08:00
不是用工具格式化就好了吗
Technetiumer
2017-07-23 15:14:27 +08:00
我习惯逗号后面有空格

void Player:SendPosition(int x, int y);
feiyuanqiu
2017-07-23 15:21:03 +08:00
统一用 google 的 c++ 风格就挺好,再用 clang-format 一键格式化。写的时候随便写,提交的时间全格式化了
fytriht
2017-07-23 15:56:54 +08:00
用代码格式化工具,自己想怎么缩进都行
server
2017-07-23 15:59:39 +08:00
说明你还年轻
Betacoefficient
2017-07-23 16:03:21 +08:00
楼主你没有疯真是一个奇迹。
k9982874
2017-07-23 16:27:30 +08:00
之前我也为这事头疼,做了规范不执行,问为啥不按规范写?对面吊吊的来一句我觉得我的代码风格更好。特别是培训班出来的小屁孩。

现在简单多了 c/c++就直接摔他一脸 google 规范
python 就摔 pep8
php 就摔 psr4
jls 摔 jls

外加格式化工具,有意见和标准委员会说去。

最后加一句 你是 xx 程序员连代码规范都不知道,呵呵。
boyhailong
2017-07-23 16:33:21 +08:00
建议小组讨论大家一起遵守即可
RLib
2017-07-23 16:41:23 +08:00
表示不喜欢在括号前后加一空格, 尖括号除外
pagxir
2017-07-23 16:59:24 +08:00
@RLib 表示同意。
misaka20038numbe
2017-07-23 17:48:13 +08:00
习惯了代码能不空格就不空格,大括号必须和函数在同一行。
kmahyyg
2017-07-23 17:53:32 +08:00
@feiyuanqiu 用 python 的有啥 format 工具?
LZRng
2017-07-23 18:07:30 +08:00
有点犯强迫症了吧,你自己的个人项目可以用你自己的代码风格,如果是团队的话,找他们协商一下统一风格适应一下。另外,我并不赞同你的代码风格……看起来是清晰一些(是不是可以用编辑器写 CSS 实现排版效果?),但多两个不必要的字符反而降低效率。
cxbig
2017-07-23 18:09:25 +08:00
我司用 JetBrains 家的 IDE,代码风格一开始就确定了,配置文件发给大家,提交代码之前一键格式化就可以。
这种小事处理不好,公司的管理还是有问题的。
catror
2017-07-23 18:18:43 +08:00
不用格式化工具的话,代码风格模块级统一就行,每个人都有自己的风格,而模块一般也就两三个人写和维护。
另外,去改别人的代码一定要按照别人的风格来,这个都做不到我觉得不是一个合格的程序员。所以我也很讨厌别人把我的代码改得一团糟。
zhujinliang
2017-07-23 18:43:34 +08:00
vscode 挂上 lint,我最近在适应这个组合,感觉还不错的
leekafai
2017-07-23 18:50:16 +08:00
除了 python 那种有规定格式的语法语言,感觉别的语言一般都还是会依照 c 艹的格式吧。
不敢说绝对,自己的感觉,毕竟大部分都是看谭浩强老师的书入的门。

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

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

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

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

© 2021 V2EX