V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  shinelamla  ›  全部回复第 3 页 / 共 9 页
回复总数  172
1  2  3  4  5  6  7  8  9  
@chonh 那就搜一下关键词,golang 接受接口,返回结构体,best practice
@ChristopherWu 是的,几乎很少写单侧,我查的资料里面,几乎都提到了「接受接口,返回结构体」对单测很有用。其实你这个描述引起了我另一个问题:当我的服务支持了一个新的功能的时候,是提供一个新接口,下游再实现一遍,还是往旧接口新增方法,下游重新对接一遍?
@kuanat 其实我之前一直都不是 oo 语言的选手,虽然学校里学的是 java ,但参加工作后写的是 php ,在公司里面使用公司自研的 go 的 mvc 框架来写项目,项目不能说小,但是用到用到接口的地方真的不多,面向业务的项目,没有用 oo 的方式来组织,够用,反而没有那么“啰嗦”
@kuanat 大佬写得好,期望有文章写完的话,可以在这个帖子里面贴一下文章链接。
关于用到了接口再定义,而不用预先设计,这个点也是 go 代码评审里面有提到的,我觉得这样很好
@mcfog 「看 golang 接口设计和使用」这个有推荐的吗,特别是正向应用这个原则的这一块的资料,我没找到合适的
希望大家可以给一下实际的代码例子帮助理解一下,看了 2 天资料了,脑子还是没有转过来...
最终发现没有很好的方法论,都是经验,做多了业务就慢慢触类旁通了。没有办法很好地总结,如果有,不一早就有人分享出来了?为什么这这方面的资料这么少?
@woodwhales 谢谢,挺好的建议
@yule111222 像这种回答应该被推荐
@morenacl 有没有具体的?
推荐一个吧,长安 uni-z ,新出的,个人认为是冷门好车,也在 10w 这个价位,空间够大,不挑的话东西也给够
workerman ?
所以想问下哪里有便宜好用的 copilot 渠道?
用户名 shinelam ,支持一下
@declandragon 那请问可以怎么避免被抓住 AB 站的关系?
2024 年 3 月 12 日
回复了 roseduan 创建的主题 程序员 推荐一些高质量 Go 语言练手项目
大佬
2024 年 3 月 12 日
回复了 yevXxHmg 创建的主题 程序员 关于数据库高并发插入的版本号问题
@markgor 正是我前面说到的第一点,所见略同
2024 年 3 月 12 日
回复了 yevXxHmg 创建的主题 程序员 关于数据库高并发插入的版本号问题
@avadakur 其实有办法处理的,你这种场景。
1. 考虑你的版本号就不要使用需要自己处理自增的形式,换成毫秒甚至纳秒时间戳,请求必然有个先来后到的
2. 考虑使用事务进行两次插入,先插入一次获取自增 id ,再结合自增 id 更新版本号
3. 最简单,就还是前面几楼提到的:用一个自增操作不就完事了?
2024 年 3 月 12 日
回复了 yevXxHmg 创建的主题 程序员 关于数据库高并发插入的版本号问题
@yjhatfdu2 请问开事务有什么作用吗?多个事务之间,该覆盖还不是一样会覆盖吗?
2024 年 3 月 12 日
回复了 yevXxHmg 创建的主题 程序员 关于数据库高并发插入的版本号问题
想了一下开不开事务都没什么用,除非你开的隔离级别是已提交读。

应该用乐观锁,既然你是”先获取(userid,business_type)的最大版本号“,那你在更新或者插入之前就知道了最大版本号了,在更新操作的时候,update set total_version = total_version + 1 where userid =xxx and business_type=xxx and total_version = 你刚才获取的版本号
1  2  3  4  5  6  7  8  9  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2038 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 16:14 · PVG 00:14 · LAX 09:14 · JFK 12:14
♥ Do have faith in what you're doing.