Go1.24 - 按行读取文件

Go1.24 - 按行读取文件 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/05/16/read-file-line-by-line-go124/ 在 go 1.24 中新增加了两个标准方法 - strings.Lines() 和 bytes.Lines()。 都使用 分隔符 \n 拆分对象。 都返回一个 Seq 的迭代对象。 Seq 迭代对象 Seq 迭代对象可以接受一个 回调函数 或 使用 for 循环 进行遍历。 使用 回调函数 时, 可以通过 return false 提前终止遍历。 1 2 3 4……

阅读全文

Go 1.24 - os.Root 锁定工作目录

Go 1.24 - os.Root 锁定工作目录 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/05/16/os-root-in-go124/ os.Root 可以锁定工作目录。 使用户无法打开目录外的文件,例如 ../../../etc/passwd 。 可以算一种 安全保护 最重要的是 强制约束用户, 限制用户行为, 检查计划外的使用逻辑 。 免得和煞笔瞎掰扯, 浪费时间。 使用 root, _ := os.OpenRoot(basedir) 锁定工作目录 以后的所有操作都要基于 root.Xzzzz() 展开 root.OpenFile(path) 在……

阅读全文

容器镜像优化 (解释型语言)

容器镜像优化 (解释型语言) 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/04/28/intepreted-language-docker-image-optimization/ 解释型语言, 如 Python, Ruby 。 这些语言在都会在本地 缓存 安装包, python (whl), Ruby (gem), 以方便不同项目共享。 而这类项目不能使用 多阶段构建 , 因此 清理本地缓存 是镜像瘦身必须的。 Python 1 2 3 4 5 rm -rf ~/.cache/pip # or pip install --no-cache-dir {package} Ruby 1 2 3 4 5 6 ## 必须的 RUN rm -rf /usr/local/bundle/cache/*.gem ## 可选的……

阅读全文

Go 编译时使用私有仓库

Go 编译时使用私有仓库 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/03/27/go-build-with-private-bitbucket/ 使用私有仓库, 无论如何都需要配置 GOPRIVATE 变量 1 2 export GONOSUMDB=git.example.com # comment this line if GOPROXY isn't set export GOPRIVATE=git.example.com 1. 本地开发 在本地开发的时候, 通常使用 ssh 协议进行权限验证。 例如 clone 时地址如下格式如下 1 2 ssh://[email protected]/ ... https://git.example.com/scm/ ... 则执行如下命令替换验证方式 $ git config --global url.ssh://[email protected]/.insteadOf https://git.example.com/scm/ 2. 容器中个编译 在容器中……

阅读全文

Gorm: 声明模型(1)

Gorm: 声明模型(1) 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/03/17/gorm-model-declaration/ 1. 数组字段 https://gorm.io/zh_CN/docs/models.html 如果表中有 slice 字段, 则需要使用 type 指定类型。 1 2 3 4 5 6 package dao type DemoTable struct { Users []string `gorm:"type:text[]"` // This is a slice of strings IDs []int `gorm:"type:int[]"` // This is a slice of integers } 2. 索引 https://gorm.io/zh_CN/docs/indexes.html 2.1 唯一作引 唯一索引有两种形式, uniqueIndex index:[name],unique : 自定义索引名字 1 2 3 4 5 type User struct { Name string `gorm:"index"` // 索引 Name4 string `gorm:"uniqueIndex"` // 唯一索引……

阅读全文

AI 加强版的命令行客户端

AI 加强版的命令行客户端 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/03/04/ai-powered-terminals/ 都 2025 年了, 谁还没有一个 AI 加强版的命令行客户端。 1. 神器 Warp warp 算的上一款真正意义上的 AI 客户端了, 可以直接通过 自然语言 (甚至不用关键字切换)处理工作。 除此外, 还能根据需求 推荐相关命令, 并执行, 还支持 输出结果的上下文分析, 直接……

阅读全文

Typescript NPM 制包/发包问题解析

Typescript NPM 制包/发包问题解析 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/03/01/intro-of-npm-package-publish/ NPM 发包 npm 发包必须要注册一个 npm registry 的账号。 包名全局唯一 访问 https://www.npmjs.com/ 并注册一个账号 本地登录 1 $ npm login 发布 1 $ npm publsh 包的定义 在 package.json 中管理 包的定义 1 2 3 4 5 6 7 8 9 10 11 { "name": "ioredis-client", // 包名 "version": "1.0.7", // 版本 "main": "dist/index.js", // 默认入口文件。 指定后, 可以直接使用包名。 "types":……

阅读全文

(6) 静态前端网站容器化 - 【源码解读】 使用 gin FS 模式为什么无限 301 重定向了?

(6) 静态前端网站容器化 - 【源码解读】 使用 gin FS 模式为什么无限 301 重定向了? 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/02/09/gin-static-fs-301-redirect/ 为了解决 BrowserRouter 模式下的, History API Fallback 问题。 我们在后端服务器做了一些兼容配置。 (4) 静态前端容器化 - 单页面应用(SAP) History API Fallback - 刷新 404 但是由于 gin 对于 StaticFS() 和 FileFromFS() 两个方法的实现问题, 造成了无限 301……

阅读全文

(5) 静态前端网站容器化 - 容器篇 - 自定义 HTTP Server

(5) 静态前端网站容器化 - 容器篇 - 自定义 HTTP Server 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/02/09/static-sap-dockerize-customize-httpserve/ 众所周知, 我们在容器化 静态网站 的时候为了实现 一次编译, 处处运行 的目标, 在 index.html 中插入了一个变量 __CONFIG__, 在启动的时候进行替换为正式后端的地址。 可以参考 (2) Vue3 / React 静态网站项目容器化 - 实战案例 (3) 静……

阅读全文

(4) 静态前端容器化 - 单页面应用(SAP) History API Fallback - 刷新 404

(4) 静态前端容器化 - 单页面应用(SAP) History API Fallback - 刷新 404 建议点击 查看原文 查看最新内容。 原文链接: https://typonotes.com/posts/2025/02/09/static-sap-history-api-fallback-issue/ 当单页面(SAP)页面使用了路由之后(例如 React-Router), 刷新页面就可能造成 404 问题。 问题主要原因是出在 BrowserRouter, 例如 地址 http://localhost:3000/login BrowserRouter 依赖于浏览器的 History API 来管理路由。例……

阅读全文

福利派送

  • (免费星球)「运维成长路线」

  • 又拍云免费 CDN

最近文章

分类

标签

其它