自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轩脉刃的刀光剑影

工作生活中遇到的日常点滴记录,或许有技术笔记,或许有日常思考.

  • 博客(529)
  • 收藏
  • 关注

原创 hade增加对grpc的支持

hade框架增加了对grpc的支持,grpc本质上是一个rpc远程调用,使用protobuf作为数据传输格式,使用http2作为传输协议。hade框架依赖于grpc的go语言实现库: google.golang.org/grpc, 提供了如下命令行工具:hade grpc start 启动grpc服务hade grpc stop 停止grpc服务hade grpc restart 重启grpc服务...

2023-07-30 13:59:16 2045

原创 ffmpeg的函数调用知识点

av_dump_format 打印的内容是什么意思?av_dump_format 会打印出AVFormatContext的内容,打印的内容是什么意思?我们使用av_dump_format打印出如下信息:Input#0,mov,mp4,m4a,3gp,3g2,mj2,from'https://demo.com/BigBuckBunny.mp4':Metadata:major_...

2023-07-15 20:00:32 3087

原创 用googletest写cpp单测

框架概述Google Test(也称为 googletest)是由 Google 开发的 C++ 单元测试框架。它的首个版本是在2004年发布的,作为 Google 内部的测试框架使用。随后,Google Test 在开源社区中得到广泛应用,并在许多项目和组织中成为首选的 C++ 单元测试框架。Google Test 提供了丰富的断言函数和测试宏,使开发人员能够编写清晰、易读、易维护的单元测试。它...

2023-07-14 20:19:52 2156

原创 手把手带你阅读chatgpt接口

我们大多数人使用chatgpt,一般是直接使用网页版本的gpt对话框。但是实际上,openai提供了chatgpt开放平台的调用方式,这个方式,反而是我们目前碰到的各种应用中,最常用的方式。我们可以使用http api的方式来调用chatgpt。这篇文章,我们就来详细解析一下通过api来调用openai的开放平台的调用。并且最后通过对api的理解,来解构下目前最火的autogpt的实现原理。接口地...

2023-07-11 09:00:36 8472

原创 理解ffmpeg

ffmpeg是一个完整的、跨平台的音频和视频录制、转换和流媒体解决方案。它的官网:https://ffmpeg.org/这里有一份中文的文档:https://ffmpeg.p2hp.com/ffmpeg提供了什么?在centos上,可以通过yum进行安装:yuminstallepel-releaserpm-Uvhhttps://download1.rpmfusion.org/free/...

2023-07-07 21:35:47 538

原创 在GPT帮助下,我为hade增加了model自动生成api的功能

前言:我为hade增加了model自动生成api的功能,这篇记录下我完成这个功能过程中是如何使用GPT来做协助的。hade的v1.0.6版本发布,增加根据model自动生成api的功能之前给hade增加过一个model gen的功能,就是配置好数据库的配置文件,自动生成数据表的gorm的模型文件。但是其实还可以更近一步,我可以生成model模型文件,那么我肯定就能生成这个model对应的api,当...

2023-03-19 08:25:20 286

原创 介绍我的mac上的五种GPT使用方式

数了一下,现在我的mac上已经有5种可以使用GPT对话的工具了。- openai官网 - new bing官网 - chat mac桌面- app goland gpt插件 - 控制台工具openai的官网就是最正常的入口,就是正常的登录访问。new bing是微软推出的,虽然听说有的人很难排队,但是昨天我用日本的vpn排队基本秒过。然后顺着提示下载了Microsoft Edge浏览器,在浏览器里...

2023-03-17 09:43:55 13096 1

原创 concurrent-map 和 sync.Map,我该选择哪个?

世上本没有烦恼,选择多了,便有了幸福的烦恼。你好,我是轩脉刃。官方的map并不是线程安全的,如果我们在多线程中并发对一个map进行读写操作,是会引发panic的。解决方案除了使用锁来对map进行保护外,还有两种方式:一,开源项目 concurrent-map 提供了可以用来做并发安全的map二,Go1.9之后,标准库提供了一个sync.Map这两种并发安全的map,我们应该怎么选择呢?在concu...

