自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

perfume

记录学习的点点滴滴

  • 博客(180)
  • 资源 (4)
  • 收藏
  • 关注

原创 ChatGPT API重大升级 - 必知必会

文章和示例代码开源在GitHub:GPT实战教程,可以看到所有主流的开源LLM。公众号:coding进阶。关注公众号可以获取最新GPT实战内容。。无忌。

2023-06-28 21:12:08 523

原创 baichuan-7B: 开源可商用支持中英文的最好大模型

在同尺寸模型中baichuan-7B达到了目前SOTA的水平。baichuan-7B使用自有的中英文双语语料进行训练,在中文上进行优化,在C-Eval达到SOTA水平。不同于LLaMA完全禁止商业使用,baichuan-7B使用更宽松的开源协议,允许用于商业目的。文章和示例代码开源在GitHub:GPT实战教程,了解所有主流的开源LLM。公众号:coding进阶。关注公众号可以获取最新GPT实战内容。。无忌。

2023-06-17 13:19:54 895

原创 轩辕:首个千亿级中文金融对话模型

轩辕是国内首个开源的千亿级中文对话大模型,同时也是首个针对中文金融领域优化的千亿级开源对话大模型,不能商用。文章和示例代码开源在GitHub:GPT实战教程,可以看到所有主流的开源LLM。公众号:coding进阶。关注公众号可以获取最新GPT实战内容。。无忌。

2023-05-28 11:35:43 817

原创 逼近GPT-4!BLOOMChat: 开源可商用支持多语言的大语言模型

BLOOMChat是第一个完全开源、参数超千亿、专门针对多语言支持的聊天LLM。文章和示例代码开源在GitHub:GPT实战教程,可以看到所有主流的开源LLM。公众号:coding进阶。关注公众号可以获取最新GPT实战内容。。无忌。

2023-05-21 15:48:49 1590

原创 一文汇总开源大语言模型,人人都可以拥有自己的ChatGPT

OpenAI发布的ChatGPT火爆全球以来,全球互联网大厂陆续跟进,纷纷宣布了自家的Chat产品,如Google的Bard,百度的文心一言,阿里的通义千问等等。这些Chat产品背后都是依赖的大语言模型(Large Language Model)。直接使用商业化产品,前提是商业化产品支持对模型做fine-tune(微调)。比如OpenAI就支持对它的基础模型做fine-tune来实现个性化的模型。使用开源的大语言模型,对开源模型做fine-tune来实现垂直领域的Chat产品。

2023-04-16 19:35:51 3219

原创 一文读懂Go 1.20引入的PGO性能优化

Go 1.20版本引入了PGO来让编译器对程序做性能优化。先得到一个profiling文件。使用go build编译时开启PGO选项,通过profiling文件来指导编译器对程序做性能优化。在生产环境里,我们可以收集近段时间的profiling数据,然后通过PGO去优化程序,以提升系统处理性能。更多关于PGO的使用说明和最佳实践可以参考。。

2023-02-26 11:12:16 1373

原创 Go 1.21的2个语言变化

Go 1.20已经于今年2月份发布,Go 1.21也不远了,我们来先堵为快,看看Go 1.21版本里几个有趣的变化。对于slice,调用clear函数,会保持原slice的长度不变,把里面元素的值修改为slice元素类型的零值。Go 1.21会新增一个clear函数,用于清理map和slice里的元素。对于map,调用clear函数,会直接把map里的元素清空,成为一个empty map。领取资料礼包,这份资料会不定期更新,加入我觉得有价值的资料。」,和同行一起交流学习,答疑解惑。文末附送2道面试题。

2023-02-18 14:22:20 1874

原创 Go 1.20正式发布!

Go官方团队在2023.02.01发布了Go 1.20的正式release版本。去年2022.12.08 Go官方团队就已经发布了Go 1.20 rc1(release candidate)版本,此前我已经对Go 1.20的版本升级内容作了详细的讲解,详情如下。

