自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(264)
  • 收藏
  • 关注

转载 电脑用GoLand太卡,记录下自己把VsCode定制成Go IDE的步骤和过程

同学们,不知道你们有多少人IDE是用VsCode的,我说说我吧,我一直都是用的JetBrains家的全家桶,GoLand写Go项目、IDEA写Java项目。一开始是全用IDEA,后来发现这玩意项目开多了是真占内存,就退而求其次变成了写Go的时候用GoLand。无奈我最近发现公司给我配的这个电脑,今年是越来越不行,GoLand开多了也卡,那就只好研究研究怎么让VsCode变成Go的IDE吧,其实我也...

2023-11-13 08:01:35 179

转载 一个文档把Go语言所有核心知识点撸全了,太太太强了!(后附视频)

Go是一种大型项目设计的编程语言,为当前的云计算时代开发了一批“杀手级”应用,包括我们熟悉的Docker、Kubernetes、Prometheus等。虽然Go语言本身的语法并不复杂,入门比较容易,但它所依赖的基础知识一点也不少,像算法、数据结构、线程、数据库、设计模式等,一个也不能放过。那么今天就为那些对Go感兴趣的热血码农分享一份Go语言中文文档和一套Go语言学习视频。文档+视频,双管齐下。G...

2023-06-26 08:02:49 751

转载 Go1.21 速览:新内置函数 clear、min、max 和新标准库包 cmp!

大家好,我是煎鱼。前面给大家分享了 Go1.21 正式不支持 macOS 10.13 和 10.14 的支持。吓得我赶紧把我的 2017 款的老爷机从 10.14 升成 13.4。感觉 mbp 已经变成了暖宝宝。????今天给大家分享的是 Go 1.21 中的两个双新增项,分别是新的 3 个内置方法和新的标准库包。新内置函数本次新版本新增的内置函数分别是:clear、min、max,面向不同的场景,函数...

2023-06-25 08:02:26 564

转载 这波 Go 八股文资料,绝了!

最近“2022五大高薪编程语言”排行榜新鲜出炉,由Techgig发布,该排名从职业建议的角度,列出了今年收入最高的编程语言,Go位列第3,平均薪资30-213万,仅次于Kotlin和SQL。随着国内Go环境的逐步成熟,企业应用范围越来越广,主动学习Go的人也越来越多,希望通过Go弯道超车。对于有语言基础的人来说,Go入门比较容易,大部分程序员基本上用一周的时间也就大致熟悉了。但只做到熟悉就想赢得面...

2023-06-13 08:02:56 282 2

转载 合集|用 Go 语言实现 23 种设计模式

今天是咱们用Go学设计模式系列的最后一期,整个系列中我带着大家一起学习了经典的23种设计模式用Go语言如何来实现,以及它们在日常工作开发中的应用场景。我看了一下发文记录,从2022年7月18更新第一篇观察者模式,到5月22号发布了最后一种设计模式--中介者模式,一共历时10个月,发布了23篇文章。从最一开始的不准备整理成系列写到哪算哪,到中期形成自己的写作风格,有目标的去学习整理再发布,对自己来说...

2023-06-12 08:02:55 1200

转载 Go终于出八股文了,普天同庆!

最近“2022五大高薪编程语言”排行榜新鲜出炉,由Techgig发布,该排名从职业建议的角度,列出了今年收入最高的编程语言,Go位列第3,平均薪资30-213万,仅次于Kotlin和SQL。随着国内Go环境的逐步成熟,企业应用范围越来越广,主动学习Go的人也越来越多,希望通过Go弯道超车。对于有语言基础的人来说,Go入门比较容易,大部分程序员基本上用一周的时间也就大致熟悉了。但只做到熟悉就想赢得面...

2023-05-24 08:02:07 243 1

转载 从原理到应用,人人都懂的 ChatGPT 指南