2023-02-21 07:41:19 222

原创 看完流浪地球2,这些功课你必须要补

昨天看了流浪地球2,里面的信息量太大了,回来补充了一些功课,这些知识,看完,才算对流浪地球2有了进一步了解。地球人的航天路径我们的太空航程是什么样子的呢?要从第二次世界大战开始。回形针计划:Operation Paperclip,是第二次世界大战末期,美国战略情报局把超过1600名原纳粹德国的科学家秘密引进到美国的一次行动。主要是获取美苏冷战和太空竞赛的优势。其中就有当年参与纳粹德国v2火箭研制专...

2023-01-26 21:08:26 706

原创 cgo调用c动态库实战

这篇从一个需求开始说起。这个需求也很简单,就是需要为某个硬件加密算法封装一个接口,接口的逻辑是传入唯一标识UID,能生成加密后的加密串。你好,我是轩脉刃。这篇从一个需求开始说起。这个需求也很简单,就是需要为某个硬件加密算法封装一个接口,接口的逻辑是传入唯一标识UID,能生成加密后的加密串。但是麻烦的是,这个加密算法是另外一个部门使用C开发的。而Web是Golang开发的。...

2022-06-09 12:00:17 2899 1

原创 Golang可重入锁的实现

项目中遇到了可重入锁的需求和实现,具体记录下。为什么需要可重入锁我们平时说的分布式锁,一般指的是在不同服务器上的多个线程中,只有一个线程能抢到一个锁,从而执行一个任务。而我们使用锁就是保证一个任务只能由一个线程来完成。所以我们一般是使用这样的三段式逻辑:Lock();DoJob();Unlock();但是由于我们的系统都是分布式的,这个锁一般不会只放在某个进程中,我们...

2022-05-25 10:00:45 1168

原创 MYSQL如何比对版本号字符串

