熊猫云进销存
一套进销存与财务一体化的管理系统:采购、销售、库存与财务共用一份数据,单据过账自动生成记账凭证,内置 AI 助手负责智能录单与数据洞察。
- React 19 + TypeScript 前端,Flutter 移动端,Go 服务端;PostgreSQL、Redis 与 RabbitMQ
- 2026 年 6 月启动,两个半月迭代 92 个版本、逾千次提交
- Web 四端与手机 App 均已上线,演示环境开放浏览(只读,数据每日重置)
01理念
这个判断决定了我挑什么东西做、怎么组织代码,以及时间不够时先放弃什么。
多数返工是因为一上来就描述功能,而不是描述要解决的问题。动手前我会先把问题本身写成一段话。
时间不够时我会减少要做的功能,而不是降低已经写完那部分的标准。
文档、部署脚本与代码结构按照换个人也能继续改的标准组织,这里的「别人」也包括半年后的自己。
性能与效果的结论都要附带验证方式。验证不了的只当成猜测,不写进说明里。
02技术方向
以下四个方向是我平时学习与实践的重点,下面的作品都能对上其中一到两项。
把大语言、多模态、语音与图像模型接进实际程序里:流式对话、多模型切换、本机模型与云端模型混用,重点是让模型出错时程序仍然可用。
用 TypeScript 写界面、用 Rust 或 Node 写外壳,做成可安装的 Windows 程序,处理本机存储、进程管理、自动更新与多窗口这类只有桌面端才会遇到的问题。
React 与 Next.js 写前端,Go 或 Node 写服务端,也包括这个站本身:静态导出、内容安全策略与零第三方运行时依赖。
SQLite 与 PostgreSQL 的表结构设计、增量更新与数据脱敏,以及用 Docker 把程序打包上线的整套流程。
常用技术Claude · GPT · 本机开源模型 · RAG · TypeScript · React · Next.js · Vue · Tailwind CSS · Rust · Tauri · Electron · WebView2 · Node.js · Go · Python · PostgreSQL · SQLite · Docker
03作品
以下都是我独立开发的程序,这里只展示界面与技术实现,不提供下载、试用或购买入口。
一套进销存与财务一体化的管理系统:采购、销售、库存与财务共用一份数据,单据过账自动生成记账凭证,内置 AI 助手负责智能录单与数据洞察。
自研 AI 编码智能体桌面客户端,原生 Windows 应用:React 对话界面配 Rust / Tauri 进程管理层,智能体运行时以固定版本随应用打包,不设云端中转。支持流式对话、多模型与多账户管理、集成终端、六套界面主题与签名 OTA 自动更新。
面向抖音直播的互动演出工具:观众的礼物、评论与点赞实时触发开箱动画,主播端控制台负责规则、队列与榜单,另有独立的 9:16 竖屏画面供直播软件采集。内置三套演出模式与完整物品图鉴,开箱结果为概率模拟。
整理个人闲置物品出售账号的桌面工具:每个账号运行在独立的浏览器配置目录中,登录状态互不干扰,可导出为状态包在另一台设备上恢复。会话、商品与自动回复规则统一存放在本机数据库,规则支持关键词、首次咨询与系统消息三类触发,并可按账号与商品限定生效范围。
四个作品里有三个是桌面端。原因是它们都要读写本机数据:登录状态、会话记录、直播事件与本地数据库,放在浏览器里既受限也不稳定。桌面端还能直接调用系统能力,比如为每个账号分配独立的浏览器配置目录、监听本地端口、弹出系统文件对话框,这些在网页端要么做不到,要么要绕很远。
看要不要 Node 生态和重量级动画库。Pandaπ 与熊猫店铺管家用 Tauri 2,因为外壳逻辑本来就要写 Rust,又需要每个账号一个独立的 WebView 配置目录,安装包也小得多。开箱直播台用 Electron,因为它要跑较重的动画库、还要被直播软件采集画面,Electron 的窗口与渲染行为更可预期。
它只需要展示文字和图片,没有任何需要服务端计算的东西。用 Next.js 的静态导出生成纯 HTML 与 CSS,不引入任何第三方运行时依赖,内联脚本按 sha256 哈希写进内容安全策略白名单。这样部署只是把文件放上去,也不存在可以被攻击的后台。
熊猫云进销存的截图取自公开演示环境,数据每日重置,任何人都能自己进去核对。另外三个是应用界面实拍,截图前把账号昵称、账号编号、头像与商品标题做了替换或打码,涉及他人的会话内容一律不入镜。
分两类:需要长上下文和复杂推理时用云端模型,对延迟和隐私敏感的场景用本机跑的开源模型。写程序时把模型当成一个随时会失败的外部依赖来对待,流式输出要能中断,超时和错误要有明确提示,换一个模型也不该动业务代码。
把内容和代码分开,比如这个站的所有文字集中在一个内容文件里,改文案不用碰组件。关键决定写在文件顶部的注释里,说明为什么这么做,而不是复述代码在做什么。部署脚本和构建命令一并放进仓库,换一台机器也能照着跑一遍。