V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lotusgrm  ›  全部回复第 1 页 / 共 1 页
回复总数  19
31 天前
回复了 Eyes22798 创建的主题 杭州 求驾校推荐
我去年在滨江区明通驾校学习的,感觉挺不错的
@xiyy02 楼主面试的海康萤石什么岗位?
122 天前
回复了 YWolf 创建的主题 杭州 求推荐杭州滨江的驾校
推荐明通驾校,今年刚拿到驾照
如果是目录的话,全部小写不添加下划线分割,但是如果是 go 源文件的话,我会使用下划线分割,这也是 uber go 推荐的开发规范
156 天前
回复了 yujianwjj 创建的主题 Go 编程语言 go module 依赖的问题
可以使用 replace 重新命名其中其中一个版本
1 、如果服务是容器化的,建议将容器的日志输出到 stdout 和 stderr ,这里主要有这么 2 个原因吧:( 1 )方便日志的集中管理。将容器日志输出 stdout 和 stderr 可以很方便的通过管道重定向到其它的日志管理平台,这样一来的话所有容器的日志可以集中存储和分析 ( 2 )容器化标准化。将日志输出 stdout 和 stderr 有助于将容器设计为只负责应用程序进程本身,而不用关心日志的具体实现,比如我们可以通过 sidecar 的方式收集封装服务日志

2 、具体是输出 stdout 还是 stderr ,我个人觉得可以根据日志级别来决定,比如 nginx 中有两类很重的日志:access.log 、error.log ,前者表示正常的访问日志,后者表示错误日志,一般情况我觉得我们的业务系统可以参考 nginx 的设计建立这两类日志
287 天前
回复了 Ayanokouji 创建的主题 Go 编程语言 求教: golang error 如何打印调用栈
可以使用 github.com/pkg/errors 实现打印调用堆栈,在 pkg/errors 中除了可以使用 withMessage 附加错误信息以外还可以 withStack 附加堆栈信息,源码如下:

// Wrap returns an error annotating err with a stack trace
// at the point Wrap is called, and the supplied message.
// If err is nil, Wrap returns nil.
func Wrap(err error, message string) error {
if err == nil {
return nil
}
err = &withMessage{
cause: err,
msg: message,
}
return &withStack{
err,
callers(),
}
}
287 天前
回复了 uiosun 创建的主题 Go 编程语言 go-zero 的 Redis 竟然只支持 0 库……
我觉得之所以 redis 集群的时候默认只支持 0 库,更多是为了简化集群管理,redis 集群中的所有节点共享相同配置,包含集群 redis 实例使用的数据库编号,通过把所有节点都配置成使用 0 号数据库,可以简化集群的管理和维护工作
os.Open Go 源码如下:
func Open(name string) (*File, error) {
return OpenFile(name, O_RDONLY, 0)
}

func OpenFile(name string, flag int, perm FileMode) (*File, error) {
testlog.Open(name)
f, err := openFileNolog(name, flag, perm)
if err != nil {
return nil, err
}
f.appendMode = flag&O_APPEND != 0

return f, nil
}

从这里可以看到,如果 open file 的时候,出现了 error ,os.Open 返回的第一个值是 nil, 那么此时也就不需要再进行 close
289 天前
回复了 HelloWorld556 创建的主题 Go 编程语言 大文件上传方案
为了解决合并过程中 client 一直等待可能会导致超时的问题,一般就是使用异步的方式,比如:
1 、client 请求上传接口时,服务器生成一个唯一的文件 ID,并将这个 ID 返回给 client
2 、client 将文件切片上传到服务器,并且将唯一的文件 ID 作为参数
3 、服务器接收到每个切片之后,将其暂时存储在指定的位置,并且记录切片的索引和文件 ID
4 、当所有的切片上传完成之后,服务器通过一个后台 job 处理切片的合并,而不是让 client 一直等待
5 、后台 job 从指定的存储位置获取所有切片,按照索引顺序合并成一个完整的文件
6 、合并完成之后,再把合并之后的文件保存到指定的位置,然后更新数据库中的文件状态
7 、额外提供一个查询接口,client 可以轮询这个接口检查文件是否合并完成

之前我通过这种方式处理过,可以作为参考看看
从你的描述来看,level 是一个枚举类型的数据,mysql 在处理枚举类型数据时,会将其转换为整型进行处理,以提升其查询性能,但是由于枚举类型的值索引选择性比较低,因此这种优化的效果可能比较小
2023-04-21 12:46:32 +08:00
回复了 godleon 创建的主题 程序员 redis 链表存数据,怎么给每个下标设置过期时间?
redis 中,list 类型的数据结构没办法直接给每个元素设置过期时间,不过可以借助于有序集合实现,把 list 中的元素作为 sorted set 的 member ,把当前时间戳作为成员的 score ,然后在需要删除元素的时候使用 zrangebyscore 命令查找过期成员,然后使用 zrem 删除过期的元素
2023-04-01 17:09:50 +08:00
回复了 MoRanjiang 创建的主题 杭州 杭州地铁貌似不用戴口罩了
是的,上周的时候同事坐地铁忘记戴口罩,本来要在安监买一个,之前都是有提供的一块钱一张,但是上周的时候安检的人员已经不再提供了,因为不再强制要求戴口罩了
2023-03-05 11:46:41 +08:00
回复了 woahaha 创建的主题 程序员 自由职业一年多,重新投简历找工作, HR 会如何看待
与其想那么多带来更多的精神内耗,我觉得倒不如行动起来
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3402 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 11:49 · PVG 19:49 · LAX 04:49 · JFK 07:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.