发现很多人写代码没有很好的 design ,没有 document 没有 test, 没有 test coverage , 没有 sphinx。

2014-11-01 13:33:36 +08:00
 nooper
写的项目只有自己明白,剩下的基本没人看的懂。
structure of your code should avoid reference cycles.
better variable naming.
哎呦,我实在搞不懂code quality, 不是写出来多么牛B的算法,多么牛逼的技术,而是你的东西能够被人看懂,能够让他人学习。
即便是最简单的代码,也要很整洁,高质量的代码是消除复杂的结构,和混乱的代码。
而不是写的多么复杂,不是用行数来衡量的。
看来大部分人普遍需要提高质量,同样我也需要。
木哈哈哈。
5769 次点击
所在节点    程序员
53 条回复
walleve
2014-11-02 15:08:27 +08:00
@hitsmaxft bingo
cdxem713
2014-11-02 19:02:25 +08:00
感觉楼主讲话带刺,看着好难受啊
jimiton
2014-11-02 19:06:19 +08:00
@cdxem713 同楼上,看着好蛋疼
cdxem713
2014-11-02 19:11:19 +08:00
我的理解是,代码如果整体结构很好,变量名、方法名、类名等都起得很合理的话,是不需要很多注释的。
例如这个项目的代码:
https://github.com/Leaflet/Leaflet/blob/master/src/core/Util.js
没有很多注释,但是也非常容易理解

另一个开源项目:
https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Util.js
不知道有多少人愿意看下去,其实注释量还挺大的
wudikua
2014-11-02 20:08:09 +08:00
@nooper 码农何苦为难码农,能胜任就好
RemRain
2014-11-02 21:19:34 +08:00
```
基本没有注释。哪怕是再简单的逻辑也要有注释。
```

楼主太绝对了,完全是为了追求注释而注释。写得好的代码,不一定需要注释,因为代码已经表示出了意思,注释反而是干扰。作为程序员,我更喜欢代码自注释、紧凑的代码,比如这样:
```
int max(int a, int b) {
return (a > b) ? a : b;
}
```
如果非要在前面加上注释,标识这是求两个数最大值的函数,你说这不是废话是什么?

另外,注释往往会误导人。你不知道你写的这一段代码之后会经手多少人,会被改动多少次,而且每一次都能顺带更新注释。从我接手过的项目来看,都会有那么几处的注释是带误导性的。

注释还有一个问题,就是增加维护的工作量。注释越是密集的代码,越是没人敢改。函数外的注释还好,函数内如果有密密麻麻的一段注释,那注释对应的代码基本没人敢动。
qianlifeng
2014-11-02 22:05:01 +08:00
我们公司要求尽量不写注释,逻辑复杂且必要的情况下可以写一点。前提是要命名,逻辑啊什么的要清晰易懂。
nooper
2014-11-02 22:28:32 +08:00
@RemRain that's snippets.that 's not the function, nor the implementation.
that's the code could be any part of the project. You don't get the means of the code quality. what if there is not any document, any comment in the code , if you want to use some framework , do you know how to use it? if you can , you can try to hack some code and design some web framework, data analysis framework or some middleware of any program languages ,ask anybody could learn and know how to use the your design or not? have you done any part of time to patch some bugs or some features in the open source project, try to make it. Then let me know. I worked with financial analysis system for a while. Each pieces of the code must work perfect!
ericFork
2014-11-02 23:05:24 +08:00
看了这么久,楼主,talk is cheap, show me your code
RemRain
2014-11-02 23:17:50 +08:00
@nooper 请注意,我反驳的是你```哪怕是再简单的逻辑也要有注释```这个观点。

代码不都是框架,在我眼中,一句简单的 echo "Hello, world!" 也是代码。只要做到逻辑清晰,命名恰当,看起来舒服易懂即可,注释只是点缀和补充,这一点,redis 和 nginx 的源码都做得很好,不信您可以看看,感受一下。

无论是写代码,还是人与人的交流,目的都是让别人明白自己的意思,通俗易懂大于逼格。讲两句话蹦出一个```你们还知道cmm5认证是什么嘛```,回复几次就干脆用英语装 X,很难让人看出你想正常交流。

另外,作为轻度强迫症患者,建议你在书写英文时,句首字母大写,标点紧跟字母,习惯性地在标点后面加上空格,并注意单复数的正确使用,这样也有助于您正确地书写代码。
neutrino
2014-11-03 09:08:49 +08:00
@RemRain 哈哈还要在中英夹杂的时候注意英文前后的空格
RemRain
2014-11-03 09:34:46 +08:00
@neutrino 哈哈,这个倒是只要自己遵守就好,没必要强迫别人来着。提着这个,要不我再补充一点?无论是注释还是书写,使用缩写的时候请使用全大写字母,如 cmm5,请写成 CMM5。否则给人一种不专业的感觉。
ahtsiu
2014-11-03 10:35:17 +08:00
// 此处可能有坑
trap(you);
/* Order matters */
trap(me);

/**
*will NOT throw any exception
*/
void trap(man who){}

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

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

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

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

© 2021 V2EX