夜雨聆风学习资料网

ARTICLE · 1159503

族谱软件开发日志2026-10-11

族谱软件开发日志2026-10-11


老闫的族谱软件开发日志

—— 一个不会写代码的人,和 AI 结对做软件的真实记录

最近更新:2026-10-11(第 5 篇)

这是一份持续更新的开发日志。我按时间节点记录「族谱管理」软件从想法到交付的全过程,每有新进展就续写一篇。本文为第 5 篇,全程文字记录,不涉及任何真实族人信息。

写在前面

我是老闫。家族修谱多年,想把老谱和新资料整理成电子版,但市面的族谱软件要么必须联网上传,要么臃肿难用。我的底线很明确:家族的资料是隐私,必须全部存在自己电脑上,一个字节都不许往外发。
我一行代码都不会写,办法是找 AI 结对:我出需求、出主意、做验收,AI 负责敲代码。规矩是:每做一个功能之前,先用选择题把边界敲清楚;每发一个版本之前,测试不全绿不打包。
上一篇(第 4 篇)写到六个支谱合并入库、470 人合成一棵树。这一篇记 10 月 11 日——给族谱补上了"过继"这门学问,顺手排掉两个吓人的故障。

2026-10-11 | 第五天:过继的学问

一、正式版换新与一个虚惊

早上把正式版 exe 重新打包成最新版。顺手排掉一个弹窗惊魂:软件退出时偶尔弹英文警告"Failed to remove temporary directory"——查明是单文件软件解压的临时目录没删干净,无害,清掉就好,以后见了点确定忽略即可。

二、把"过继"讲清楚:一个人大两个记号

修谱最讲究过继的表达。族里实际存在这样的事实:闫义是闫有明的亲生儿子,过继给闫有富抚养——谱上该怎么记?我的方案是四件套:
名字带星号:过继者一律改名"闫义*",一眼认出;
养父画实线:族谱树按养父挂(谁养的跟谁走),这是谱牒正统;
生父画红色虚线:从亲爹拉一条虚线到孩子,线上贯穿着一串箭头(血脉的方向),线中间挂个白底红字的"过继"小标签;
点谁谁亮:选中过继者,实线虚线一起加粗高亮,悬停还提示"生父:XXX"。
落地时先修正了五例:闫义、闫文、闫克让、闫文堂、闫庆堂——这些人在库里原本是"生父名下一个空壳、养父名下一个带子女"的两条记录,全合并成一人挂养父、删空壳、补虚线。后来又补了承春、承江、承双、承连四例,承双还按我的指示从天福名下改挂到天禄。中途我自己口误说"蓝堂生父廷相",AI 照办把蓝堂从廷奇家挪回廷相家——后来发现蓝堂本就是廷相亲子不算过继,正好也不用加星号。庆堂的生父廷枢也补上了虚线。

三、白屏惊魂:看不见的异常最吓人

改完过继虚线的当晚,双击测试版——白屏一闪,自动关闭。AI 复查时更蹊跷了:用它自己的方式跑一遍居然不崩。
折腾到后半夜找到病根:原来测试版是"无窗口"方式运行的,Python 的报错信息没有地方显示,异常一出现直接把程序打死——这就是"白屏秒退"。真凶是一个 Qt 绘图函数在我们这台电脑的库里根本不存在(版本差异),画到虚线就崩。换成自己按线段算位置后,479 人的大树稳稳显示。这个教训值钱:看不见报错,不等于没有报错;排查这类问题得用笨办法——控制台跑真数据、一段一段二分定位。

四、导出、导入与辈分列

这天还把周边功能补齐了:
导入/导出文件夹:数据文件夹里建了两个专用目录;「导入」按钮统一收文件(JSON/PDF/Word 都行,选中先自动备份进导入文件夹),JSON 自动画到画布上;「导出」出高清图和 PDF(300 像素),存到哪随你选,导完自动在导出文件夹备份一份。
辈分列:世次标尺旁每一代多一个小标签,自动推断辈分字——有字辈显示"有",第五世文礼义敬并存就显示"文*礼*义*敬",双击可以改,改了自动记住。淡蓝色居中,和第几世并排。
统一补姓:库里 458 位没带姓的成员全部补上"闫"字,全谱清一色闫姓。
画笔与橡皮:编辑模式多了两件神器——橡皮点谁擦掉谁的父亲线(人原地不动),画笔先点新父亲再点孩子,两步把人迁过去。改错了父子关系再不用一格格敲。

五、新版支谱文件的精准更正

家人交来一份更正过的有德支新文件(157 人,世系改细了:父亲挂谁、谁多谁少都不同)。这次学乖了:不整树覆盖,先做"体检"——AI 把新文件和库里现有世系逐条比对,列出"父亲需更正 56 条、需新增 28 人、库里多出的人先留着待定"三张清单,我过目后一键执行:56 条父子关系精准归位,28 位新成员补进(承江、承海这些中间祖先补上后,他们的儿孙才接得对),零失败。多出来的旧记载一个没删——改数据的活,宁可留着不敢删。

收个账:这一版里过继的表达(星号、双线、箭头、标签)是重头,前后修正了九例过继、两次"白屏"级故障全部当天破案。最大的体会:看不见的异常最吓人,但二分法这种笨办法最可靠——把问题一刀刀切开,总能找到崩在哪一刀。

几句掏心窝的经验

需求先写清楚,比什么都值钱。用选择题逼自己把每个边界拍板,返工就少一大半。
备份比什么都重要。这一天改了九处过继、重更了一个支谱,每次动手前都自动备份,改错随时回得去。
同名未必同人,过继尤其要小心。族里同一个人可能在两支各记一次——合并数据要认"人",不能光认"名"。
看不见报错 ≠ 没有报错。无窗口模式下异常会悄悄杀死程序;排查靠控制台跑真数据、二分定位,笨办法最可靠。
改数据的活,改前先体检。先列出差异清单过目再执行,比"直接覆盖"稳一百倍。

下一步

拿着九例过继和更正后的世系,逐支人工核对一遍
做「分享包」压缩包,拷给家里其他人的电脑用(还欠着)
老照片、谱书扫描件陆续补进各成员的「史料与附件」
(未完待续,下一篇见文首新的时间节点。)

相关学习资料