mysql 数据库中存储了一个形如“2.7.6.526” 的版本号,现在要获取出小于某个版本号的数据,怎么做?你好,我是轩脉刃。这个就是昨天遇到的一个问题,数据库直接比对版本号,记录下查到的解决方法:SELECT*FROMdevice_tableWHERECONCAT(LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(a...

2022-05-17 08:07:49 650

转载 底层逻辑-看清这个世界的底牌

本篇是《底层逻辑-看清这个世界的底牌》的书摘。这本书的内容已经非常直白了。有一些观点还是和现有观点很冲突的。内容有一些鸡汤,也有一些刺耳,不过细想一下,好像世界还真是这么运转。谁才具备分配财富的能力?要看整个链条上,谁是真的不可替代的。有没有财富分配权,是完全不一样的。你没有财富分配权,你想分20元,就是贪心。而4拥有财富分配权,他想分20元,就是舍满取半。但是,4拥有分...

2022-05-15 23:03:05 913

原创 Golang中常用的代码优化点

写代码其实也有很多套路和经验,这篇介绍几个让golang代码更优雅的四个套路。大家好,我是轩脉刃。这篇想和大家聊一聊golang的常用代码写法。在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验。这些经验是代表你对一些问题,或者一类问题的思考和解决。处理一个问题的方法有很多,如果频繁遇到同样的场景和问题,我们会自己思考有没有更好的方式来解决...

2022-03-29 09:33:30 1718 1

原创 一种优雅的Golang的库插件注册加载机制

如何增加框架的扩展性,可能多少都会想到“插件”机制,本质上是可以把第三方开发库快速融入项目的方法。本文介绍的就是这么一种方法。你好,我是轩脉刃。最近看到一个项目的插件加载机制,非常赞。当然这里说的插件并不是指的golang原生的可以在buildmode中加载指定so文件的那种加载机制。而是软件设计上的「插件」。如果你的软件是一个框架,或者一个平台性产品,想要提升扩展性,即...

2022-03-28 09:18:57 860

原创 Redis的事件处理机制

Redis是单进程,单线程模型,与nginx的多进程不同,与golang的多协程也不同,“工作的工人”那么少,可那么为什么redis能这么快呢?epoll多路复用这里重点要说的就是redis的IO编程模型,首先了解下为什么要有多路复用呢?如果没有多路复用,一个线程只能监听一个端口的一个连接,这样这个效率比较低。当然我们有几种办法可以破除这个,一个是使用多线程模型,我们还是...

2022-03-24 09:38:21 250

原创 如何封装安全的go

在业务代码开发过程中,我们会有很大概率使用go语言的goroutine来开启一个新的goroutine执行另外一段业务,或者开启多个goroutine来并行执行多个业务逻辑。在业务代码开发...

2022-02-22 09:55:52 346

原创 潜意识之门

潜意识的世界有很多理论,这道门之后的世界,也是非常精彩的。从老婆的心理学书籍中抽出了这本《潜意识之门》,当作业余读物也读的有点意思。怎么说呢,我是相信意识世界的,从小到大都相信的。每个人都...

2022-02-16 22:51:09 584

原创 为hade增加model自动生成功能

大家好,我是轩脉刃。本文记录了使用gen项目实现了一个model自动生成命令的思路,其最终展示效果:https://github.com/gohade/hade/blob/main/doc...

2022-02-15 09:48:49 373

转载 像第一天那样去工作

虎年第一天上班的日子,新春假日归来,大家就和充满了满格电的电池一样。今天北京的天气稍稍升温了一些,没有春节的时候那么冷了。阳光透过层层的钢筋水泥的楼宇,漏到身上,变成淡淡的圆圆的摇曳的光晕...

2022-02-08 10:20:29 237

原创 叶落归根

2022年,奶奶86,我36。别人的年可能从农历春节才开始,而对于我,我的2022年应该从今天开始。参加完成奶奶的葬礼回京,感慨良多。奶奶今年86岁,在爷爷走了之后的2年,奶奶也就走了。爷...

2022-01-16 23:14:22 216

原创 golang切片的一些自问自答

关于go切片的四个问题和回答,想哪写哪的一篇。话说这也是2021年最后一篇了,下一篇该改签名了。image-20211229094736903你好,我是轩脉刃。这篇是关于go切片的一些问题...

2021-12-29 09:58:50 328

原创 Golang 数组的一些自问自答

基于Go-1.17。一些研究Go数组的自问自答,可以考虑作为面试题image-20211227100817481所有代码基于Go-1.17。一些研究Go数组的自问自答,可以考虑作为面试题。...

2021-12-27 10:11:09 172

原创 SSA:终于知道编译器偷摸做了哪些事

在go的源码和汇编码之间,其实编译器在你眼皮底下偷偷又做了不少事情,而ssa就是查看查看编译器优化行为的利器。你好,我是轩脉刃。在golang中,我们可以使用go tool compile...

2021-12-22 09:24:12 1206

原创 丈量你的代码,从cloc开始

如果我想统计我当前的项目有多少代码量?行数最高的代码文件有哪些?并且排除某些目录,怎么统计?要统计出注释多少行,和代码多少行?使用cloc就行。如果我想统计我当前的项目有多少代码量?行数最...

2021-12-19 10:13:51 463

原创 使用plantuml,业务交接就是这么简单

你好,我是轩脉刃。最近交接了一个业务,原本还是有挺复杂的业务逻辑的,但发现交接过来的项目大有文章,在项目代码中有一个docs文件夹,里面躺着若干个 puml 文件,这些puml文件把业务中...

2021-12-14 07:24:24 593

原创 collection库更新1.4.0版本

collection库一直在使用中,周末集合github上的反馈以及contributor的修改,更新了1.4.0版本。这个版本 https://github.com/jianfengye...

2021-12-12 22:34:38 1526

原创 谈创造力

国庆期间阅读《东坡传》和cctv的《苏东坡》六集记录片。对苏东坡其人的一生有了更深了解。苏东坡身上有非常多闪光点值得好好琢磨,其中最让我感慨的是,他能持续保持创造力。这点是非常厉害的,他的...

2021-10-10 07:55:07 100

原创 井上雄彦的追求

井上雄彦和他的灌篮高手日本漫画界最鼎盛的时期,出现的《灌篮高手》绝对是一个另类,日本一向盛行棒球,但当时能有人以篮球为题材编写漫画,也是一个大胆的尝试,事实上,井上在投稿的初期,是标榜其为...

2021-10-04 11:19:19 122

原创 go mod 能指定 1.xx.x 版本么?

这是一个小知识点,不过估计不是每个人都知道。你好,我是轩脉刃。这是一个小知识点,不过估计不是每个人都知道。一个读者在群里问到,我想要把 go.mod 中指定 go 版本的go 1.17修...

2021-09-23 09:57:33 290

原创 思考服务雪崩 case

今天在极客时间读者区有个人问了一个雪崩的问题,具体问题比较简单,就不说了。但是引发了我思考下服务雪崩的场景,想列一下会引发服务雪崩的 case。你好,我是轩脉刃。今天在极客时间读者区有个人...

2021-09-22 10:23:41 190

原创 设计一个回调要注意哪些事情

回调是我们在设计系统的时候经常会使用到的, A服务调用B服务, 但是如果B服务提供的是一个较长时间的、异步的接口, 那么我们就会想到使用一个回调, 让B服务在异步处理结束之后, 来调用A的...

2021-02-20 18:39:26 207

原创 谈服务可用性监控

一个服务的监控从整体考虑,要达到哪些才能算是完善的?我想,如果没有一个全局性的监控思考,一个服务的监控即使加的再多也是会有监控盲区的。监控的层次从基础机器到上层业务,分为三个不同层次:系...

2020-12-24 12:00:00 285

原创 ​grafana 的主体架构是如何设计的?

grafana 是非常强大的可视化项目,研究完grafana生态之后,只有一句话:可视化,靠grafana就够了。这篇想解释下它的主体架构的设计思路,如果你对grafana有兴趣,不妨让...

2020-12-21 12:00:00 577

转载 周年纪:持续反思和输出的一年

来公司一年多一点了,感慨蛮多的。从9117换到了955,节奏慢了下来,成长反而很多。我算是一个典型的例子,单纯的加班不能真正的成长,但是高质量的freestyle学习和思考可以让一个普...

2020-10-28 10:00:56 163

原创 一篇理解什么是CanSet, CanAddr?

文章有点长,主要解答问题,何时reflect.Value.CanSet 返回true,何时返回false。如果已理解,请直接绕开文字收图点赞。什么是可设置( CanSet )首先需要先明...

2020-10-27 12:00:00 412

原创 collection v1.3.1升级记录

collection 手册地址: http://collection.funaio.cn/最近把collection库升级到v1.3.1版本。从v1.2.0 到v1.3.1 开发做了如下...

2020-10-22 13:19:05 231

转载 别再问用 Go 语言如何对接微信支付了:看看这个包

点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习Go语言作为开发人员,微信生态我们不能无视,微信提供的开放能力,我们应该有所了解。微信支付作为重要的一部分,平时工作中...

2020-09-09 11:33:36 1643

转载 职场的核心竞争力!

点击蓝字关注,回复“职场进阶”获取职场进阶精品资料一份互联网职场很残酷,基本上每一个层级都是一个大考。从小兵到骨干,再到经理、总监、VP、SVP等等,每一个层级都会筛掉一大波人。如果年纪...

2020-09-09 11:33:36 200

转载 为 PHP 转 Go 的朋友们推荐一款神器

关注公众号 “转角遇到GitHub” ,每天推荐给你优秀开源项目大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!了解 PHP 的朋友应该会被 PHP 中两大特性...

2020-09-07 11:58:31 361

空空如也

空空如也

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

TA关注的人

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