如何平衡程序员的代码执行规范严谨性和工作自由度? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Hormazed
V2EX    程序员

如何平衡程序员的代码执行规范严谨性和工作自由度?

  Hormazed 3 小时 26 分钟前 via iPhone 629 次点击

如下是一次线上 paas 平台内的 java 包邮件发送异常,就是一个典型案例。实际发生问题,程序员言之凿凿自己代码没问题,然后大家一起过代码排查结果,问题如下

如何把研发标准从制定标准落实到代码管理规范中?逐渐形成一种思维模式和惯性,而不是发现问题解决问题,比如:超实,数据获取方式,异步处理,这些参数的使用和定义能否从项目开始就顺手写出更健壮的代码?发家如何看待这些问题?请多指教

问题 1 (致命):SMTP 超时设置为 1 秒

prop.setProperty("mail.smtp.timeout", "1000");

风险点,高峰期频繁出现

SocketTimeoutException: Read timed out ,被误判为数据库或邮件系统问题。

问题 2:未设置连接和写入超时

mail.smtp.connectiontimeout

mail.smtp.writetimeout

风险点:

网络波动时连接长时间阻塞,大附件发送过程中线程被占用,在高并发下容易形成线程堆积

问题 3:同步 HTTP 线程直接发送邮件

javaMailSender.send(mimeMessage); 运行在进程:XNIO-1 task-*

风险点:SMTP 属于慢 IO 操作,高并发多附件容易卡住,高并发情况下可能导致接口响应变慢甚至线程耗尽

问题 4:附件加载方式不稳定

mimeMessageHelper.addAttachment(

attachment.getFileName(), getInputStreamSourceFromUrl(attachment.getUrl()) 

);

风险:

网络耗时叠加,超时概率显著增加,整体发送时长不可控

问题 5:异常处理过于笼统,未做错误判断处理

catch (Exception e) {

log.error("邮件发送失败,错误信息:", e); 

}

风险点:

无法区分认证、连接、超时等问题,定位困难,缺乏可观测性。

7 条回复    2026-02-13 11:04:08 +08:00
IPv6Shen
    1
IPv6Shen  
   2 小时 37 分钟前   3
使用 vibe coding ,把你的这些最佳实践添加到 rules 里面,大家都用 AI 写代码,写出来的代码都是符合规范的 从维护代码一致性转变为维护 rules
litchinn
    2
litchinn  
   2 小时 14 分钟前
如果是小团队,我觉得凑合凑合得了,如果你的团队规模比较大,我的建议是不仅要提出规范,更要同步给出工具帮助开发者
例如:自定义静态检查,封装 sdk 、IDE 插件等
Hormazed
    3
Hormazed  
OP
   1 小时 42 分钟前 via iPhone
团队规模上百人、内网隔离、无法依赖互联网或 AI 能力统一接管开发入口,很多规范目前只能依赖人工事后弥补。变更后没发现问题是常有的事情,这是一个难题。

例如最近发现的一个细节问题文件权限异常:
-rw-rw-rw- 1 root root 21M Feb 08 18:34 20260208001.p
-rw-r--r 1 root root 21M Feb 09 18:34 20260209001.p
sentinelK
    4
sentinelK  
   1 小时 4 分钟前
code review 是不是没做?像这种延时 1 秒的硬编码,是怎么通过审核的?
设计文档写了吗?如果写了,同步调用远端这种设计流程是怎么过的?
Hormazed
    5
Hormazed  
OP
   55 分钟前 via iPhone
在实际执行过程中,一旦流程被熟悉,很多发布工作往往由一个人即可独立完成。从提交到上线,各类环节都能“顺利走通”。随之而来的一个现实问题是:部分质量控制手段逐渐形式化。

例如:
1.Code Review 偏向流程确认,缺少实质性问题讨论
2.设计文档更多是基于模板补充,实际设计思考有限
3.审核与签字成为流程节点,而非质量关口
sentinelK
    6
sentinelK  
   49 分钟前
所以流程都失效了,讨论管理还有什么意义……
Hormazed
    7
Hormazed  
OP
   42 分钟前 via iPhone
目前处理两个方向:规范管理,定期淘汰换人,避免后者是会被误解为业务下行。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3519 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 21ms UTC 03:46 PVG 11:46 LAX 19:46 JFK 22:46
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86