“如何充分发挥ChatGPT潜能,成为了众多企业关注的焦点。但是,这种变化对员工来说未必是好事情。IBM计划用AI替代7800个工作岗位,游戏公司使用MidJourney削减原画师人数......此类新闻屡见不鲜。理解并应用这项新技术,对于职场人来说重要性与日俱增。”01—GPT模型原理理解原理是有效应用的第一步。ChatGPT是基于GPT模型的AI聊天产品,后文均简称为GPT。从技术上看,GPT...

2023-05-23 08:01:29 613

转载 Go 细节篇-内存回收又踩坑了

坚持思考,就会很酷背景提要分享一个 GC 相关的踩坑实践。公司线上某组件内存资源泄漏,偶发 oom 。通过 Go 的 pprof 排查,很快速定位到泄漏的数据结构 A ,结构 A 的相关资源是通过 Go 的 Finalizer 机制来释放的。但诡异的来了,对照着代码审视了多次之后,大家一致断定,这段代码绝对没有泄漏的问题。但是,事实胜于雄辩,现实就是泄漏就在此处。想不通。。。几天之后,问题的转机...

2023-05-22 08:01:58 142

转载 ChatGPT 有什么新机会?坦率来讲,你没机会!

4月3日晚上,得到直播间邀请到了计算机科学家,自然语言模型专家吴军,就人工智能和ChatGPT等当下热议的话题展开了一次直播。在直播中,吴军老师从历史的角度,带着大家一起回顾 ChatGPT 从诞生到发展的历史,你会发现,保持理智,认真做好自己的工作,就是对抗不断涌现的危机和浪潮的最佳解决方案。菜刀希望各位读者能保持自我判断力。不要过度焦虑,最重要的是,别轻易沦为了别人的韭菜Q1:ChatGPT...

2023-04-10 08:01:47 231

转载 2023 年初 Go 后端社招面经(字节、米哈游、富途、猿辅导)

目录背景面试准备面试字节跳动米哈游富途牛牛猿辅导总结一些推荐1. 背景距离上一次面试[1]已经过去快 3 年了,又碰上 2022 年互联网行业大动荡,很多企业都做出了裁员决定。身为互联网人要时刻关注自身成长,所以会对 “跟面试官切磋” 这种事情比较感兴趣,其实也是一种打探行情的手段:3 年间自己的技术是线性成长、指数成长还是对数成长,跟同龄人相比如何?当前求职是买方市场还是卖方市场?因此收集这两个...

2023-03-27 08:01:09 2455

转载 Go设计模式--享元模式,节省内存的好帮手

享元模式是一种结构型设计模式, 它的核心思想是通过共享多个对象所共有的相同状态,从而有效的支持在有限的内存中载入大量细粒度的对象。这里着重介绍一下享元这个名词,享元可以理解为可复用的对象,即可以是对象级别的复用,也可以是对象的字段进行复用(把可复用的字段单独提炼成一个更精细的对象)。享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象,不可变对象指的是初始化之后,对象的状态不会改变了,也...

2023-03-23 08:01:00 108

转载 或许它,可以帮你彻底掌握 Go 设计模式

大家好,我是菜刀。设计模式是经验的总结,是经过沉淀的最佳实践。设计模式的核心在于代码重用,提高代码的可扩展性和可维护性。熟练掌握设计模式,能够让我们更好地写出高质量代码。今天菜刀给大家推荐一本新书《Go 语言设计模式》,该书基于 Go 特性讲解了常见的各类设计模式。因为是示例代码均由 Go 语言撰写,也更易于 Gopher 学习和掌握。感兴趣的读者一定不要错过(文末有送书活动哦)。【内容概览】1....

2023-03-21 08:01:04 77

转载 高端的 Go 进阶往往采用最朴素的学习方式

