我在做一款叫「追远」的离线家谱软件。写第一行代码之前,我先写了一份产品理念。 因为族谱这件事,技术从来不是最难的——最难的是回答一个问题:谁,有资格被写进一个家族的历史?
一、传统族谱的「记 / 不记」规则
纸质族谱沿袭千年,有一套清晰的资格规则。它在那个年代有它的道理,但今天,它不该再约束一个家庭如何记住自己所爱的人:
- 女儿出嫁,就从本家谱上「消失」——顶多在父亲名下留一行「适某氏」,不立传、不记后代。
- 媳妇只是「附属」——名字常被写成「张门李氏」,连本名都留不下。
- 入赘的女婿低人一等——改不改姓都被当外人,子女归属还要争。
- 没有血缘 = 不配入谱——养子女、继亲、再婚组成的家庭被排除在外。
- 陪伴十几年的猫狗,连提都不能提——哪怕它们是孩子的整个童年。
这些规则的共同点是同一个前提:用血缘和性别,决定谁有资格「被记住」。 我做这款软件,第一个决定就是——不接受这个前提。
「家人由爱与陪伴定义,不由血缘与性别定义。」
二、四个主张
主张一:每个人都是完整的一个人,不是谁的「附属」
出嫁的女儿,在追远里和儿子一样,可以作为独立主轴展开,记录她的小家庭、她的孩子、她的一生。 娶进门的媳妇、嫁进来的女婿、入赘的丈夫,都有自己的姓名、生平、照片,不是「某门某氏」。 我们不用「嫁出去的女儿泼出去的水」这种话术,也不在任何默认设置里把任何一方当配角。
主张二:没有血缘,一样是一家人
养育之恩、相伴之情,重于血脉。继父母、养子女、再婚家庭、同居伴侣——在追远里都是平等的家庭成员, 关系如实记录,称呼遵从这个家自己的叫法,软件不去质疑谁的「资格」。
主张三:毛孩子,也是家人
陪我们走过一段路的猫、狗和所有毛孩子,也能堂堂正正写进家族史:有名字、有照片、有它来到和离开的日子、有属于它的一段话。 它们不参与辈分与血脉推算,但它们就在主人身边,谁也抹不掉。
把毛孩子写进族谱,是因为爱,不是因为「好玩」。
所以它要温暖、要郑重,而不是做成一个猎奇的彩蛋。
主张四:谁是家人,由这个家自己说了算
我们不替任何家庭划线,只提供一个让所有家人都能被郑重记录的地方。默认平等—— 任何性别、任何身份的成员,默认 UI 待遇完全一致;差异只来自这个家自己的输入。
三、理念怎么落进代码
理念如果不落进默认值和交互,就只是一句口号。下面这张表,是「主张」到「产品」的逐条对照:
| 主张 | 产品上的体现 |
|---|---|
| 不分男女 | 族谱树里女性成员与男性同等可作为主轴展开子树;文案不出现「附属配偶」「出嫁除名」;称谓用中性、口语、这个家自己的叫法 |
| 不分出嫁 / 没出嫁 | 出嫁女儿在父族谱里保留完整分支(她 + 配偶 + 孩子),不再只剩一行名字 |
| 不分娶进 / 入赘 | 配偶不论性别、不论从夫从妻居,都有独立姓名、生平、头像;入赘不做任何「降级」标记 |
| 没有血缘 | 关系支持养育 / 继亲 / 再婚等非血缘连接,如实记录 |
| 毛孩子 | 新增「家庭成员」类型:人类 / 毛孩子。毛孩子有名字、物种、生卒、照片与寄语,挂在主人身边,不参与辈分、称谓、世代统计 |
技术上有个克制的约束:毛孩子用 member_type = 'PET' 建模,主人关系用 COMPANION 连接;
宠物不进入族谱树主轴、不进称谓推算路径、不计入世代统计。性别字段仍保留底层的 1 / 2(为了桌面与手机的 .db 备份互通),
「不分男女」是在显示与交互层实现的,而不是去新增性别值。理念归理念,数据兼容性归数据兼容性,两者不打架。
四、一句话立场
追远不替你定义谁是家人。
你认定的每一份爱,我们都帮你郑重地、永久地留下来。