V2EX POST
645 subscribers
138 photos
31 videos
99 files
103K links
v2ex新贴定时推送,可按需置顶本频道然后关闭通知
Download Telegram
fork 的进程怎么自动 attach 到当前的 os.Std{in/out/err}而不是自动退出

在折腾 go 的 0 停机重启升级。

前几天看到了 systemd 方案,尝试后还可以。

然后看到了另外一个方案: https://goteleport.com/blog/golang-ssh-bastion-graceful-restarts/

有个疑问:

测试后发现,当收到 HUP 信号后 fork 出子进程没问题,但是 http.Shutdown 结束后原来的进程直接退出了。当然是不影响服务的,就是有个问题,能不能不让老进程退出或者是老进程可以退出但是把 stdin/stdout/stderr 自动挂到新起的进程上呢。

#进程 #有个 #退出 #go #systemd #https #goteleport #com #blog #golang
安利一下自己用 Golang 写的下载工具 bookhunter

比较喜欢囤书,然后发现很多 Telegram Channel 上都是一大把图书,但是一本本下载实在是太慢,之前使用 `telegram_channel_downloader` 下载图书,但是作者很早就停止维护。正好这几个月在学习写 Go ,就用 Go 开发了一个:[bookhunter]( https://github.com/bookstairs/bookhunter)。

在支持从 Telegram 上批量下载图书的同时,还能从 sobooks 等几个常见的网站下载图书。如果你家有小朋友还在读书,还能从国家中小学智慧教育平台上将全部的教材 PDF 版本下载下来,欢迎尝试。

#下载 #图书 #Telegram #Go #bookhunter #囤书 #Channel #telegram #channel #downloader
V2EX 首页样式错乱

MacBook Pro M2

Google Chrome

Chrome 已是最新版本

版本 108.0.5359.124 (正式版本) (arm64)


会错乱的(首页下每个 Tab 都会、新打开是正常过一两秒就会向左偏移):

https://www.v2ex.com/?tab=creative

https://www.v2ex.com/?tab=hot


这种点进去每个主题的就不会错乱:

https://www.v2ex.com/go/v2ex

https://www.v2ex.com/go/qna

F12 打开的页面:
https://imgloc.com/i/U895k

默认页面:
https://imgloc.com/i/U8KZL

![F12 打开的页面]( https://imgloc.com/i/U895k)

![默认页面]( https://imgloc.com/i/U8KZL)

#https #com #v2ex #www #imgloc #Chrome #tab #go #F12 #U895k
Go 有没有什么开源库,给 context 预留 Value 的坑?

比如下面的程序
```go
func F1(ctx context.Context) {
// A
}

func F2(ctx context.Context) {
// C

F1(ctx)

// B
}

```
A 处,可以取得一些变量。

现实是 B 处需要 A 获得的变量。
一个办法,修改函数 F1 ,让 F1 返回 B 需要的数据。
或者,C 处给 ctx 塞一个 value 坑,F1 把数据存到 value 坑上,B 再取到 value 。但不知道有没有什么开源程序,已经实现了这个?

#F1 #ctx #value #func #context #Context #变量 #go #F2 #坑上
Tap&Go 充值

以前常用的一家淘宝代充不做了,搜索关键词也早被屏蔽。

1. 求推荐 Tap&Go 代充渠道
2. 顺便,类似 Tap&Go 的虚拟卡服务有什么推荐的吗?有些服务无法支付,用这家的卡。

谢谢!

#代充 #Tap #Go #推荐 #服务 #屏蔽 #关键词 #淘宝 #虚拟 #顺便
感觉自己技术栈不够用的时候,有必要全职学习新技能吗

# 经历
从业 8 年,后端开发入行,做了 5 年左右后端之后,转的公有云交付,后来去的上海做的业务运维,大概有一年半,现在是做私有云交付,算下来在上海,也要两年了。
# 迷茫的来源
现在这份工作做了有三个月了,还没转正,但是已经能感觉到自己的知识技能完全不够用。现在公司的技术栈是 kubernetes 这些,但是自己的技术能力,还停留在 OpenStack 甚至更古早之前,知识技能也仅限于 Linux 系统运维,以及之前干开发攒下来的一点经验,但是已经明显感觉无法面对现在及将来工作所需的技术能力需求,这种知识能力的缺乏带来的危机感,由此引发现在的焦虑和迷茫。所以既然跑起来有问题,不如先慢下来从走开始学,不想搞那种带病上岗的事儿,既不能为雇主带来效益,也让自己做的难受。
# 问题
计划是准备 1 月份提交辞职,因为公司没有年终奖,再加上在试用期内,所以留不留下无所谓了。辞职之后,计划是全职学习一到两个月,高强度补充有关 kubernetes 以及 docker 相关的技术能力,以及有关 go 的基础技能,4 月之后再去面试试试看,能不能找到新的更合适的机会。
# 当下优劣势比较
## 优势
1. 做过五年后端开发,会点 python ,如果继续做私有云交付,或者是运维相关工作的话,开发能力是占优势的;
2. 能写文档吹牛逼,文档质量要比其他人写的文档要更规范一些;
3. 七月份非全日制本科学历下证,找工作可能会更容易一点。
## 劣势
1. 非全日制学历,与全日制学历相比不占优势;
2. 工作经历公司太多,这个咋说呢,也没啥好说的,自己的原因,公司的原因都有吧,会让雇主感受到不安稳的感觉;
3. 中间 gap 的这一两个月,可能也是雇主很多疑问的来源。

2 和 3 我想如果解释清楚了,应该也不会有太多问题。

# 计划
## 眼下
1. 高强度刷 kubernetes/docker 相关内容;
2. prometheus/grafana 监控相关;
3. 中间件运维,nginx ,消息队列啥的这些。
## 未来
1. 深度学习 kubernetes/docker ;
2. go 开发相关,由此再切入运维开发,未来可以走 go 后端或者运维开发的路线,顺路把前端开发也学了,尽可能把路子走宽;
3. 网络相关,华为或者 H3C 的证书搞一个来。

眼下想到的就是这些了,有啥想到再说吧。

#运维 #kubernetes ### #开发 #docker #go #文档 #相关 #非全日制 #雇主
我怎么感觉 Golang 并不简单,也很复杂

最近实在顶不住 go 的各种宣传诱惑,准备学下 go

我根据 go 的官网( https://tour.go-zh.org/welcome/1 )过了一遍 go 的语法。

第一感受就是 go 并不是网上说的那种极简、什么大道至简。不知道是不是因为一直被宣传成 go 简单,让我潜意识觉得,就是比 python 更简单才叫简单。

下面我说说我觉得很复杂的点:
1. 指针、函数指针(闭包)等等各种指针用法
2. interface 用法。

这两个东西组合起来,写出来的代码可以极其复杂。(感觉都能赶上以前看的那种 C 语言混乱代码大赛了)。

然后我感觉好的点:
1. defer
2. 并发编程和同步,就是被吹爆的 go 协程
3. 没有 while 关键字了,都用 for 来搞定,也算变相提升了 for 复杂性。


感觉要学好 go ,写出能和人协作给人看的代码,而不是自嗨的代码,也不是一件很容易的事。也许相对 c/c++,要容易点,但也并不是什么有手就行的极简,完全就是忽悠啊。

#go #代码 #指针 #用法 #感觉 #简单 #不是 #就是 #大道至简 #宣传
卧槽,还是远离阿里吧,感觉他们在污染开源

本人在研究学习 flutter

于是在 github 上搜一下 flutter 的项目 ,按照 star 数量排名,

其中排在前几的就有一个阿里的东西: https://github.com/alibaba/flutter-go

进去一看

> 感谢大家一直以来对 FlutterGo 的支持与反馈。
>
> 但是 由于团队内部组织调整变更,很遗憾的宣布 FlutterGo 目前暂停维护。
>
> 但是后期我们会再升级迭代 FlutterGo 新版本,也同时希望更多 Flutter 爱好者参与加入。

真是烦死了.mp4

#flutter #FlutterGo #github #star #https #com #alibaba #go #Flutter #mp4
怎么写出让人无法理解且恶心的 go 代码

尝试了一下打印 1 到 10 ,不够恶心而且还是能看懂 https://go.dev/play/p/blIc9lco6HA

```go
package main

type float = func() int

var nil = []float{}

func main() {
i := 10
for ; ; i-- {
if i == 0 {
goto x
}
i := i
f := new(float)
*f = func() int {
return i
}
nil = append(nil, *f)
}
x:
hh(nil)
}
func hh[T float](x []T) {
for _, e := range x {
defer println(e())
}
}
```

#float #func #nil #10 #go #main #int #hh #https #dev
每一个 go 库都是精品,组合到一块儿就这么恶心

最近在学习使用 go  stars 比较多的库,比如 gin,gorm,go redis 等,单独用一个写段代码,感觉很舒服,挺爽,于是想把他们整合到一块儿,感觉很郁闷,数据库,redis 库底层 error 和业务空都归类为 error,我整合成一个业务框架以后写业务就很啰嗦了,要区分是业务 error 还是底层 error ,总不能把底层 error 抛出来前端显示吧,go 又不提倡 panic ,大家有木有用 go 写业务的,用啥框架,还是自己封装?发现 go zero 是个好东西,大部分代码都可脚手架生成

#go #error #业务 #底层 #redis #框架 #代码 #整合 #stars #gin
Linux 、基础设施、devops 的社区: infras.cn

基于 go 语言中文网的代码搭建了一个社区站,专注在基础设施、平台工具方向的讨论,
网站上线一段时间了,超过三年了,不过还有不少问题需要修复,

链接放上,https://infras.cn 欢迎注册。

#go #https #infras #cn #中文网 #链接 #搭建 #上线 #专注 #社区
我发现了程序员悖论,有 3 年 Java 工作经验的人,肯定很难去要求 3 年 go 工作经验的公司吧?那么程序员一生的技术栈就几乎被锁定了

有 3 年 java 工作经验的人,就很难有 3 年 go 工作经验
他投简历极大概率因为没有 3 年 go 经验而被拒绝,哪怕他是真的会 go 也会因为没有 3 年经验而被拒绝
所以排除小概率事件和个别事件,他的技术栈就被锁定在 java 了

小概率事件:公司突然改技术栈,遇到不要求经验且薪水不降的公司等

#go #经验 #java #概率 #事件 #拒绝 #简历 #薪水 #技术 #不降
[web3 职位] [红杉/高榕/五源投资 web3.0 项目] 后端开发工程师 (资深 Go)/系统开发工程师 (资深 Go)

# 我们是谁
Gm! 我们是 Bitjob ,web3 求职招聘平台,提供最有想象力的工作,做 web2 与 web3 之间的桥梁。
我们所提供的包括但不限于职位资讯、行业资讯、业内人士采访、行业社群、线下活动。
我们已经合作 50+知名公司,长期服务 web3 赛道人才需求,推荐人选快准狠,最快一周找到合适人选,已帮数百位人选找到合适工作机会。
投递简历、加入全球 10000+ Web3 从业者求职社群,请添加微信:13248240130 ,备注“v2ex”

## 已获红杉高榕融资
[我们是一家专注于 web 3.0 的公司,已拿到红杉资本,高榕资本和五源资本领投的种子轮投资。核心团队成员来自上海交大 ACM 班、卡内基梅隆大学、加州大学伯克利分校等世界知名学府,多名成员曾获得过 ACM-ICPC 全球总决赛、亚洲区域赛金牌。创始人为 P10 级别,拥有多项独家技术知识产权和突破性研究。]

### 后端开发工程师 (资深 Go) - 上海 - 20-50k+年终奖 /期权
岗位职责\
负责公司产品服务端研发,部署和维护工作。\
能根据业务需求,提供技术解决方案,并进行快速迭代落地。\
能独立进行技术问题攻坚,探索对应的解决方案,通过技术手段降低业务复杂度,提高工作效率。\
\
任职要求\
本科及以上学历,计算机相关专业,基础扎实,三年以上后端开发经验。\
能够使用 Go 语言进行业务编码。\
能够熟练使用 Git 进行代码管理,多人协作;能够熟练使用 Linux 进行开发部署。\
能够流利阅读英文技术文档,能熟练使用英文进行业务和技术问题的检索。\
学习能力强,能快速理解行业知识,前沿技术。\
\
加分项\
有基于 Docker 容器技术,以及在 k8s 集群中进行开发部署经验,有基于 AWS/GCP/AliYun 相关云产品进行后端架构和开发的经验。\
有区块链相关行业知识,或对行业有浓厚兴趣者优先。

### 系统开发工程师 (资深 Go) - 上海 - 20-50k+年终奖 /期权
岗位职责\
为公司产品需求进行底层服务框架研发,部署和维护工作。有对代码性能进行分析,调优的能力。能对自己开发的产出持续负责。\
能够根据业务需求,提供技术解决方案,并能给出计划稳步迭代落地。\
能独立进行技术问题攻坚,探索对应的解决方案,通过技术手段降低业务复杂度,提高工作效率。\
\
任职要求\
重点本科及以上学历,计算机相关专业(基础扎实),能够熟练使用 Go 进行编码。\
能够熟练使用 Git 进行代码管理,多人协作;能够熟练使用 Linux 进行开发部署。\
能够流利阅读英文技术文档,能熟练使用英文进行业务和技术问题的检索。\
学习能力强,能快速理解行业知识,前沿技术。对技术拥有探索的热情。\
\
加分项\
有基于 Docker 容器技术,以及在 k8s 集群中进行开发部署经验,有基于 AWS/GCP/AliYun 相关云产品进行后端架构和开发的经验。\
有区块链相关行业知识或对行业有浓厚兴趣者优先。\
有 acm 比赛经验者优先。

#进行 #熟练 #技术 #开发 #Go #能够 #部署 #使用 #web3 #业务
Java 中如何实现动态生成证书,像 Go 那样。

比如 go

```go
func main() {

ln, _ := tls.Listen("tcp", ":433", &tls.Config{
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
// 使用 info.ServerName 从 DB 或者临时生成
cert := generateX509Certificate(info.ServerName)
return cert, nil
},
})

http.ServeTLS(ln, nil, "", "")

}
```

Java 有类似的机制吗。哪怕是并发请求,也可以控制只有一个请求触发生成证书,其他请求 hold 住,等证书一旦生成成功,所有请求立刻进行接下来的握手(超时的不算)

Java 中不同的框架处理方式一样吗?

#tls #info #请求 #go #func #ln #ServerName #cert #nil #Java
有些节点无法查看

18 年注册的,后来不怎么使用,也很少回答和提问。今年有同事说有个“水深火热”,推荐看看,我发现无法查看。单独的问题可以进去查看,主次不行。比如 https://www.v2ex.com/go/flamewar 会调转到主页,想问问为啥会这样?怎么才能查看呢?

#查看 #18 #https #www #v2ex #com #go #flamewar #调转 #主页
基于 markdown 文件生成网站,可以当作 blog 使用。开发语言是 GO

功能类似于 docsify

简而言之,就是通过 go 跑了一个 server ,读取你的文件夹内的 markdown 文件,并提供 web 访问。

放个链接 [go-markdown-book]( https://github.com/hedongshu/go-markdown-book)

放两张图
![light]( https://github.com/hedongshu/go-markdown-book/blob/main/light.jpg?raw=true)
![dark]( https://github.com/hedongshu/go-markdown-book/blob/main/dark.jpg?raw=true)

#go #markdown #book #https #github #com #hedongshu #light #blob #main
买不起罗德领夹麦克风,有平价的替代品吗?

罗德 Wireless GO 太贵了,求个性价比高的,需求是领夹麦克风,多数室内拍摄

#Wireless #GO #求个 #麦克风 #罗德 #太贵 #性价比 #拍摄 #室内 #多数
go 封装随机数生成

想要封装一个随机数函数生成 类似于 ts 的这样
```typescript
function random(min?: number, max?: number): number {
min = min === undefined ? Number.MIN_SAFE_INTEGER : min;
max = max === undefined ? Number.MAX_SAFE_INTEGER : max;
return Math.floor(Math.random() * (max - min + 1)) + min;
}
```
想用上 go 的泛型 但是底层随机数都是 rand.类型 一下子不知道怎么写了
试了下 interface + switch(.type) 感觉不是很优雅
有没有 go 大佬 指点一下

#min #max #number #random #undefined #Number #SAFE #INTEGER #Math #go
今日分享,每日不定期分享开源技术,前端、后端/Go、运维/DevOps/云原生等,关注本帖


#今日分享 #HTTPClient #Fetch #Axios #Requests #Go #Node.js #Python

[go-zoox/fetch]( https://github.com/go-zoox/fetch) - 简单、好用、强大的 Go HTTP Client ,已经用在很多项目生产环境中,同时被收录到 [awesome-go]( https://github.com/avelino/awesome-go?tab=readme-ov-file#http-clients) ,已推荐到[阮一峰 Weekly]( https://github.com/ruanyf/weekly/issues/2607) ...

* 类别:Go
* 项目标题:简单、好用、强大的 Go HTTP Client
* 项目描述:
* 它是一个基于 Go HTTP Client 的上层应用,方便开发者使用,特别适合有前端 / Node.js 开发经验的开发者
* 支持 HTTP 基础方法
* 支持动态 JSON
* 支持超时/重试机制
* 支持取消机制
* 支持自定义代理
* 支持一键 Upload / Download
* 支持进度条等

更多用法,请访问 GitHub 查看

GitHub: https://github.com/go-zoox/fetch
招聘:钱包开发( Java )、SRE、Flutter(原生安卓)-深圳


有钱包开发( Java )、SRE 、Flutter (原生安卓)的朋友在看机会的嘛?

1.钱包开发( Java )
岗位职责
1. 设计和开发符合业务需求及严格安全标准的钱包系统;
2. 深入研究并实现新链技术及其相关的钱包解决方案;
3. 开发、维护、优化现有钱包服务,确保其稳定性和高效性;
4. 快速响应并准确定位和解决钱包服务的技术问题。
岗位要求
1. 计算机科学或相关专业背景,精通 Bitcoin 、Ethereum 等主流区块链协议;
2. 丰富的钱包系统及区块链开发经验;
3. 优秀的团队合作与沟通能力,能够有效推动团队高效协作。

2.SRE
岗位要求:
1.本科及以上学历,计算机或相关专业,至少 3 年以上应用运维实战经验
2.熟悉脚本语言 #Python#Shell / #go 等脚本语言的一种并有相关开发经验
3.具有云基础资源工具实战经验,如 terraform 管理云资源,减少手动运维操作,提高运维效率 [要求必须有实际工作经验]
4.具有 CICD 发布平台管理和维护经验,spug/argocd/zadig 其一或更多
5.具有监控报警系统 prometheus 技术栈管理和维护经验
6.具有日志平台 elk 及周边技术的管理和维护经验
7.具有常用中间件的管理和维护经验,如 nginx/消息队列软件/apollo 等配置中心/xxl-job-admin 等
8.有数据库管理和维护经验,mysql/redis/mongo 等常见数据库
9.容器和 K8S 技术知识扎实,有 K8S 实践经验,深入理解 K8S 的架构和设计,具有丰富稳定性工作经验,对 K8S 高可用架构、监控与可观测性、容量治理、变更管控、故障应急等一定的理解
10.熟悉 AWS 相关的信息安全基础知识,参与过合规性检查、风险评估、渗透测试、安全审计等运维项目

3.Flutter (原生安卓)
岗位职责:
1.使用 Flutter 进行移动应用研发,能够独立完成 Android 应用的开发工作,熟练使用各种 UI 组件并进行 UI 开发。
2.负责基于 Flutter 进行移动 app 应用开发,需熟练掌握原生 Android APP 开发技术。
3.优化 Flutter 框架和业务的性能体验,持续探索并改善跨平台技术的效率、性能、安全性、稳定性和可扩展性。
4.负责 Flutter 框架和业务的性能体验优化,不断探索并持续改善跨平台技术的效率、性能、安全性、稳定性和可扩展性。

任职要求:
1.本科及以上学历,计算机、通信或相关专业背景。
2.熟练掌握 Flutter 框架、Dart 语言,熟练使用各种布局和动画。
3.至少三年以上 Android App 开发经验,熟悉平台特性。
4.具备扎实的编程基础和良好的代码风格,能独立分析和解决问题。
5.熟悉 MVC 、MVP 、MVVM 架构模式,熟悉常用的设计模式。
6.对 Flutter 架构、引擎和 UI 渲染有深入的理解,熟练使用 Flutter 各种 UI 组件和动画组件。
7.对 Flutter 和原生(Android)性能优化有深入思考和实际经验。

地点:深圳 (坐班)
期望你 5-10 年工作经验、第一学历全日制本科及以上学历、不强制要求 web3 行业经验!但希望你要么名校要么有大厂经历 有 web3 经验优先会考虑~

感兴趣的朋友私聊哈
联系:17816198874 (备注:岗位)