作为一名程序员,资源搜索能力自然不差。但是,网上搜到的学习资源总是良莠不齐,我们往往会花费大量时间来筛选有质量的文章。今天菜刀给大家介绍几位高质量的 Go 语言博主,他们的文章有趣又硬核,看完不禁大呼过瘾,强烈推荐关注一波。小白debug 号主小白,一个从游戏服务端开发转互联网后端开发的打工人。擅长 golang/网络 相关领域,有时硬核图解+分析源码,有时骚话连篇!分享的一系列动图图解的文章非常...

2023-03-14 08:02:00 62

原创 你是否因使用姿势不当,而在 WaitGroup 栽了跟头?

在 Go 中,sync 包下的 WaitGroup 能有助于我们控制协程之间的同步。当需要等待一组协程都执行完各自任务后,才能继续后续逻辑。这种场景,就非常适合使用它。但是,在使用 WaitGroup 的过程中,你可能会犯错误,下文我们将通过示例逐步探讨。任务示例初始任务假设我们有以下任务 woker,它执行的任务是将参数 msg 打印出来。funcworker(msgstring){f...

2023-03-13 08:01:49 98

转载 一起看看 Go1.20 新特性

大家好,我是煎鱼。最近 Go1.20 在 2 月初已经正式发布,来的挺早的,以往都是拖到月底的,我翻了好几篇,发现最后还是做了不少功能取舍,被迫放了某些新特性(例如:arena 等)的鸽子!怀疑 Go 团队 2 月份是有什么事要干,或者打算休假?又或是担心裁员影响工作交接?今天快速温习与我们关联性多些的新特性,看看升不升 1.20。编译速度提高之前 Go1.18 正式发布了泛型,有欢喜也有忧。这虽...

2023-03-03 08:02:00 660

转载 Go 设计模式|项目依赖耦合度太高?可以用适配器做下优化

大家好,这里是每周都在陪你进步的网管~!今天介绍一个在我们在开发做项目时,经常会用到的设计模式—适配器模式。适配器模式(Adapter Pattern)又叫作变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。我们用UML类图看一下...

2023-03-01 08:01:15 115

转载 Go 语言实现的可读性更高的并发神库

前言哈喽,大家好,我是asong;前几天逛github发现了一个有趣的并发库-conc,其目标是:更难出现goroutine泄漏处理panic更友好并发代码可读性高从简介上看主要封装功能如下:对waitGroup进行封装,避免了产生大量重复代码,并且也封装recover,安全性更高提供panics.Catcher封装recover逻辑,统一捕获panic,打印调用栈一些信息提供一个并发执行任务的w...

2023-02-28 08:01:37 132

转载 Go 程序里 if else 分支太多?试着用策略模式治理一下吧

本次跟大家分享的是策略模式,是一个可以减少我们在程序流程里不停堆叠 if else 的一个好办法,大家一起学一下吧。大家好,我是每周在这里陪你一起进步的网管。上篇文章我给大家分享了设计模式中的模版模式,给大家讲了用模版模式在项目开发时提炼流程、减少重复开发的技巧。同时,在上一篇文章我也分享了我总结的一个暴论,那就是“模板、策略和职责链三个设计模式是解决业务系统流程复杂多变这个痛点的利器”。今天我们...

2023-01-06 08:01:14 184

转载 Go Modules 知识点总结

前言哈喽,大家好,我是asong。一般编程语言都会提供依赖库管理工具,例如python的pip、node.js的npm,java的maven,rust的cargo,Go语言也有提供自己的依赖库管理工具,Go语言在1.11提出了Go mod,每次版本或多或少都会对go.mod进行改进优化,go mod也越来越好,当前大多数公司都使用go mod来管理依赖库,所以本文我们一起来入门go mod(参考资...

2023-01-05 08:01:48 260

转载 Go1.20 一次打破 Go1 兼容性承诺的真实案例

大家好,我是煎鱼。最近因为临近新版本发布节点,我在看 Go1.20 的新特性《spec: disallow anonymous interface cycles[1]》,发现了一个比较骚的操作...以前我都没想到可以这么用,还有点意思,分享给大家。在 Go 规范中是允许将接口类型(interface{})内嵌到其他声明的接口当中的,也就是著名的套娃神器:组合。套娃接口类型Go 标准库中比较经典的例...

2022-12-29 08:01:36 687

转载 推荐一位十年开发经验的 Go 大佬

大家好,我是网管,公众号「网管叨bi叨」的号主,我本人是一名资深的开发,带过二三十人的团队,后来嫌带团队太累,选择主卷技术,反正钱差不多,干嘛不让自己轻松点。在参加工作这小十年间即在初创公司拿过股权也混过大厂,也是因为规模的不同,技术栈从PHP到Java再到Go我都经历过,在这几门语言怎么融汇贯通的方面还是挺经验丰富的,如果你也有换语言的疑惑可以关注下我的内容。18 年去新公司后,因为公司业务项目...

2022-12-21 08:01:09 133

转载 一个 Go 语言实现的流量回放工具

前言哈喽,大家好,我是asong。今天给大家推荐一款使用Go语言编写的流量回放工具 --goreplay;工作中你一定遇到过需要在服务器上抓包的场景,有了这个工具就可以助你一臂之力,goreplay的功能十分强大,支持流量的放大、缩小,并且集成了ElasticSearch,将流量存入ES进行实时分析;废话不多,我们接下来来看一看这个工具;goreplay介绍与安装项目地址:https://git...

2022-12-20 08:01:03 494

转载 Go 大佬良心发现,愿意给 map 加清除了?

大家好,我是煎鱼。一个东西来来回回的讨论,关了又开,关了后建新的,新的被 ban 了,又发现新的论据,再打开新的。这在职场工作中很常见,在 Go 的提案讨论中,也出现了...今天要分享的是 Go map 在 NaN 上的一个争议和可能即将出现的 API 增加。背景和考题NaN 是什么在计算机科学中,有一个神奇的值,叫做:NaN(Not a Number,非数)。它是数值数据类型的一类值,表示未定义...

2022-12-09 08:01:33 103

转载 用Go学设计模式-提炼流程,减少重复开发就靠它了!

大家好,我是网管,今天继续来给大家更新设计模式系列的文章,之前已经把四种建造型的设计模式更新齐全啦,没有看过的小伙伴可以通过点击上面和文章尾部的系列合集链接,进行查看。从今天开始未来的三篇设计模式系列文章,我们学的设计模式在项目开发中应用率非常高,尤其是应对业务系统的重复开发率高、流程无兜底策略、产品需求无序扩展这几个痛点上非常有用。那在这里我先抛出一个我自己总结的暴论:“模板、策略和职责链三个设...

2022-12-08 08:01:52 110

转载 分享一份 Go 语言编程笔记

在当今流行的编程语言中,Go 语言独树一帜,因为其简单易学、性能强劲且原生支持并发的特点,深受开发者的青睐。Stack Overflow 2022 的调查显示,同等工作年限下,Go 的年薪要远远高于传统语言使用者。图源Stack Overflow 2022今天给大家分享一份Go语言资料包,包括245页的Go语言编程文档和Go思维导图。由于内容过多,在此只以截图展示部分内容,详细完整版的文档请见文末...

2022-12-07 08:01:15 110

转载 面试官:net/http 库知道吗?能说说优缺点吗?

前言哈喽,大家后,我是asong;这几天看了一下Go语言标准库net/http的源码,所以就来分享一下我的学习心得;为什么会突然想看http标准库呢?因为在面试的时候面试官问我你知道Go语言的net/http库吗?他有什么有缺点吗?因为我没有看过这部分源码,所以一首凉凉送给我;废话不多说,接下来请跟着我的脚步我们一起探索net/http;本文代码基于:Go1.19.3net/http库的一个小de...

2022-12-06 08:01:14 153

原创 Go 语言代码风格规范-指南篇

每门开发语言都会有其特有的风格规范(亦或指南),开发者遵循规范能带来显著收益,有效促进团队协作、减少 bug 错误、降低维护成本等。Google 开源的 Google Style Guides (https://google.github.io/styleguide/)为多种编程语言提供了风格规范,包括 C++、Java、Python、JavaScript 等。在 2022 年 11 月,Go 语...

2022-12-05 08:01:11 224

转载 2022 Go语言八股背诵版

不知道你发现没,国内外 Go 的环境都越来越好了,Go 背靠 Google 公司,社区活跃,还有 Docker、Kubernetes 这样的杀手级应用,已然成为云计算时代的首选编程语言。字节Go 是主力语言,腾讯 Go已超越C++,成为最热门的编程语言,华为、百度、小米、京东等很多公司都在积极转向 Go 语言,这促成了 Go 在招聘市场的火爆。岗位多:连续 2 年位居需求技能榜 No1,掌握 ...

2022-12-01 08:01:01 600

转载 动图图解 | UDP就一定比TCP快吗?

话说,UDP比TCP快吗?相信就算不是八股文老手,也会下意识的脱口而出:"是"。这要追问为什么,估计大家也能说出个大概。但这也让人好奇,用UDP就一定比用TCP快吗?什么情况下用UDP会比用TCP慢?我们今天就来聊下这个话题。使用socket进行数据传输作为一个程序员,假设我们需要在A电脑的进程发一段数据到B电脑的进程,我们一般会在代码里使用socket进行编程。socket就像是一个电话或者邮箱...

2022-11-30 08:01:59 91

原创 Go 语言代码风格规范-概述篇

每门开发语言都会有其特有的风格规范(亦或指南),开发者遵循规范能带来显著收益,有效促进团队协作、减少 bug 错误、降低维护成本等。Google 开源的 Google Style Guides (https://google.github.io/styleguide/)为多种编程语言提供了风格规范,包括 C++、Java、Python、JavaScript 等。在 2022 年 11 月,Go 语...

2022-11-28 08:01:34 117

转载 Go 十年了,终于想起要统一 log 库了!

大家好,我是煎鱼。在日常工作中,打日志是很常见的动作。毕竟不打日志,从内部来讲,一旦出问题,定位、排查都会变的非常困难。谁也不想大半夜在那靠猜解决问题。在其他方面,对日志的存储的内容、时长、安全均有不同程度的合规要求,应对客户诉求和提单上门的事件。日志好不好用,就成了重要的诉求了。标准库 log 很痛思考一个问题:平时你在写 Go 工程时,是否很少直接使用官方标准库 log?在正式项目中,大多是优...

2022-11-17 08:02:00 127

转载 微服务配置中心, 这个方案 Go 里用起来不输 SpringCloud

微服务架构设计模式里有一条讲到,要设计可配置的服务。把服务从单体架构细分成微服务后,所有配置属性都集中存储在一个位置,更易于管理。这个集中存储管理配置的地方,就是配置中心。使用配置中心还有一个好处就是,往往都支持应用配置的热更新,这样就不需要像修改本地配置那样进行发版部署了。但是这么好的事儿就没有缺点了吗?当然有,除非有基础设施支持,否则它需要额外的人力进行设计和运维。不过好在有各种开源框架比如 ...

2022-11-15 08:01:47 123

转载 用 Go interface{} 等于什么也没说

大家好,我是煎鱼。如果说在 Go 里要有一句与 interface{} 相关,你会想到什么?是万物皆要定义 interface,否则没法抽象?Go 谚语中认可的是:"interface{} says nothing",也就是 interface{} 什么也没说。这指的又什么,太黑话了吧...今天就煎鱼和大家一起学习。接口类型无自描述interface{} 的第一种用法,那就是变量的数据类型声明。结...

2022-11-11 08:01:21 44

原创 这些最常用的 Go CLI 命令,新手 Gopher 应该掌握

本文将介绍一些最基本的 Go 命令行命令。如果你刚接触 Go 语言,那你有必要记住它们,因为这些命令是 Go 开发者日常工作中所必备的。Go version开始 Go 项目前,我们应该确保开发机上已经安装好了 Go 编译器。这可以通过 https://go.dev/doc/install 进行下载安装,如果有多版本安装需求可以参考文章简洁的 Go 多版本管理机制。通过执行以下命令可以查看安装的 G...

2022-11-07 08:01:29 186

转载 Go开源库、大项目的公共包,是这么用建造者模式的

建造者模式,也有翻译成生成器模式的,大家看到后知道他们是一个东西,都是Builer Pattern翻译过来的就行。它是一种对象构建模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。那么什么情况下适合使用建造模式呢?当要构建的对象很大并且需要多个步骤时,使用构建器模式,有助于减小构造函数的大小。我们先来看下其他语言里的 Builder,再看看 Go 怎么使用,进行个对...

2022-10-19 08:01:35 86

转载 Go 程序太大了,能要个延迟初始化不?

大家好,我是煎鱼。在公司的不断发展中,一开始大多是大单体,改造慢了,一个仓库会有使用十几年的情况,仓库的规模基本是不断增大的过程。影响之一就是会应用程序打包后的体积越来越大,不知道被用哪里去了...今天要探讨的提案《proposal: language: lazy init imports to possibly import without side effects[1]》,就与此有关。提案背景...

2022-10-17 08:01:32 56

转载 工厂模式有三个Level,你能用Go写到第几层?

设计模式中的工厂模式是我们编写代码时常用的一种建造型模式,用于创建指定类的实例。在不使用设计模式的时候,我们是怎么创建类的实例的呢?别多想,这个问题没坑,就是我们写代码时直接用 new 关键字,直接创建实例。比如 Java 语言里是通过 new 关键字直接调用类的构造方法,完成实例的创建。classPerson{}Personp1=newPerson();而像 Go 语言这类,虽...

2022-09-16 08:01:44 80

转载 让 Go 零值变得有用

大家好,我是煎鱼。前文给大家分享了《10+ 条 Go 官方谚语,你知道几条?》,今天进一步讲讲第 5 条谚语 Make the zero value useful(让零值变得有用),看看里面讲的是什么意思。背景Go 语言中有一个有些特殊的概念,叫做零值。许多转语言的同学经常会弄混淆,一开始会不适应。代码如下:funcmain(){variintvarffloat64var...

2022-09-13 09:03:48 89

转载 拒绝 Go 代码臃肿,其实在这几块可以用下观察者模式

今天学习一下用 Go 实现观察者模式,观察者模式主要是用来实现事件驱动编程。事件驱动编程的应用还是挺广的,除了我们都知道的能够用来解耦:用户修改密码后,给用户发短信进行风险提示之类的典型场景,在微服务架构实现最终一致性、实现事件源(A + ES)这些都会用到。我们先来简单学习一下用 Go 实现观察者设计模式,给怎么实现事件驱动编程、事件源这些模式做个铺垫。主要也是我也老没看设计模式了,一起再复习一...

2022-09-02 08:01:13 88

转载 搞清楚 Go Mod 的版本和伪版本,下次别乱用了

关于 Go 项目的依赖管理的日常使用以及遇到的问题怎么解决,俺已经写过两篇文章了。项目使用GoModules管理依赖的方法和经验总结Go Modules怎么管理私有依赖今天再跟大家唠一下 Go Module 中软件包的版本和伪版本的内容,因为这是一个理想很丰满、现实很骨感的故事。Module 的版本关于 Go Module 依赖包的软件版本,这块知识就很中规中矩啦,大部分资料里也都有提及。Go M...

2022-08-19 08:01:15 464

空空如也

空空如也

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

TA关注的人

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