<?xml version="1.0" encoding="utf-8"?> GolangNote 2023-04-25T11:32:01Z https://golangnote.com/feed GolangNote 使用 OpenID Connect 简单而安全的授权应用程序 https://golangnote.com/topic/320.html 2023-04-25T11:32:01Z 2023-04-25T11:32:01Z OIDC 是一种使用 OpenID Connect(OIDC)协议授权应用程序的简单而安全的方法。OIDC 得到了大多数主要平台的支持,包括Okta、Google、Auth0、Keycloft、Authentik和其他平台。 golang 实现的基于web的文件管理-filebrowser https://golangnote.com/topic/319.html 2023-04-19T11:20:22Z 2023-04-19T11:20:22Z FileBrowser 在指定目录中提供了一个文件管理界面,可用于上传,删除,预览,重命名和编辑文件。它允许创建多个用户,每个用户都可以有自己的目录。它可以用作独立的应用程序。 Golang 实现视频投屏到智能电视 https://golangnote.com/topic/318.html 2022-12-11T16:21:01Z 2022-12-11T16:21:01Z 将视频文件投屏到智能电视有很多种方法,这里是介绍基于 `UPnP/DLNA` 的投屏方式。 ChatGPT Golang 客户端 https://golangnote.com/topic/317.html 2022-12-08T20:14:19Z 2022-12-08T20:14:19Z 最近 ChatGPT 很火,这是用于 ChatGPI 的 Golang 控制台客户端。 Golang 判断文件是否存在 https://golangnote.com/topic/316.html 2022-12-08T16:09:24Z 2022-12-08T16:09:24Z 在 Go 语言中,可以使用 os.Stat 函数来判断文件是否存在。 10进制与36进制互转的方法和性能 https://golangnote.com/topic/315.html 2022-09-21T23:53:49Z 2022-09-21T23:53:49Z 使用 Go 语言实现10进制与36进制互转及性能,可以使用内置库 `strconv` 轻松实现。 quicktemplate 模版文件在 Goland 里设置高亮与自动补全 https://golangnote.com/topic/314.html 2022-09-20T11:17:02Z 2022-09-20T11:17:02Z quicktemplate 是个人很喜欢的一个模版引擎,Goland 更不用说了,除了内存消耗巨大,其它都满意。高亮与自动补全效果: Golang 实现 10 进制转 N 进制 https://golangnote.com/topic/313.html 2022-09-03T10:49:20Z 2022-09-21T23:19:33Z 给定一个不没有重复字符的字符串,如 `[0-9,a-z]`,把一个 10 进制数字转为,该字符集的字符串。应用场合如汽车牌、顺序计数。 Golang 泛型性能初识 https://golangnote.com/topic/312.html 2022-07-09T19:47:48Z 2022-07-09T20:07:50Z 编程时,我们通常需要编写“泛型”函数,其中确切的数据类型并不重要。例如,您可能想编写一个简单的函数来对数字进行求和。Go 直到最近才有这个概念,但最近才添加了它(从1.18版开始)。 Golang 数据库 Bolt 碎片整理 https://golangnote.com/topic/311.html 2022-07-03T10:53:46Z 2022-07-03T10:53:46Z Bolt 是一个优秀、纯 Go 实现、支持 ACID 事务的嵌入式 Key/Value 数据库。但在使用过程中会有很多空间碎片。一般数据库占用的空间是元数据空间的 1.5~4 倍。Bolt 没有内置的压缩功能,需要手动压缩。 Go 清理模块缓存 https://golangnote.com/topic/310.html 2022-06-27T11:34:04Z 2022-11-25T23:29:46Z 随着模块不断升级,时间久了,`pkg` 目录越来越大,导致专门为 Linux 下编译开的虚拟机空间爆满。 Golang 几种判断 Contains/包含 的性能比较 https://golangnote.com/topic/309.html 2022-05-18T23:59:44Z 2022-05-18T23:59:44Z Go 语言判断元素列表里是否包含某个元素,通常有两种方法:遍历列表、转为map后判断是否包含key。 Golang Range 的性能提升Tip https://golangnote.com/topic/308.html 2022-05-15T20:53:09Z 2022-05-15T21:06:58Z Go 语言里使用 range 可以方便遍历数组(array)、切片(slice)、字典(map)和信道(chan)。这里主要关注他们的性能。 Golang 按行读取大文件效率较好的方法 https://golangnote.com/topic/307.html 2022-05-09T10:14:31Z 2022-05-09T10:14:31Z 个人使用中发现,按行读取较大文件 10~100MB ,使用 `ReadSlice()` 比 `scanner.Scan()` 性能好一些。 Golang http client 处理重定向网页 https://golangnote.com/topic/306.html 2022-05-07T16:02:52Z 2022-05-07T16:02:52Z 假设一个网址有多个重定向,A-B-C-D,使用 http.Client.Get 最后取得的内容是网址D的内容,我们该手动处理包含重定向的网址。 Golang readability 分析提取网页正文内容 https://golangnote.com/topic/305.html 2022-05-07T11:25:05Z 2022-05-07T11:25:05Z Safari 有个阅读模式,可以识别正文内容并重新排版,重新设置样式,让页面简洁,其中最核心的东西是正文内容识别部分。如下图 Golang Web 程序生产环境独立部署示例 https://golangnote.com/topic/304.html 2022-04-17T22:28:04Z 2022-04-17T22:28:04Z 一个 web 应用通常是跑在一个前端代理,如 Nginx 后,这样可以方便的在同一个服务器部署多个应用。这里说的独立部署是指让 go web 程序直接暴露在外面,独占 443、80 端口(俗称裸跑)。这样做除了性能有些提高外,更重要的是部署方便。 Golang Lock Free 提高并发性能队列/Queue https://golangnote.com/topic/303.html 2022-03-24T11:44:29Z 2022-03-24T11:44:29Z 通常加排外锁就可以实现性能较好的队列,使用 Lock Free 实现,性能更高一点。 Golang 通过 API 更新 DNSPod DNS 设置 https://golangnote.com/topic/302.html 2022-01-11T22:28:40Z 2022-01-11T22:28:40Z DNSPod 提供了较简便的方式来更新自己账户下域名的 DNS,只需后台的 token,避免登录认证等麻烦。 Golang Slice 生成组合的两种高效方法及性能比较 https://golangnote.com/topic/301.html 2021-12-22T09:36:38Z 2021-12-22T09:36:38Z Go 语言生成一个 Slice 指定个数的组合有多种实现方法,这里介绍两种性能比较好的。