Github Pages + jekyll 搭建个人网站和博客
Jekyll 是 GitHub Pages 官方支持的静态网站生成工具,最大的优势在于可以直接在 GitHub 上用 VS Code Online 编辑 Markdown 文件,提交后由 GitHub 自动完成 HTML 的生成与部署。除了 Jekyll,常见的替代方案还有:
Jekyll 是 GitHub Pages 官方支持的静态网站生成工具,最大的优势在于可以直接在 GitHub 上用 VS Code Online 编辑 Markdown 文件,提交后由 GitHub 自动完成 HTML 的生成与部署。除了 Jekyll,常见的替代方案还有:
当团队需要在内部网络部署一套代码托管平台,或希望对仓库、issue、CI/CD 流程拥有完整控制权时,自托管的 Git 服务就成了 GitHub 之外的常见选择。本文梳理几个主流的开源替代方案,重点介绍三个轻量级项目 Gogs、Gitea、GitBucket,并补充 GitLab CE 与 Forgejo 作为对照。
Macaron 是一个用 Go 语言编写的高效、模块化 Web 框架,官方仓库自我定位为「a high productive and modular web framework in Go」。它与 Gin、Beego、Echo 等同属 Go 生态中较早期出现的一批 Web 框架,设计思路继承自 Martini,底层依赖 codegangsta/inject 实现依赖注入,但在路由层做了重写,显著降低了反射开销与内存占用。详细的中文文档可参考:
Go 语言在命令行工具领域有着大量优质项目。得益于交叉编译简单、单文件分发、启动快、并发模型轻量等特性,Go 已成为现代 CLI 工具最常用的实现语言之一。本文以 DNS 查询工具 doggo 为例,介绍这类工具的设计思路与实际用法。
基于 Fiber 的开源项目:
astaxie/beego 已迁移至 beego/beego 组织,请使用新地址。net/http 的路由库,API 与标准库无缝衔接,适合构建可组合的 HTTP 服务。net/http,但 API 与 net/http 不兼容。Hertz(发音 [həːts],赫兹)是字节跳动开源的 Golang 微服务 HTTP 框架,由 CloudWeGo 社区维护。它最初 fork 自 fasthttp,在设计上参考了 Gin、Echo 等开源框架的优势,并结合字节跳动内部对高性能与可扩展性的诉求进行了重构与演进。其默认网络库使用 CloudWeGo 自研的 Netpoll(基于 epoll),并保留了切换至 Go 标准网络库的能力,具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已大规模使用。
Go 标准库覆盖面相当广,但工程实践中仍有许多「写起来啰嗦、但又避不开」的常见需求:类型之间的安全转换、切片去重、字符串处理、优雅重启、后台任务编排、网络报文解析等。本文梳理几款在 Go 项目里出现频率较高的工具与功能库,介绍其定位、核心特性和维护状态,便于选型时参考。所有库均在 GitHub 上开源,文末附官方链接。
日志是服务可观测性的基石。Go 生态中,日志库大致经历了「标准库 log → 第三方结构化日志库(logrus、zap、zerolog) → 标准库 log/slog」三个阶段。本文梳理几款在工程中常见的 Go 日志库,介绍其定位、特性与基础用法,便于在实际选型时参考。