ARTICLE · 1143663
老闫的族谱软件开发日志
老闫的族谱软件开发日志
最近更新:2026-10-08(第 2 篇) 我是老闫。家族修谱多年,一直想把老谱和新资料整理成电子版,但市面的族谱软件要么必须联网上传,要么臃肿难用。我的底线很明确:家族的资料是隐私,必须全部存在自己电脑上,一个字节都不许往外发。 问题是我一行代码都不会写。怎么办?我的办法是——找 AI 结对:我出需求、出主意、做验收,AI 负责敲代码。我俩的协作方式也定了规矩:每做一个功能之前,先用一道道选择题把边界敲清楚;每做一个功能之后,必须跑测试、给我看效果,才算数。 目标形态一开始就写死在需求文档里:Windows 上绿色免安装的单文件 exe,双击即用,数据全在本机。
第一天的节奏是"先写清楚,再动手做"。 上午先憋出了一份《软件开发需求文档》:10 项核心功能白纸黑字列好——成员录入编辑、亲属关系维护(父亲/母亲/配偶,还要防"自己是自己爹"这种错乱数据)、族谱树可视化(能展开折叠)、删除(二次确认防手滑)、姓名搜索、本地存储、备份恢复、单实例、设置、一键卸载。几个悬而未决的边界(比如要不要 Excel 导入、要不要照片附件),都用选择题当场拍板:首版不做,后续迭代再说。 下午开始功能一个个点亮。傍晚,第一个族谱管理.exe诞生了——45 兆的单文件,双击就能用,这就是我想要的"绿色软件"。 晚饭后继续按文档顺序推进,把剩下几项全部做完: 备份恢复:一键备份到 FamilyTree\backup;覆盖恢复前会自动先备份当前数据,手滑也有后悔药;合并导入自动去重。 | 600"> 单实例:双击一百次快捷方式,也只会唤起已打开的那个窗口,绝不给你开一堆重复窗口。 设置对话框:族谱树布局可以"自上而下"或"自左而右"切换,删除确认弹窗可以关。 | 450"> 一键卸载:独立的卸载小工具,退出程序、删干净数据文件,可选是否保留主程序——不留家族隐私残留。 收工前一算:需求文档上的 10 项核心功能,全部"已实现",外加桌面快捷方式和 4 套自动化测试(六十多项断言全绿)。 小插曲也记一笔:我电脑里的 python 其实是微软商店的"占位版",敲命令只会弹商店页面,真正能用的是 py 启动器;还有打包时图标路径踩了坑、测试输出在中文环境下乱码……这些坑后来都进了需求文档的"修复清单",算是给后来者留了张地图。
休息一天后回归。这一天干了四件事。 源码独立备份:源码搬进「族谱管理-源码备份」文件夹,和软件、数据彻底分开。以后改代码在源码那边改,产品文件夹里只有两个 exe 和数据,拷走即用。搬完顺手把 4 套测试在新位置跑了一遍,全绿。 最终版需求文档:交付物清单逐条标上状态,修复清单补齐 8 条踩坑记录,遗留问题如实写明,输出 V1.0 快照。 第一轮:画布改成无限的——拖到天边也不会碰到边界;左区右上角加了一组悬浮按钮[居中 / 编辑 / 移动],选中的人一键送到视野中央。顺手支持了"自左而右"的布局: 第二轮:点「编辑」鼠标变成选中箭头、专心点人;点「移动」变手型只能拖视角;新增刷新按钮(保存后画布没及时更新,点它一下就同步);新增全屏演示——只有画布占满整个屏幕,按 ESC 退出。 我这人只会双击,不会开终端敲命令。于是做了一个桌面「族谱管理-新功能测试版」快捷方式:双击它,直接运行源码里的最新功能,没有黑窗口。正式版和测试版各用一把"单实例锁",互不干扰,可以同时开着——一边改数据,另一边点「刷新」就同步了。 最头疼的问题:正式版 exe 总比源码落后一步,每次都得等打包。这次一步到位,做了版本系统: 两个版本的顶栏都有「版本」按钮:点开就是当前版本号、本版相比上次改了哪些内容、以及从 v1.0 起的完整历史日志: | 575"> 正式版对话框里还有「更新版本…」:列表里选一个归档版本,软件自动切换重启,并且记住你的选择——下次双击打开还是它。哪天想回去,选"恢复正式版自带版本"即可: | 575"> 背后配套了每轮开发自动归档的快照机制(versions 目录),以及启动时的"中继"逻辑:正式 exe 发现你选过版本,就悄悄把运行权交给对应源码;哪台电脑没装 Python,更新功能自动禁用,基础功能照常。 当天傍晚,v1.4 正式版打包完成——刷新、全屏、光标、版本按钮一次性全部到位。测试也升到 6 套、一百多项断言,全绿。
傍晚刚把 v1.4 发布,晚上接着干。这一段可以概括成两件事:先把几项小体验补上,然后照着一份"文字版设计稿"把界面从头到脚重构成了三遍,最后按我的使用反馈精修了三轮。版本号从 1.4 走到 1.12,一天发了九个版本。 出生、逝世日期改成年月日上下滚轮点选——原来那个日期控件看着像样,实际根本点不动,这次连 bug 一起修了;新增成员时日期默认填今天。 性别从下拉菜单改成「男 / 女」按钮一点即中;亲属关系里加了子女列表,点谁跳谁。 修了个让我冒冷汗的 bug:测试版有几次打开一片空白,排查出来是数据目录指错了地方。修完还顺手把窗口缩小时界面不挤压、分组标题可折叠这些细节都磨了一遍。 版本号改成三位数(比如 1.6.1)——一天更五轮,两位数根本不够用。 这天的重头戏,是我先写了一份《UI/UX 文字原型落地稿》——没有画图,就把界面的每个细节用文字描述清楚:主色用什么绿、按钮圆角多少、搜索框放哪、悬停要有什么提示……然后和 AI 约定分三批做,每批做完验收一次。 软件能用了,毛病就全暴露出来了。我一条条提反馈,AI 一条条改: 按钮各归其位:「版本」「设置」挪到标题右边;「保存修改」放在「新增成员」旁边;「查看日志」插进「备份」和「恢复」之间;用得少的"复制新建"直接删掉(v1.8 加的,v1.10 又撤了——加功能容易,删功能才见勇气)。 姓名、字、号、曾用名四个框排成一行,各限三个字;日期滚轮加宽,能完整显示「2026年10月8日」;出生日期不填就显示今天,逝世日期默认空白只留"年月日"三个字。 状态栏和日志合二为一:底部状态栏常驻一行,显示的内容和修改日志一字不差——「14:32:05 修改资料 姓名: 张三→福来改」。连设置父亲、母亲、配偶这种关系变化也自动记进日志。这个主意是被"我刚改了啥来着?"逼出来的。 弹窗提示挪到左下角(右下角是缩放控件,别挡着),状态栏文字加粗、变墨绿,一眼能看见。 点关闭按钮时如有没保存的修改,弹窗三个中文按钮:保存并关闭 / 不保存并关闭 / 取消。 有未保存修改时,状态栏最右侧亮出黄色「存在未保存修改」,「保存修改」按钮同步变黄;存完,黄标消失、按钮变回绿色。 收个尾:这一晚发版前,全套自动化测试一百多条断言必须全绿才敢打包——事实证明好几处联动(按钮变色、关闭询问、日志格式)都是测试先发现的问题。最大的体会是:把界面需求写成一份文字稿、分批做、每批验收,比"一锅炖"稳得多;而软件的手感,从来不是一次设计出来的,是一轮轮"用着不顺手"磨出来的。
需求先写清楚,比什么都值钱。用选择题逼自己把每个边界拍板,返工就少一大半。 小步快跑,先能用再好看。第一天就有能录入、能看树的软件了,之后每天都是锦上添花。 备份比什么都重要。数据就在本机一个文件里,手滑删了没人能救——现在软件里一键备份,后悔药常备。 界面是磨出来的,不是设计出来的。十几轮反馈,每轮两三条,条条都不大,加起来软件就顺手了。还有一条铁律:每发一版,测试不全绿不打包。 做「分享包」压缩包,拷给家里其他人的电脑用(还欠着) 按遗留问题清单继续打磨(跨机便携实测、合并导入的同名局限等) 继续往里录我们老闫家的真实谱系 (未完待续,下一篇见文首新的时间节点。)
—— 一个不会写代码的人,和 AI 结对做软件的真实记录
这是一份持续更新的开发日志。我按时间节点记录「族谱管理」软件从想法到交付的全过程,每有新进展就在文末续写一节。文中所有配图均为演示用的虚构数据,不涉及任何真实族人信息。