2023-02-04 12:30:46 2872

原创 Go语言2023年开发者调研来了!文末附上2022年精彩文章合集

例如,Go语言的依赖管理(dependency management)、漏洞扫描(vulnerability scanning)和泛型(generics)等重要设计都来源于调研结果。我为大家整理了一份后端开发学习资料礼包,包含编程语言入门到进阶知识(Go、C++、Python)、后端开发技术栈、面试题等。从2022年开始,为了减轻大家填写问卷调查的负担以及更好地提升调研效果,调研频率从一年一次变为一年两次。过去7年,Go团队每年都会对Go开发者做调研。开发者的调研反馈帮助改变了Go语言的生态。

2023-01-22 21:49:37 1028

原创 Go常见错误第16篇:any的常见错误和最佳实践

这是Go常见错误系列的第16篇:any的常见错误和最佳实践。素材来源于Go布道者,现Docker公司资深工程师。Go常见错误源代码,欢迎大家关注公众号,及时获取本系列最新更新。如果具体的使用场景的确是适合任意类型,那可以使用any。但通常而言,为了代码的易读性和可维护性,我们应该避免过度抽象我们的代码。

2023-01-08 20:41:04 963

原创 Go 1.20要来了,看看都有哪些变化-终结篇

Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。让我们先睹为快,看看Go 1.20给我们带来了哪些变化。这是Go 1.20版本更新内容详解的第3篇,欢迎大家关注公众号,及时获取本系列最新更新。下一篇会介绍Go 1.20在核心库方面的优化工作,有一些内容值得学习,欢迎大家保持关注。

2022-12-31 15:49:29 1208 3

原创 Go 1.20要来了,看看都有哪些变化-第3篇

Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。让我们先睹为快,看看Go 1.20给我们带来了哪些变化。这是Go 1.20版本更新内容详解的第3篇,欢迎大家关注公众号,及时获取本系列最新更新。下一篇会介绍Go 1.20在核心库方面的优化工作,有一些内容值得学习,欢迎大家保持关注。

2022-12-25 14:53:57 853 1

原创 Go 1.20要来了,看看都有哪些变化-第2篇

Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。让我们先睹为快,看看Go 1.20给我们带来了哪些变化。这是Go 1.20版本更新内容详解的第2篇,欢迎大家关注公众号,及时获取本系列最新更新。Go 1.20版本升级内容第1篇。下一篇会介绍Go 1.20在运行时、编译器、汇编器、链接器和核心库的优化工作,有一些内容值得学习,欢迎大家保持关注。

2022-12-17 22:36:34 689

原创 Go 1.20要来了,看看都有哪些变化-第1篇

Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。让我们先睹为快,看看Go 1.20给我们带来了哪些变化。(文末有彩蛋!)这是Go 1.20版本更新内容详解的第1篇,欢迎大家关注公众号,及时获取本系列最新更新。下一篇会介绍Go 1.20在Go Tool工具链、运行时、编译器、汇编器、链接器和核心库的优化工作,有一些内容值得学习,欢迎大家保持关注。

2022-12-13 12:13:26 2915

原创 Xshell连接如何记住用户秘钥文件

服务器ssh登录有2种常用的方式:管理比较严格的公司,会按照方式2去设置服务器登录,禁止用方式1。因为方式1的密码容易泄露,容易出现大家共用相同的用户名和密码,相对方式2来说,安全性没那么好。初次按照公钥认证来登录服务器的用户,可能发现每次登录服务器都要选择private key文件,不太方便。那怎么让Xshell记住你的私钥,不用每次登录服务器都要手动选择私钥文件呢?步骤1:在登录提示框里,用户秘钥这一栏,选择浏览->用户秘钥步骤2:在用户秘钥的弹窗里,选择导入秘钥。步骤4:如果该秘钥生成的时候设置了密

2022-12-04 15:00:17 1418

原创 Google重磅发布Go语言编码规范

