CentOS 7.9 上用 Yum 快速安装 PHP 8.3:从 Remi 仓库到 PHP-FPM 启动

这篇文章整理了在 CentOS 7.9 上通过 Yum 安装 PHP 8.3 的最短路径:先接入 EPEL 与 Remi 仓库,再启用 remi-php83,最后安装 PHP 和常见扩展并验证结果。适合仍在维护老系统、又不想走源码编译流程的场景。 CentOS 7.9 虽然已经很老,但很多线上机器仍在继续服役,麻烦在于系统自带的 PHP 版本通常只有 5.4,直接使用已经难以满足当前项目需求。

CentOS 7.9 上用 Yum 快速安装 PHP 8.3:从 Remi 仓库到 PHP-FPM 启动

化繁为简:Go 语言 strings.Cut 的优雅实践

Go 1.18 引入的 `strings.Cut`,把“按第一个分隔符拆成两段”这件事做成了更直接的标准写法。相比 `SplitN`、`Index` 加切片,它在语义、边界处理和常见性能表现上都更适合配置解析、URL 拆分、标签处理这类场景。 在 Go 里,按分隔符拆字符串是最常见的基础操作之一,但很多代码仍停留在 SplitN 或 Index 加切片的写法上。

化繁为简:Go 语言 strings.Cut 的优雅实践

Go 语言中 HTTP 响应体为什么必须关闭?

在 Go 里,`resp.Body.Close()` 不是可有可无的习惯写法,而是 `net/http` 明确交给调用方完成的收尾责任。真正容易混淆的是:关闭响应体解决的是资源释放,想让 HTTP/1.x 连接更有机会复用,通常还需要把响应读到 EOF。

Go 语言中 HTTP 响应体为什么必须关闭?

Debian 上的 C++ 项目构建流程:从环境准备到 .deb 打包

这篇文章把 Debian 上 C++ 项目的常见构建路径重新梳理为一条可落地的流程:先装齐基础工具链,再按项目规模选择 g++、Makefile 或 CMake,最后补上调试与 .deb 打包。读完你可以判断自己的项目该用哪套方案,以及每一步该执行哪些命令。

Debian 上的 C++ 项目构建流程:从环境准备到 .deb 打包

Flutter 两个 PageView 嵌套滑动优化处理

这篇文章聚焦 Flutter 中两个 `PageView` 嵌套后的横向滑动不连贯问题:当内层滑到第一页后继续右滑,外层不会自动切回上一页。文中用 `NotificationListener` 监听 `OverscrollNotification`,结合 `depth`、`overscroll`、`velocity` 和 `ClampingScrollPhysics`,用一段较短代码完成切换优化。 在 Flutter 里把两个 `PageView` 横向嵌套起来后,最容易暴露的问题不是单纯的手势冲突,而是滑动到了内层边界却无法顺势切回外层页面。

Flutter 两个 PageView 嵌套滑动优化处理

C++ 如何验证文件打开状态:从流检查到错误管理

这篇文章围绕 C++ 文件打开状态验证展开,梳理了从 `is_open()`、`good()`、`fail()`、`bad()` 到 C++17 `std::filesystem` 权限与存在性检查的常用做法,并补充了异常处理、`errno` 与日志记录等错误管理思路,适合作为文件 I/O 健壮性处理的入门参考。

C++ 如何验证文件打开状态:从流检查到错误管理