再也没有了当年的激情,去写出优雅和兼容并存的代码

2023-07-07 10:38:54 +08:00
 brader
你还记得那些年你写的另你感到骄傲的代码吗?

8204 次点击
所在节点    程序员
94 条回复
coderxy
2023-07-07 11:50:54 +08:00
@QlanQ 冗余数据是合理的,你学过三范式,肯定也学过反范式吧? 在很多场景下三范式的写法是个灾难。
sslyxhz
2023-07-07 11:54:44 +08:00
罗永浩. jpg
ElvY
2023-07-07 11:57:44 +08:00
老鸟最应该做的是面向文档编程,代码写的和文档一样。
brader
2023-07-07 12:08:33 +08:00
@Rache1 兄弟,有些代码,离开业务场景空想是想不明白的,这个代码我四五年前写的了,模糊记得一些,你疑问的点大概和你说下吧:
1 、1000000000000000000 和 0x 是业务需要,它是不会也不可能变化的,所以我写死了专用值,也不存在我需要添加除 0x 前缀外的场景,这个是专用于数字币计算的。
2 、我不知道你所说的 PHP 自带的的十进制和十六进制转化是否指的是 dechex 这个函数,如果是的话,这个函数是用不了的,数字币都是高精度计算,数字位数是 n + 18 位,用自带函数计算是超出上限的。
3 、我直接拼 0x 是因为我很确定我上一步的值是不存在 0x 的,无需重复调用兼容性的方法增加判断,当然,你要说非要调用比较优雅,也不是不行,这个见仁见智,我不反驳,我当年怎么想的,我也记不起来了。
4 、同 1 解释,因为只专注于+0x
5 、此工具函数比较简单,当时为什么没有单独提出来,我已经记不清了。
6 、是的,可能当时忘记了吧。
brader
2023-07-07 12:10:55 +08:00
适量的冗余是正常的,有时候是为了查询方便,而且对于没有要求前后数据变更强一致性的数据,也无需花精力去同步。
比如之前我做过一个客服聊天记录表,我就在里面冗余了用户昵称,方便查询,用户改昵称,我也不会同步过来的,已经问过产品,说无所谓
brader
2023-07-07 12:19:21 +08:00
@Rache1 奥,对了,第 1 点 bcdiv 的 18 这个疑问忘记告诉你了,这个是因为数字币 eth 中, 单位 wei 转 eth ,存在小数,精度需要保存到小数点后 18 位
brader
2023-07-07 12:24:23 +08:00
@ElvY 我现在是代码随意,因为是我自己维护的。文档我倒是挺认真写的,因为我不想坑前端同事
caixiangyu17
2023-07-07 12:52:20 +08:00
代码优雅不优雅不是程序员说了算。你在屎山里面,咋也写不出来好东西的。
想要好代码,需要团队的规范,大家都高要求,你自己反而就没什么负担。
git commit comment 格式不对,测试不过,coverage 不够,linting 不过,有 Vulnerabilities 等等,都会在各个环节卡住你的代码。要么不能 push ,要么不能 merge PR 。这样每个人写的代码都不得不这么做,质量就上来了。
TedS
2023-07-07 12:58:48 +08:00
优雅就是个伪命题,在保证质量前提下,让团队合作更轻松,才是好代码。
Rache1
2023-07-07 13:29:45 +08:00
@brader 对于魔法字符串、魔法数字这些,如果你做不到在小单元内使用,最好的方式就是提成常量,并加以注释。

实际上你这个 add0x 里面本就不应该包含 remove0x 的逻辑,你应该在外部就确定是否要 rmeove0x ,亦或者单独提一个方法
Leviathann
2023-07-07 13:39:43 +08:00
优雅是虚的,代数才是真的
zhutai0201
2023-07-07 13:46:09 +08:00
又不是不能用?
tcpdump
2023-07-07 13:48:25 +08:00
老板:当年他们努力工作给我买的宝马 5 系,现在提了库里南,不过再也没有了当年的激情。
Seulgi
2023-07-07 14:00:47 +08:00
这两年疫情影响,一个是跳槽不会那么随意,一个是工资涨幅没有那么大之后,确实是不管是学习/代码/态度都有所躺平。
locoz
2023-07-07 14:05:26 +08:00
再也没有了当年的激情,去写出代码,现在都是能让 AI 解决的绝对不自己动手…
Pastsong
2023-07-07 14:15:04 +08:00
你觉得优雅别人接手的人觉得是屎山

优雅就是件感动自己的事情,没什么卵用
nikola11
2023-07-07 14:17:52 +08:00
@QlanQ 大多数场景 冗余都能满足需求,sql 应该尽可能的简单,不冗余 sql 太复杂了,不利于维护
tool2d
2023-07-07 14:19:05 +08:00
@locoz 当年产品经理巴拉巴拉聊一天,程序员埋头写代码。
现在程序员巴拉巴拉聊一天,AI 埋头写代码,附赠一堆 BUG 。
tool2d
2023-07-07 14:22:40 +08:00
记得早年 twitter 上一项活动,比谁删历史旧代码最多最快。

我倒是觉得,写代码不仅是为了优雅,而是为了便于以后维护和复用。

而好维护代码是准则之一,就是子模块越简单越好,代码量越少越好。
locoz
2023-07-07 14:29:16 +08:00
@tool2d #38 不至于,在描述清晰且模型能力足够( GPT4 )的情况下,输出的代码基本都是可用的,极少出现 BUG 。最多也就是因为 Token 过多,导致 AI 忘记了某一条或某一些要求(根据长度而定),需要检查后重新要求补充。

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

https://tanronggui.xyz/t/954784

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

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

© 2021 V2EX