你们在公司写代码有没有什么编程风格规范?一般都是怎么实施?

2019-06-20 19:13:07 +08:00
 jdhao

如题,譬如 Python 有 PEP8,谷歌的规范等。你们在公司写代码会不会遵循编程规范,还是大体上确保代码没问题就行,不是严格遵守这些规范?

如果遵守这些规范的话是怎么保证大家都遵守统一规范的,一般都采用什么办法

6177 次点击
所在节点    程序员
57 条回复
avenger
2019-06-21 09:39:27 +08:00
@moyupoi #2 git hook 不是在本地吗?自己禁止了怎么办?
l00t
2019-06-21 09:52:16 +08:00
代码风格在编程规范里是最不重要的东西,没必要花太多心思。
axbx
2019-06-21 10:02:35 +08:00
提交之前会跑一遍 sonar。
kaedea
2019-06-21 10:06:19 +08:00
.editor onfig
hexingb
2019-06-21 10:13:31 +08:00
@russian 200 行代码还差劲吗?看我这里几千行的。自从接手这个烂坑,我心里骂了多少 fuck,绝对比代码字母数多。

很多人、很多公司不考虑这个,总是拿追进度做借口。实际上,规定一套很简单的规范就能够很好的统一代码风格。比如空格 tab,比如 dos/unix 换行。
yvescheung
2019-06-21 10:13:40 +08:00
c++遵循谷歌规范,不规范编译无法通过
zhuweiyou
2019-06-21 10:22:17 +08:00
搬砖而已,只要能完成功能就行了
GoLand
2019-06-21 10:25:13 +08:00
加 pre-commit,把代码风格检查放进去。过不了就 commit 不了,ci 里也会过一下 diff,代码风格不对 ci 都过不了,别说 Merge 了。
no1xsyzy
2019-06-21 10:29:31 +08:00
@russian 算法是 cs 不是 se 啊……
做算法的不算程序员的,算科学家或者技术工,中间其实没有工程师的位置。
jdhao
2019-06-21 10:39:07 +08:00
@no1xsyzy 做算法感觉有点尴尬,和做前端后端,做 APP 不一样,一般都是在训练模型,代码质量好像没太多人 care …
no1xsyzy
2019-06-21 10:50:04 +08:00
@jdhao (其实 APP 也算前端,只是现在前端常特指网页前端)
是的,甚至理论上不需要写代码,只需要写伪代码。不过写个代码能够很明显地看到:它能跑,能出需要的结果,所以逻辑没错。
至于代码质量?算法写完的代码是需要后端重新写一遍的。算法写的代码可能是 Python, Matlab, R 甚至是 Fortran 的,但是后端的是 Java 或者 Golang。让算法维护代码?经济效益就低了,老板是不干的(如果老板能懂这点的话)。但后端可能只是看得来 Python 等,稍微写一点写不了很复杂的,那不如重新写一遍。
所以说为什么 Python 的一些地方非常垃圾但算法常用,因为其实就是当个能跑的伪代码用。
neverfelly
2019-06-21 11:09:45 +08:00
@no1xsyzy 做算法也算程序员啊...只要是 cs 的,代码就应该以规范化来写,传统 linux 科学家哪个不是写得一手好代码,就说最近火热的机器学习这一块,xgboost,lightgdm 也是按照规范在运作...纯粹训练模型算是偏数学科研工作者了
no1xsyzy
2019-06-21 11:18:29 +08:00
@neverfelly 以前的程序员还搞硬件呢,不也是逐渐分开了?随着社会发展,让职位分开是大势所趋啊。
而且 Linux 科学家是指哪些啊…… Unix 就是工程师的事了吧。
dilu
2019-06-21 11:22:46 +08:00
有,git 钩子检查,不符合规范直接扣绩效
neverfelly
2019-06-21 11:25:06 +08:00
@no1xsyzy 可能表达有点错误,linux 科学家指:是 linux 教徒科研工作者...虽然目前来说确实就训练模型来说,对代码的抽象性和理论推导要求比实际代码能力来要强一点,所以并不会要求代码写得很漂亮,但这也确实正在成为所诟病的一点,诸如脚本调参侠之类的戏称。个人感觉 cs 最重要的还是对代码如同艺术以及对数学如同神明一样古典美感结合最好
no1xsyzy
2019-06-21 12:40:29 +08:00
@neverfelly 我倾向于算法这块构造属于算法的新的美感,就好像数学的美感在程序员里就可能是丑陋的(单字母公有自由变量)。
jdhao
2019-06-21 13:01:05 +08:00
@no1xsyzy 这个就是代码之美,写的代码能够被其他人容易读懂,所以变量命令要有意义,不能像搞数学的弄一些单变量的名字,也是软件工程的要求吧,清楚的代码更加容易维护。
ayasakinagi
2019-06-21 13:12:46 +08:00
python 是 pep8, js 是 esline, 代码通过 git review 提交到 gerrit 上面, 通过 jenkins 检查格式.
loading
2019-06-21 13:25:39 +08:00
结对编程,只要另外一个能看懂,注释够,编译能过就行,←_←
intsilence
2019-06-21 13:59:52 +08:00
CI 里检查

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

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

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

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

© 2021 V2EX