Go 构建时注入版本号实战:不用第三方包,也能把版本信息做完整
给 Go 程序加上可查询的版本号,不一定要引入第三方库。本文用标准库配合 `go build -ldflags`,演示如何在构建阶段注入版本号、构建时间和 Git 提交,并进一步补上 JSON 输出与 Makefile 自动化构建。 线上排查 Go 程序时,最常见的问题不是服务起不来,而是程序已经在跑,却说不清自己来自哪次构建。
给 Go 程序加上可查询的版本号,不一定要引入第三方库。本文用标准库配合 `go build -ldflags`,演示如何在构建阶段注入版本号、构建时间和 Git 提交,并进一步补上 JSON 输出与 Makefile 自动化构建。 线上排查 Go 程序时,最常见的问题不是服务起不来,而是程序已经在跑,却说不清自己来自哪次构建。

这篇文章用一个可直接运行的 Go 示例,说明如何借助 `github.com/forgoer/openssl` 快速完成 `AES-ECB-256` 的加解密,并补清实际使用时最容易出错的三件事:32 位密钥长度、`PKCS7_PADDING` 填充方式,以及跨语言对接时常见的 `base64` 编码处理。

这篇文章用一个更省代码的 Go 封装库,梳理 RSA 在实际开发里的三个基本动作:生成密钥、公钥加密私钥解密、私钥签名公钥验签。示例都基于 `github.com/forgoer/openssl`,适合想快速落地 RSA 功能、同时分清加密和签名职责的 Go 开发者。

这篇文章把日常开发里最常见的 Git 用法重新梳理成一套可直接上手的清单:先理解版本控制在解决什么问题,再按配置、建仓、提交同步、排查历史、分支与标签几个场景展开。命令不多,但足够覆盖多数工作流。

当 PHP 项目迁移到 Go 时,历史数据里常见的 `serialize()`/`unserialize()` 往往会成为兼容点。本文从 PHP 序列化规则入手,结合 `github.com/leeqvip/gophp` 的现成方案,说明 Go 里怎样直接解析和生成 PHP 序列化字符串,以及跨语言场景下该如何选择更稳妥的序列化格式。

除了从 npm 仓库安装,npm 也支持直接把 GitHub、GitLab 等 Git 仓库作为依赖源。本文整理可用的地址格式、版本写法,以及私有仓库在 SSH 已配置后仍报错时的处理办法,帮助你判断什么时候该改用 git 安装、命令该怎么写。

在 Go 项目里,靠文件后缀判断类型并不可靠,尤其是上传场景下,伪装扩展名会直接带来安全风险。本文用标准库 `http.DetectContentType` 和第三方库 `github.com/h2non/filetype` 两种方式,说明如何根据文件头识别真实 MIME 类型,以及各自适合的使用场景。

有些项目需要一个只放文档或静态文件的独立分支,但常规 `git checkout -b` 会继承当前提交历史。本文整理 Git 创建“空分支”的做法,说明 `--orphan` 的作用、为什么新分支仍会先带出工作区文件,以及如何清空内容、提交首个根提交并检查结果。

很多人以为把规则写进 .gitignore 就能立刻生效,但实际提交里仍会出现被忽略文件,问题通常不在语法,而在文件早已被 Git 跟踪。本文说明 .gitignore 的生效边界,并给出一组可直接执行的清理命令,帮你判断什么时候该改规则,什么时候该把缓存索引移除。

这篇文章从 Ruby 项目的实际交付流程出发,梳理一条可落地的 CI/CD 管道:先用 Git 管住变更,再用 Rake 和 Jenkins组织构建,用 Minitest、RSpec、Capybara覆盖测试,最后借助 Travis CI 与 Docker完成自动化部署。保留了原文命令、版本号和配置示例,适合作为入门搭建清单。

这篇文章用一个最小 Ruby 项目为例,梳理 GitHub Actions 的基础配置方法,包括仓库准备、首个工作流文件、环境变量写法以及 Ruby 多版本测试矩阵。重点保留可直接落地的 YAML 与命令,帮助你判断一份 Ruby CI 配置该从哪里起步、后续又该如何扩展。

这篇文章围绕 Ruby 项目接入 GitLab CI 的基础做法展开,重点说明为什么要用 CI、`.gitlab-ci.yml` 该如何组织,以及缓存和多阶段流水线分别解决什么问题。读完可以快速判断一套最小可用配置该怎么写、后续又该怎样逐步扩展。