Google官方在2022.11.23重磅发布了Go语言编码规范。这个编码规范源自于Google内部的Go项目,是Google的开发人员要遵守的代码规范。在Go语言诞生后,全世界的Go开发者其实一直期盼着能有官方的编码规范,但迟迟未能如愿。有些技术团队根据自己原来的编程语言背景,直接照搬过来,用于公司内部的Go语言编码规范。尤其是写Java的,把Java的编程语言规范用于Go语言是非常不合适的。

2022-11-27 14:16:25 940 1

原创 Go常见错误第15篇:interface使用的常见错误和最佳实践

这是Go常见错误系列的第15篇:interface使用的常见错误和最佳实践。素材来源于Go布道者,现Docker公司资深工程师。Go常见错误源代码,欢迎大家关注公众号,及时获取本系列最新更新。interface是Go语言里一个核心功能,但是使用不当也会导致代码晦涩难懂。因此,不要在写代码的时候一上来就先写interface。要先按照没有interface的场景去写代码,如果最后发现使用interface真的可以带来好处再去使用interface。

2022-11-26 22:42:21 881

原创 Go语言开源13周年啦,看看负责人说了啥

不知不觉,Go语言已经开源13年了。日前,Go团队负责人Russ Cox在官方博客上发表了Go开源13年的感想。Russ首先回顾了2022年3月份发布的Go 1.18版本引入的工作区模式(Go Workspace)、模糊测试(Fuzzing)和泛型设计。接着介绍了Go 1.19版本引入的新优化、Go开发工具链、Go供应链安全以及其它重要的里程碑事件。本人针对Russ的原文做了一个翻译,以飨读者。

2022-11-12 23:22:38 334

原创 Go常见错误第14篇:过度使用getter和setter方法

这是Go常见错误系列的第14篇:过度使用getter和setter方法。素材来源于Go布道者,现Docker公司资深工程师。Go常见错误源代码,欢迎大家关注公众号,及时获取本系列最新更新。Java/C++等语言里常用的getter和setter,在Go语言里并不是惯例和规范。但是如果发现有上面讲到的需要使用到getter和setter的场景,那还是应该使用的,而不是完全不用。getter和setter方法命名参考上面提到的命名规范。

2022-11-06 13:55:09 581

原创 安装或卸载Anaconda后Windows自带的cmd命令行窗口会闪退

我为大家整理了一份后端开发学习资料礼包,包含编程语言入门到进阶知识(Go、C++、Python)、后端开发技术栈、面试题等。Anaconda初次安装或者重装后,如果打开Windows系统自带的cmd命令窗口,会马上闪退。修改界面里AutoRun的值为空或者删除AutoRun,按确定即可。领取资料礼包,这份资料会不定期更新,加入我觉得有价值的资料。解决方法是:以管理员权限打开PowerShell,然后输入。但是在我这里不生效,界面里就没有AutoRun。」,和同行一起交流学习,答疑解惑。

2022-11-03 21:53:03 1993 13

原创 Go常见错误系列的第13篇:init函数的常见错误和最佳实践

这是Go常见错误系列的第13篇:init函数的常见错误和最佳实践。素材来源于Go布道者,现Docker公司资深工程师。Go常见错误源代码,欢迎大家关注公众号,及时获取本系列最新更新。init函数要慎用,如果使用不当可能会带来问题,千万不要在代码里依赖同一package下不同.go文件init的执行顺序。init函数没有参数,没有返回值。如果加了参数或返回值,会编译报错。一个package下面的每个.go源文件都可以有自己的init函数。

2022-10-25 21:50:08 1580

原创 Go常见错误第12篇:冗余的嵌套代码

这是Go常见错误系列的第12篇:Go语言中冗余的嵌套代码,俗称箭头型代码。

2022-10-20 22:25:09 357

原创 Go常见错误第11篇:意外的变量隐藏(variable shadowing)

go语言的变量遮蔽,问题,解决方案和最佳实践

