最近刚到一家公司,公司用的微擎+人人商城来做项目,本人头回接触这两个项目,看了 2 天代码,差点没吐了,这两系统开发者是如何做到整套系统没有一个注释的,而且还 n 多字母变量,没有分层概念,完全就是堆砌代码,看来我真是才疏学浅,完全理解不了这种代码。
1
zjsxwc 2019-02-16 21:13:09 +08:00 via Android
人肉混淆后的代码?
|
2
qq292382270 2019-02-16 21:14:14 +08:00 8
开发完成后批量删除注释即可...
|
3
namesc 2019-02-16 21:23:24 +08:00 11
小公司吧,没有代码审计,被前任开发挖坑了。
这是一种防失业手段,把自己的代码混淆,确保了这个系统没了自己不行,也确保了继任不能复用,继任来了必须重新开发,无形中增加了就业。(记得是这么说的,以前看过一群人讨论过这个话题 |
4
namesc 2019-02-16 21:25:55 +08:00 8
你别说,有那么一瞬间我觉得他们说得挺有道理的,现在很多小公司都是过河拆桥,等你开发完了让你带一个实习生,实习生一上手就开始挤兑你逼走你,老板这么有手段自己没点手段不行。
|
5
mamahaha 2019-02-16 21:26:04 +08:00
故意的,留着注释等工资低的看明白了自己就下岗了,批处理一键删除注释。
|
6
mgso 2019-02-16 21:27:03 +08:00 via iPhone
我曾经在注释里把公司吐槽了一番
|
7
mgso 2019-02-16 21:29:55 +08:00 via iPhone
不过我是深恶痛绝代码不打注释的人,即便我各种吐槽公司,即将甩盘,但注释还是打得很详细,有的详细到每一行为什么这么写
|
8
MinQ 2019-02-16 21:43:00 +08:00 via Android 3
@namesc 我觉得防失业的最高境界是代码中用了某些公式 /算法,就算注释放在那一般人要理解也要花比较长的时间。带实习生的时候先扔给他三五篇硕士论文,看完了我们再谈后面的东西。
|
9
houlin 2019-02-16 22:06:14 +08:00 via Android
微擎开源搭建加人人商城??你们公司技术参与开发了吗?
|
10
houlin 2019-02-16 22:07:14 +08:00 via Android
微擎因为二开的多,盗版的也多,微擎自己不做注释是为了防止破解
|
11
Muninn 2019-02-16 22:15:09 +08:00
混淆过吧
|
12
ywisax 2019-02-16 22:24:24 +08:00
这两个搭配养活了一大堆垃圾外包公司。。。别想着理解代码了,随便 copy+paste 能做完业务就行了
|
14
wispx 2019-02-16 22:27:44 +08:00
微擎有文档的,算好的了,要是接手个没注释、没文档、代码还乱的那种项目,那酸爽
|
17
houlin 2019-02-16 22:30:40 +08:00 via Android
有相关二开文档
|
18
namesc 2019-02-16 22:32:59 +08:00
才发现楼主说的项目代码是第三方商业源码啊,那就不是防失业了,是防破解。
|
19
hilbertz 2019-02-16 22:42:12 +08:00
写了注释也没用,很多人头天写的,第二天就看不懂了
|
20
humansjl 2019-02-16 23:02:13 +08:00
大概率人走茶凉前任对公司没有留念了。
零概率真的没有注释。 |
21
uqf0663 2019-02-16 23:05:25 +08:00
你们买的是正版的还是直接网上下的盗版? 因为原版都是加密,网上那些盗版都是解密后的,自然没注释跟部分变量名看起来混乱了(因为加密过程中被压缩掉注释跟混淆变量名)
|
22
niuoh 2019-02-16 23:05:37 +08:00
不写注释有啥难的 如喝水般自然 写注释对我来说才是反人类的
|
24
joe1213 2019-02-16 23:45:17 +08:00 via Android 1
|
25
namesc 2019-02-17 00:29:57 +08:00
@joe1213 得多闲才这样干啊,只是清除注释和混淆已经很难阅读了,不用这么折腾。
不过这个套路在接口防御策略里倒是有人使用,识别出稳定的采集时,不返回错误,而是在返回内容里随机把一些真实数据替换为虚假数据,提高采集人的识别成本。 |
26
mostkia 2019-02-17 01:40:03 +08:00 via Android
不写注释才爽好吗…只是后期看代码就蛋疼了,你让任何程序员不写注释都能做到的,后期维护就不知道了,至于你说的情况,我觉得可能是留了两份吧,开发用开发版的有注释,上线了就删除所有注释,提高阅读成本。一般搞前端的比较普遍。
|
27
shm7 2019-02-17 01:48:40 +08:00 via iPhone
首先说一下,一般项目做得好的,注释少很正常;程序写清楚了,就不要注释了。这几十年前就被写进书里面了吧。怎么每次都有人吗不写注释说事情。
|
30
Raynard 2019-02-17 02:43:01 +08:00
还见过变量名随机生成,只有他自己有对照表的。
|
31
luozic 2019-02-17 02:49:32 +08:00 via iPhone
oxygen Idea code2UML,C#和 Java 代码注释写的烂的不如不写,但看代码的辅助工具都不用,你不是蛋疼么。
并且如果是走微服务+了全链路监控的,代码垃圾也只能一小块,交互 API 还垃圾的话,看来公司里面天天干仗。 |
32
aleviosa 2019-02-17 03:04:35 +08:00
先问是不是系列……这样写代码还可以叫大牛的吗
|
33
likai 2019-02-17 06:30:37 +08:00 via Android
很大可能是你们用的解密后的盗版源码
|
35
wspsxing 2019-02-17 07:44:27 +08:00 via Android
代码即注释啊,注释跟不上也是坑
|
36
xiaotuzi 2019-02-17 07:44:45 +08:00 via iPhone
只要没有加密就可以二开,我有一套万能二开的方法,只要是新功能新需求,要记录什么的,新建一个表,相关表用副键关联,如 pid,之后就找到关键的地方修改,一半跟着 url 走就能找齐所有方法,只需要到需求关键处修改,无需每个方法做修改。
|
37
loading 2019-02-17 07:55:19 +08:00 via Android
大牛和你:
这几行这么简单,看不懂的都是垃圾也是不会改的,不加了。 |
38
quinoa42 2019-02-17 09:52:18 +08:00 via Android
说到这个,为啥大多数开源项目代码都没有注释?有时候想提个 pr 得把相关代码从头到尾看一遍,效率太慢了
|
39
ymj123 2019-02-17 09:56:48 +08:00 via Android
不写注释还不简单。只是有的业务复杂了,后面看不太方便。
|
40
mcfog 2019-02-17 10:41:44 +08:00 via Android 2
程序员最讨厌的 2 件事
1、接手的代码没有注释 2、写注释 |
41
find456789 2019-02-17 10:46:23 +08:00
我想起之前在知乎看到一个匿名折叠的评论,大概是说, 某 a 公司旗下,开源的某热门项目,但是故意删光了注释, 目的是为了让其他人难以消化代码
|
42
babedoll 2019-02-17 10:49:19 +08:00
。。。你们没版本控制吗,我们用的 tfs,就算你后面吧注释删了,代码的历史记录也有注释啊。。
|
44
taaaang 2019-02-17 11:48:18 +08:00
其实源码没有注释一方面可能是人家有这方面的考量。
另外,我们公司编码 review 也不要求注释,甚至鼓励不写注释。但是,必须清晰,简洁,易读。程序即注释。 |
45
Lision 2019-02-17 12:19:44 +08:00
字母变量... 这莫非是用刷题的写法写业务?
|
46
Moker 2019-02-17 13:27:21 +08:00
以前公司也是要求不能写注释 但是有自己的一套规范 命名规则 强制写文档
|
47
qoras 2019-02-17 13:28:45 +08:00
因为注释写了也不受重视, 干脆不写或删掉, 还能保饭碗, 毕竟国内卸磨杀驴的事太多
|
48
hxt 2019-02-17 13:42:10 +08:00
微擎和人人商城都是商业项目,给你公司时的源码应该已经是混淆加密过了,后面进行二次开发要多乱有多乱。
|
49
littleMaple 2019-02-17 14:00:33 +08:00 via iPhone 2
可以看看《代码整洁之道》书中讲“注释”那一章,业界大牛的想法还是很值得参考的。
摘录一小段: (仅搬运,不代表个人立场) > 注释并不像辛德勒的名单,它们并不“纯然的好”。实际上,注释最多也就是一种必须的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释——也许根本不需要。 > 注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。注意,我用了“失败”一词。我是说真的。注释总是一种失败。我们总无法找到不用注释就能表达自我的方法,所以总要有注释,这并不值得庆贺....... |
50
everwanna 2019-02-17 15:26:46 +08:00 via Android 3
大多数代码是不应该写注释的,因为维护注释比维护代码还困难,有点长期项目经验的人都知道这一点。程序员应该努力让代码说话,let codetalk. 努力用每个变量名,函数名表达真正的意图,如果是一个不明显的计算就把它封装成一个函数,用函数名表达意义。
也如楼上所说,代码也有表达失败的时候,比如一个精细的算法,或者有一些难度的设计,往往写一点注释或者写下设计稿的 URL |
51
eslizn 2019-02-17 16:39:57 +08:00 1
写的好的代码本身就是一种注释
|
53
mpanda 2019-02-17 17:03:50 +08:00
目前也在被这两个系统这么中,没有 orm 话说写起来太麻烦了
|
54
axzy 2019-02-17 17:26:41 +08:00
写好了,把注释批量删除不就行了。。。
|
55
Mtianmin 2019-02-17 18:19:26 +08:00
不写注释的还在职甚至还升职了,写注释的已经离职了
|
56
sison1234 2019-02-18 09:30:56 +08:00
微擎就是坑,人人度可以码的
|
57
lychnis 2019-02-18 09:48:00 +08:00 via Android 1
代码本身质量好的话不需要注释吧。。
|
58
ivanshaoaz 2019-02-18 10:54:46 +08:00
曾经做过一年多的微擎+人人商城的二开
惨不忍睹 |
59
a54552239 2019-02-18 12:08:39 +08:00
微擎本身感觉还好吧。仔细研究下还是看一看的。不过插件应用的质量就参差不齐了。
|
60
luosuosile 2019-02-18 13:41:33 +08:00
楼主不是说了,连字母变量都很多嘛,感觉就没打算给人看,跟代码整洁之道关系不大
|
61
Eugene1024 2019-02-18 14:04:26 +08:00
小公司老板都不关心这些的,老板只关心你这个东西效果,而且给的钱也不多,所以具体干成什么样子,完全就看开发人员自己了
|
62
itgoyo 2019-02-18 14:46:47 +08:00
我当初进入公司的时候觉得别人的代码写的乱,这个乱跳,然后用框架重构了一个遍,代码简洁多了,因为使用了开源框架,但是我自己工作了几年,到现在我的代码水平还没有那些几年前写的人牛逼,我打心底佩服老一辈的程序员。
|
63
mapoor 2019-02-18 15:20:51 +08:00
注释比代码还多的,注释里写一堆废话,还以为自己很幽默。 “不要写废代码,更不要写废注释” 大家要互相尊重,对吧。
|
64
NaiveSimpleYoung 2019-02-18 15:35:27 +08:00
还有一种情况,开发者语文很差,写一堆注释没明白啥意思。
|
65
topmati 2019-03-13 17:17:25 +08:00 via iPad
天啊,我第一次听说大牛不写注释的,你去看看哪些牛的程序员写的代码,哪个是没注释的?可读性,可读性,可读性,你的代码不用维护的么?当然没水平的注释值得鄙视
|