发现很多人写代码没有很好的 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 条回复
sennes
2014-11-02 00:16:05 +08:00
带师弟妹做FPGA项目的时候也觉得不管写多简单的模块、写多短的代码都要考虑一下`可能会看到你代码的人的感受`要让别人容易理解并且能利用、修改你的代码(不管是代码本身写得易懂、还是通过注释、还是通过文档)
我个人觉得一份好的代码是给别人可以重复利用。如果你写得太混乱,虽然在你用的这个项目是run起来了,但是别人想稍微修改一下都无从下手那就不是好的代码。
yangzh
2014-11-02 03:36:30 +08:00
楼主高冷
guoqiao
2014-11-02 05:31:36 +08:00
说说个人的习惯:
1. 如果看到一打开都是长篇大论啰哩啰嗦的注释的源代码, 即使注释很工整, 我也会感到很烦躁. 能不能直接上干货? 尤其是很多时候, 注释只是为了凑数.
2. 阅读代码时, 我一般会跳过注释直接看代码, 因为注释经常会骗人(例如代码修改后注释没有同步修改), 而代码不会. 只有代码不够直观的时候, 我才会参考下注释, 但也只是参考而已.
3. 好的代码本身是最好的注释. 与其把时间精力花在写注释以及注释的排版上, 不如花点心思优化代码.
4. 这个问题其实跟你使用的语言有很大关系. 如果你是C/C++程序员, 由于指针内存模板等诸多语法问题会干扰你理解代码逻辑, 所以需要的注释多一些. 而对于 Python 等直观的追求简单的语言, 大部分时候代码就像自然语言一样, 可以自解释了, 无需多言.
raincious
2014-11-02 06:53:15 +08:00
再忙代码注释也是要写的,一方面帮助自己整理里思路,一方面防止自己也忘了。

我找来自己写的两份代码,一个有注释,一个没有,自己感受下就明白了,看完之后说说你想维护哪一个:
https://github.com/raincious/facula/blob/master/src/Facula/Framework.php
https://github.com/raincious/facula/blob/d5f29e9b00690d4221e6a32298e5c2efd52faa9a/facula.php
(是的,这是一个框架下的同一个单元。当然,版本不一样。)

测试也是要写的,否则重构要跳楼了。

@guoqiao

这是很明显坑踩得不够多啊。2、3两条根本是人为原因。
pepsin
2014-11-02 07:48:13 +08:00
好的代码自己会说话,另外我觉得好坏程序员的标志是 Commit 的平均加减代码差值有多接近,净增的那种基本就是代码坨大师,危害巨大。
vietor
2014-11-02 07:55:19 +08:00
注释是邪恶的,要尽量少;命名才是王道。拆分成单引用的小方法是无耻的,紧凑更合适
lightening
2014-11-02 07:58:21 +08:00
请问 Sphinx 是啥?

我们公司 guide 要求尽量不写注释。我们认为注释是一种偷懒的办法,因为代码易读程度不够,所以只好靠注释来弥补。( 我们用 Ruby。C 和 Java 等语言本身语法上、性能要求上不容易做到简洁明快,写注释完全没有问题。 )
lightening
2014-11-02 08:05:48 +08:00
举个例子,我们认为以下代码:

if some_condition?
do_something
end

def some_condition?
...
...
end

def do_something
...
...
end

比以下要更易读:

# some condition is true
if ......
# do this and that
...
...
end

当然 some_condition 和 do_something 的名字要仔细斟酌,以至于读者一看就知道啥意思。
这是当代语法简洁的语言(Python、Ruby 为代表)中比较普遍的思想。
guoqiao
2014-11-02 09:27:35 +08:00
@raincious
1. 就是因为踩过很多坑, 才知道注释不可信.
2. 确实是人为, 因为写代码的始终是人.
reeco
2014-11-02 09:32:24 +08:00
有的代码确实是写了详细注释也看不懂的
est
2014-11-02 09:57:55 +08:00
从前有个工程师有 很好的 design ,有 document 有 test, 有 test coverage , 有 sphinx,最后他完成项目之后被开除了。公司花2000工资请了个中专生代替了他。
wudikua
2014-11-02 10:06:57 +08:00
矫情
yjsslab
2014-11-02 10:18:27 +08:00
注释 比 代码 难写!哈哈。

另外,你们觉得 码码水平是不是真的也和写作/表达能力密切有关呢?

经常表达能力差的人都是使用 a, b, c, xyz 做变量名的。。。有没有
yjsslab
2014-11-02 10:20:26 +08:00
@est 不明白。。。求解释
yjsslab
2014-11-02 10:22:50 +08:00
做程序员又不需要认证/备案,门槛太低,每个人都可以说他是程序员,没有质量保证是肯定的啦!
nooper
2014-11-02 10:28:43 +08:00
@wudikua 无不会雇佣太垃圾的码农。
chocotan
2014-11-02 10:29:23 +08:00
公司赶项目+10086......
唉.....自己默默的努力....
nooper
2014-11-02 10:29:33 +08:00
@est 说明一开始就进去了一个非常垃圾的公司。
chisj
2014-11-02 11:21:15 +08:00
看过一个老毛子的代码,更坑!
hitsmaxft
2014-11-02 13:50:27 +08:00
如果一个团队重视技术, 那么代码质量就会越来越好.

一切代码质量问题, 说明这个团队的技术氛围不佳.

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

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

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

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

© 2021 V2EX