2022-10-09 19:11:18 476 1

原创 Docker技术PPT分享给大家

Docker技术诞生的前世今生,文末有开源代码和好文推荐,最通俗易懂的Docker介绍,5分钟快速掌握如何基于Docker部署Go应用

2022-10-02 10:16:17 1229

原创 Go Quiz: 从Go面试题看recover注意事项第1篇

面试题这是Go Quiz系列里关于recover的第1篇,主要考察recover函数在什么情况下可以捕获到panic。func main() {  fmt.Print("1 ")  defer recover()  fmt.Print("2 ")  var a []int  _ = a[0]  f

2022-09-17 09:42:26 196

原创 Go的全新漏洞检测工具govulncheck来了

前言Go安全团队在2022.09.06发布了全新的漏洞检测工具govulncheck,可以帮助我们发现Go程序里的安全漏洞。本文详细介绍该工具目前的现状以及接下来的功能规划。Go漏洞检测系统架构上图是Go安全团队对于Go代码漏洞检测的系统架构图。第1步,漏洞采集。Go安全团队会采集众多漏洞数据库,包括公开的漏洞数据库(例如National Vulnerability Database (NVD)[1]和 GitHub Advisory Database[2])、社区反馈的[Go package

2022-09-11 14:23:57 2009

原创 Go十大常见错误第10篇:Goroutine和循环变量一起使用的坑

前言这是Go十大常见错误系列的第10篇:Goroutine和循环变量一起使用的坑。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi[1]。本文涉及的源代码全部开源在:Go十大常见错误源代码[2],欢迎大家关注公众号,及时获取本系列最新更新。常见错误对于Go初学者,很容易犯的一个错误就是goroutine和循环变量结合在一起使用时,错误地使用了循环变量。比如下面这个例子:ints := []int{1, 2, 3}for&nbs

2022-09-08 21:59:15 1214 1

原创 Go十大常见错误第9篇:使用文件名称作为函数输入

前言这是Go十大常见错误系列的第9篇:使用文件名称作为函数输入。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi[1]。本文涉及的源代码全部开源在:Go十大常见错误源代码[2],欢迎大家关注公众号,及时获取本系列最新更新。问题场景一个常见错误是把文件名作为函数参数,在函数里读取文件内容。比如,我们要实现一个函数,用来统计指定文件里有多少空行,很多人最容易联想到的实现方式如下:func count(filename string) (in

2022-09-05 22:10:45 1176

原创 Go十大常见错误第8篇:并发编程中Context使用常见错误

前言这是Go十大常见错误系列的第8篇:并发编程中Context使用常见错误。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi[1]。本文涉及的源代码全部开源在:Go十大常见错误源代码[2],欢迎大家关注公众号,及时获取本系列最新更新。Context是什么Go语言标准库里有一个package叫context,该package里定义了context.Context[3]类型,在并发编程里非常有用,但是也经常被开发者误解。官方对Context的表述是:Package c

2022-09-04 12:29:54 1629

原创 Go十大常见错误第7篇:不使用-race选项做并发竞争检测

前言这是Go十大常见错误系列的第7篇:不使用-race选项做并发竞争检测。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi[1]。本文涉及的源代码全部开源在:Go十大常见错误源代码[2],欢迎大家关注公众号,及时获取本系列最新更新。背景并发编程里很容易遇到并发访问冲突的问题。Go语言里多个goroutine同时操作某个共享变量的时候,如果一个goroutine对该变量做写操作,其它goroutine做读操作,假设没有做好并发访问控制,就容易出现并发访问冲突,导致程序c

2022-08-26 22:39:50 450

原创 Go十大常见错误第6篇:slice初始化常犯的错误

前言这是Go十大常见错误系列的第6篇:slice初始化常犯的错误。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi。本文涉及的源代码全部开源在:Go十大常见错误源代码,欢迎大家关注公众号,及时获取本系列最新更新。场景假设我们知道要创建的slice的长度,你会怎么创建和初始化这个slice?比如我们定义了一个结构体叫Bar,现在要创建一个slice,里面的元素就是Bar类型,而且该slice的长度是已知的。方法1有的人可能这么来做,先定义slicevar&nbsp

2022-08-18 22:19:45 984

原创 Go十大常见错误第5篇:go语言Error管理

前言这是Go十大常见错误系列的第5篇:go语言Error管理。素材来源于Go布道者,现Docker公司资深工程师Teiva Harsanyi[1]。本文涉及的源代码全部开源在:Go十大常见错误源代码[2],欢迎大家关注公众号,及时获取本系列最新更新。场景Go语言在错误处理(error handling)机制上经常被诟病。在Go 1.13版本之前,Go标准库里只有一个用于构建error的errors.New函数,没有其它函数。pkg/errors包由于Go标准库里errors包的功能比较少,所以

2022-08-13 16:56:48 1519

原创 官方博文:Go 1.18发布啦

2022年3月15日,Go官方团队在官网上正式宣布了Go 1.18版本的发布。Go 1.18是Go语言诞生以来变化最大的版本,本人针对官方原文做了一个翻译,以飨读者。同时在本文最后,附上《Go泛型官方教程中文版本》以及本人整理的《一文读懂Go泛型设计和最佳实践》。

2022-03-18 19:09:52 648

原创 Go Quiz: 从Go面试题看锁的注意事项

Google工程师Valentin Deleplace出了2道关于锁的题目,拿出来和大家分享下。

2022-03-12 11:51:02 629

原创 官方教程:Go fuzzing模糊测试

Go 1.18在go工具链里引入了fuzzing模糊测试,可以发现Go代码里的漏洞或者bug,非常强大,学习起来

2022-02-27 14:11:23 2031

原创 Go Quiz: 从Go面试题看函数命名返回值的注意事项(超过80%的人都回答错了)

​Redhat的首席工程师、Prometheus开源项目MaintainerBartłomiej Płotka在Twitter上出了一道Go编程题,结果超过80%的人都回答错了。

2022-02-21 12:54:32 178

原创 Go语言中fmt.Println(true)的结果一定是true么?

背景Honeycomb的首席开发布道者Jessica在Twitter上发了一条状态:fmt.Println("What is truth?", true)can output:What is truth? false意思是下面代码的执行结果可能是What is truth? falsefmt.Println("What is truth?", true)大家可以先想想什么情况下会出现这样的结果。解析我们来看下面这段代码:// identifier.gop

2022-02-17 13:18:47 303

原创 Go Quiz: 从Go面试题看panic注意事项第1篇

这是Go Quiz系列里关于panic的第1篇,主要考察同一个goroutine在多次panic场景下recover的机制。

2022-02-07 15:06:05 253

原创 重大变化:Go 1.18将移除用于泛型的constraints包

重大变化:Go官方团队决定:将从Go 1.18正式版本中移除用于泛型的constraints包

2022-02-04 11:42:51 1245

原创 轻松一刻:Go 1.18 Beta 2发布,正式版推迟到3月

2022年1月31日,Go官方团队的Jeremy Faller和Steve Francia在Go官方博客网站上发表了一篇新文章,宣布Go官方正式推出了Go 1.18 Beta 2版本。本人针对Katie Hockman的原文做了一个翻译,以飨读者。时在本文最后,附上了对Go泛型官方教程的中文翻译,以及针对Go泛型的设计思想和最佳实践。原文翻译谷歌Go团队Katie Hockman2022.1.14我们很快就会发布Go 1.18版本,这个版本会引入一些新的概念。我们已经发布了2个官

2022-02-01 13:27:02 936

C++学习心得 编程经验

很好的讲解了容易被忽略的C++问题,是一本很好的电子书

2010-03-18

常用编程错误记录(编程错误总结及解决办法)

里面有多年的编程经验介绍,解决了很多易错误的编程思路和方法

2009-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除