![]() | 1 Hider5 2020-10-22 23:26:43 +08:00 赶快跑 |
![]() | 2 labulaka521 OP @Hider5 我是真不知道是大家都是这样还是只有这里是这样 |
![]() | 3 thedrwu 2020-10-22 23:32:45 +08:00 via Android 换 haskell,不用写注释 |
![]() | 4 kaiki 2020-10-22 23:34:23 +08:00 ![]() 不写注释我昨天写的代码今天都看不懂,估计他们的代码自己不会看吧 |
![]() | 5 az467 2020-10-22 23:35:58 +08:00 拒绝注释比例过少的 commit 。 |
![]() | 6 labulaka521 OP @az467 这我决定不了,只是刚进去的小兵 ,只能发发牢骚或者提点意见 |
![]() | 7 labulaka521 OP @kaiki 哎 谁知道呢 每次改个东西 就很难受 醉了 |
![]() | 8 labulaka521 OP @thedrwu 这是什么鬼 |
![]() | 9 UsherOu 2020-10-22 23:43:42 +08:00 我们 cto 不让写注释 |
![]() | 10 labulaka521 OP @UsherOu 这能给个理由吗 |
11 billlee 2020-10-22 23:54:21 +08:00 ![]() @labulaka521 #10 遇到过注释和代码不同步的,错的注释不如没注释 |
![]() | 12 labulaka521 OP @billlee 改了代码 没改注释吗 |
![]() | 13 Cuo 2020-10-23 00:22:49 +08:00 ![]() |
![]() | 14 Cuo 2020-10-23 00:23:36 +08:00 # 10 这能给个理由吗 |
![]() | 15 labulaka521 OP @Cuo 好代码的确具有可读性 ,但是不是所有代码都能是好代码 |
![]() | 16 abersheeran 2020-10-23 00:53:12 +08:00 你这个问题直接让我思绪回到一年前我还在某公司的时候……Django1.3 配上 Python2.6,业务代码就是堆,这个无可厚非,一个 URL 一个函数嘛,反正也不影响整体项目。但代码结构也是屎,统一的 JSONResponse 都没有,一个单语句的函数,非要放进一个类里去调用。注释?你想要什么注释?我提出了这个问题……被教育了一顿。我提出优化代码,我又被教育了一顿,“自然有人来做,你把业务写好就行”。 待了一个多月,掐点看学校的实习任务完成了,直接跑路。 |
![]() | 17 qiumaoyuan 2020-10-23 00:55:29 +08:00 重构代码 |
![]() | 18 qiumaoyuan 2020-10-23 00:58:50 +08:00 写详细点吧: 1. 代码需要注释说明代码不可读,为了让代码可读,就需要对代码进行重构。写注释本身属于重复行为已经用代码写了一遍,再用人类语言写一遍,一处变动需要同时做两处修改。 2. 重构代码不需要先理解原有逻辑,逻辑在重构过程中自然就能理解。 |
![]() | 19 labulaka521 OP @qiumaoyuan 代码注释说明代码不可读,这我感觉有点极端了,像一些项目比如 grpc go-micro 都有每个函数或变量都有很详尽的注释,我觉得是注释是帮助来理解代码逻辑的,而不是代码不可读了,才需要注释。 |
![]() | 20 Cuo 2020-10-23 01:38:26 +08:00 @labulaka521 #15 好代码的确具有可读性 ,但是不是所有代码都能是好代码 review 时有读不懂的地方直接指出来让对方改。如果是比较复杂的设计则请对方连带文档一起提交。 或者看看以前的工资单,年终奖忍一忍也就过去了(狗头) |
![]() | 21 boris93 2020-10-23 01:51:53 +08:00 via Android 我司,跨国美企,也这样 更不用说还能见到各种匪夷所思的脱裤子放屁写法 非英语国家的人写的注释,有可能还得琢磨一阵才能看明白 对我来说,业务清晰(至少在我自己看来清晰)的代码我不写注释 对于日后可能看不懂的,或者当时就玩命网上冲浪才憋出来的代码,我会写很多的注释,并且可能附上参考文档链接 |
![]() | 22 raaaaaar 2020-10-23 07:11:53 +08:00 via Android 找 leader ?拿个垃圾代码过去问他看不看得懂,引导他自己提出规范的重要性。 |
![]() | 23 ferock PRO 自己判断,代码是否可读 技术方案文档,另外写 代码上附上链接。 代码定期内部 code review 。 别人如果看不懂你的代码,那就应该附上注释,最好重构。 所以,团队合作写代码,规范很重要! |
24 AkideLiu 2020-10-23 07:55:44 +08:00 via iPhone 换 assembly 吧,今天不写注释明天就看不懂了 |
![]() | 25 line 2020-10-23 08:20:46 +08:00 via iPhone 大部分情况,可以用 git commit message 代替 commit 勤快点就行 |
![]() | 26 9LCRwvU14033RHJo 2020-10-23 08:22:03 +08:00 刚入职不久就别妄想去改变公司既有的习惯。好好适应一年。 |
![]() | 27 kemikemian 2020-10-23 08:22:06 +08:00 你待的时间久了自然也不写了,还没融入集体 |
28 djs 2020-10-23 08:41:56 +08:00 via iPhone 良好的命名比瞎写的注释更优秀,前提是良好的命名 |
29 nicevar 2020-10-23 08:44:05 +08:00 可以搭建 SonarQube 平台,提交 MR 的时候没有注释会自动拒绝 |
![]() | 30 jerryrib 2020-10-23 08:45:11 +08:00 |
![]() | 31 sexyback 2020-10-23 08:51:10 +08:00 我找了个实习的工作,go 开发,原本想来学一下 go,结果这几天看了代码之后发现一句注释也没有,唯一的注释就是 //TO DO 这个功能尚未开发,问了带我的导师他说写注释太麻烦,看变量命名和方法名就能推算出什么意思了,学习的时候不知道注释的重要,现在终于体会到了 |
![]() | 32 sexyback 2020-10-23 08:51:42 +08:00 @labulaka521 咱俩估计一样,我们公司的代码就没有注释 |
![]() | 33 labulaka521 OP @djs 确实是 但是我们这边存在的情况是有些被重构的函数 迁移的字段 但是为了兼容还是保留原有的 这些几乎都没有注释 有些时候的用老的函数 老的字段偶尔就会出现异常 |
![]() | 34 labulaka521 OP @sexyback 其实 go 还好 但是我们这边是 py 吗呀 函数参数一大堆 几乎没有注释 只有追到函数内部后才可以看到这个参数的类型 是干啥的 |
![]() | 35 xianxiaobo 2020-10-23 08:53:12 +08:00 ![]() 你来当老板或者领导,告诉大家注释最重要,可以开发的慢,但是一定要写注释,每天快下班前由技术领导统一检查今天的代码写注释了没。 |
![]() | 36 labulaka521 OP @xianxiaobo 想认真回复就认真回复 别这样阴阳怪气的 OK ?没看前面的吗? |
37 jorneyr 2020-10-23 08:58:40 +08:00 把自己写的代码也像 JS minify 那样搞一下,大家一起看不懂 |
![]() | 38 Leigg 2020-10-23 09:00:52 +08:00 via Android 这个没办法,以后你会经常遇到,除非老大提出来解决,否则都是看个人心情,你现在不懂哪里就问,不过最后先看完整体逻辑,再提问,自己写好注释 |
39 xiaoxinxiaobai 2020-10-23 09:02:35 +08:00 via Android 你读一遍代码给加上注释 |
![]() | 40 notejava 2020-10-23 09:03:38 +08:00 可读性强的代码就是最好的注释。如果代码本身就逻辑混乱,也别指望注释了。 |
![]() | 41 notejava 2020-10-23 09:05:28 +08:00 可读性强的代码就是最好的注释。如果代码本身就逻辑混乱,别指望他能写出好的注释。 |
![]() | 42 zsyld 2020-10-23 09:05:38 +08:00 辣鸡代码才需要注释(狗头 |
43 djs 2020-10-23 09:07:54 +08:00 via iPhone @labulaka521 悲伤 |
![]() | 44 elintwenty 2020-10-23 09:09:53 +08:00 既然制定不了规范就不要管了,比起没有注释,过时的、失效的注释是更大的灾难。如果不能保证你的、甚至因你而出现的注释鲜明有效,那么还是完全没有更好。可以尝试要不要引入一些自动化的工具来建议主管去考虑 |
![]() | 45 maddot 2020-10-23 09:11:36 +08:00 函数名称就是最好的注释 |
![]() | 46 zsdroid 2020-10-23 09:12:07 +08:00 ![]() |
![]() | 47 4771314 2020-10-23 09:12:30 +08:00 基本的注释还是要有吧,不然谁看得懂? 代码是写给人看的,不是写给计算机看的。 |
![]() | 48 labulaka521 OP @notejava 是的 但是还存在一些被重构 被迁移的字段 函数 几乎都没有注释 用了旧的函数 字段偶尔就会报错 |
49 idoggy 2020-10-23 09:14:31 +08:00 via Android ![]() 注释基本都是用来写 why 和 how 的,很少写 what 的,看事情不要二极管 |
![]() | 50 alcoholpad 2020-10-23 09:16:19 +08:00 良好的函数名, 变量名 就是最好的注释, 函数尽量短小. 如果像写文章一样认真写代码, 根本不需要注释. 毕竟代码的修改会经常忘了同步注释, 更容易让人误解. |
![]() | 51 UmiKz 2020-10-23 09:18:34 +08:00 开发规范做到见名知其意,注释少些,也影响不大 |
![]() | 52 watzds 2020-10-23 09:20:00 +08:00 via Android 这不是挺正常吗? |
![]() | 53 zjsxwc 2020-10-23 09:20:39 +08:00 除非复杂的业务逻辑我会先写注释后写代码做填空题,同时会引用产品经理具体需求描述的 issue id 方便后续跟进,还有这种复杂的业务由于不具备可复用性,我基本都是写在一个大方法里面。 大部分时候业务逻辑等价于 4 、5 个 sql 查询的就不写注释了,这种猜都能猜到是在干什么。 |
![]() | 54 darktutu 2020-10-23 09:25:40 +08:00 我遇到过注释和代码不匹配的,更痛苦,还不如没有注释呢。 |
![]() | 55 aydd2004 2020-10-23 09:30:29 +08:00 ![]() 说真的 我给自己写的东西都加一堆注释 这些人哪里来的勇气 |
![]() | 56 UsherOu 2020-10-23 09:30:55 +08:00 @labulaka521 代码即注释,见名知意 |
57 darkforest8848 2020-10-23 09:31:59 +08:00 @jerryrib 兄弟 bannner 能发下吗 |
58 zhangyangkam1 2020-10-23 09:34:50 +08:00 改变不了环境可以从自己做起 |
59 faceRollingKB 2020-10-23 09:36:36 +08:00 时间不够 |
![]() | 60 JamesR 2020-10-23 09:45:47 +08:00 外包做的,时间不够嘛。 |
61 ungrown 2020-10-23 09:47:05 +08:00 ![]() 注释其实算是个历史遗留产物 以前计算设备算力低,开发机的算力也低 自然也没有如今功能强大的 IDE 软件辅助写代码 所以那时候代码字词句能少就少尽量简洁 那么代码的含义就很难从代码本身看出来,需要注释 现如今在 IDE 的自动补全代码树监控的加持下 长名超长名蔚然成风 代码含义几乎可以完全通过合理命名来显示表达 “代码即注释” 只有很少的情况下,才不得不依靠注释进行说明,例如: 命名无法体现含义,亦或妖码怪码 bug 码不讲道理,亦或“知其然不知其所以然”的代码 |
![]() | 62 tikazyq 2020-10-23 09:49:49 +08:00 这种项目,当你花了半天时间读懂的时候,需求已经变了,淡定 |
63 jatsz 2020-10-23 09:50:16 +08:00 ![]() 代码不会说谎,注释会。 |
![]() | 67 jerryrib 2020-10-23 10:10:16 +08:00 |
![]() | 68 ligiggy 2020-10-23 10:14:49 +08:00 理清业务逻辑可以写注释,封装接口给人用要文档。但是如果每一个函数,每一个命名都要写注释,那才是最垃圾的。代码要提升的是可读性,而不是人人口中的“注释”。 |
69 jatsz 2020-10-23 10:20:37 +08:00 |
![]() | 70 matrix67 2020-10-23 10:21:59 +08:00 上 ci,没注释拒绝合入 |
![]() | 71 xianxiaobo 2020-10-23 10:24:51 +08:00 ![]() @labulaka521 我想说的是,如果你不是领导或者老板,根本没办法。写注释确实是减少了维护成本,但是增加了开发时间啊。谁来为这部分买单呢?另外,我说的确实是解决办法,不完全算是阴阳怪气。 |
72 sunznx 2020-10-23 10:24:54 +08:00 见过 curd 还加注释的 |
73 sunznx 2020-10-23 10:25:27 +08:00 见过 curd 还加注释的 // 获取一个用户 // 删除一个用户 这种注释还不如不注释 |
![]() | 74 qiumaoyuan 2020-10-23 10:32:55 +08:00 ![]() @labulaka521 注释的作用主要是说明代码为什么要这么做,而不是描述代码在做什么。 另外软件开发就是要极端。没有极端过,你根本不知道“中间”在哪里,不知道极端在哪,所谓的折衷、权衡都是在搞笑和自慰。 |
![]() | 75 fyooo 2020-10-23 10:37:46 +08:00 国内大环境根本解决不了,这类需要从上至下的推动的 |
![]() | 76 casillasyi 2020-10-23 10:52:19 +08:00 ![]() 代码写的一塌糊涂的,需要注释才能看懂的,你以为他注释写的你能看懂吗? |
![]() | 77 wysnylc 2020-10-23 10:53:24 +08:00 @qiumaoyuan #74 学数学的时候恨不得注释多的拉满,到自己写代码就觉得注释麻烦没意义笑死了 |
78 Still4 2020-10-23 10:57:15 +08:00 @darktutu 需求变了,注释没改,我们这跟没写注释是一个原因,需求压力大,很多时候上午提需求晚上上线,谁想让后来人指着自己鼻子骂呢,时间不允许没办法,优先保证东西正常,注释都是想着后面再说,一拖就没影了 |
![]() | 79 northisland 2020-10-23 11:04:26 +08:00 一行注释都没有的是垃圾;不分巨细,全注释的也是垃圾。 还是武侯祠「攻心对联」里的那一句“不审势,则宽严皆误”。 (但对于外行领导,想通过 5 分钟 code review 就深入理解我做的事情,目测领导也是垃圾。) |
![]() | 80 lk920724 2020-10-23 11:09:44 +08:00 这样想,没注释总比过期注释要好。 |
![]() | 81 sdushn 2020-10-23 11:16:39 +08:00 做 cr 啊,看不懂的,格式不对的都不让合入, |
![]() | 82 djyde 2020-10-23 11:34:48 +08:00 ![]() 注释不是用来解释这段代码在做什么,而是告诉后来的人为什么要写这段代码。 |
![]() | 83 paoqi2048 2020-10-23 11:35:24 +08:00 ![]() 楼上一堆洗的,希望你们以后的同事都不写注释哈 |
84 haha512 2020-10-23 11:46:29 +08:00 看了上面回答,应该把第一个设计代码要加注释的人拉出来痛打一顿。 v2 任何一个问题下面, 总少不了一堆的“逼王之王”,为什么呢 |
85 pangleon 2020-10-23 12:01:11 +08:00 让 AB 互相改他们之前做的大需求,然后看他们对喷 |
![]() | 86 labulaka521 OP ![]() @haha512 没办法 总有人觉得我的代码很优雅 很优雅 不用注释 结果一看 是什么玩意 叠加五六层 ifelse 真逼王之王 |
![]() | 87 lululau 2020-10-23 12:16:45 +08:00 业务代码不需要注释,类名和方法名就是注释,把 PRD 写写好是最重要的 |
![]() | 88 opengps 2020-10-23 12:26:28 +08:00 写注释奖钱啊,很多人不写,不就是因为大部分企业都卸磨杀驴吗 |
![]() | 89 wysnylc 2020-10-23 12:29:54 +08:00 |
![]() | 90 Leigg 2020-10-23 12:36:21 +08:00 via Android 楼上一帮人,个个以为光看代码就看懂了,要么是真牛逼,没遇到过垃圾同事,要么是长期混迹小公司自己就从来不写注释的,别人问还怼别人的。 哪个比例更高一点? |
91 Huelse 2020-10-23 13:06:51 +08:00 |
![]() | 92 zerofancy 2020-10-23 13:16:52 +08:00 lint |
93 tony1890 2020-10-23 13:21:48 +08:00 没办法。只能管好自己。虽然我跟同事说过多次,不用的代码要么注释要么删除,方法最起码说明是干嘛的,公共方法还要写入参和 returns,公共组件要写文档。balabala 一堆。 然而他们很难做到。唯一欣慰的就是提交写简短记录了。 |
![]() | 94 newmlp 2020-10-23 13:26:18 +08:00 又不是不能用 |
![]() | 95 darktutu 2020-10-23 13:28:44 +08:00 @Still4 是啊,所以我挺好奇的,一般项目的注释都很完善,只有我遇到的是乱糟糟的?还有就是单元测试,也是没多少或者没有,到那时看评论,大家经常都是齐备的,我也搞不明白。 |
![]() | 96 tabris17 2020-10-23 13:29:03 +08:00 我只在个人项目里会尽责地写注释 |
97 troywinter 2020-10-23 13:51:32 +08:00 题外话,注释和代码有不同的目的,不存在好的代码不需要写注释的,他们的目的本来就不相同,有些简单的逻辑确实不需要注释,但大多数情况下,注释还是应该解释下这样设计的原因和用法,最好链接到设计文档。 |
![]() | 98 qiumaoyuan 2020-10-23 14:01:04 +08:00 @labulaka521 也许你见过你口里描述的人,但同时你要知道这世界上真有不少人的代码是不用注释的。把无法理解的事情打个装逼的标签,把难以实现的理想当作自己不努力的借口对自己没有好处。有理就好好讲理这是程序员的基本素养,起码冰冷的机器不会照顾你的个人情绪。 |
99 tankren 2020-10-23 14:19:03 +08:00 看可读性吧 |
![]() | 100 lazydog 2020-10-23 14:24:19 +08:00 不写注释看来是真的不行,我一周前的代码,今天看的时候竟然看不懂了,费了好长时间才反推回去。 |