成长记录时间轴与家庭共享空间结构示意
ORANGEZH / 交付案例

相册小程序开发

Go 接口端配 TypeScript + Vue 应用端,按时间轴记录影像,家庭多成员共享同一个记录空间。

约 6 分钟读完 5 条买家问答 关键事实可核验

项目概览

项目背景

这是一个成长记录类小程序,2 个仓库。接口端用 Go 写,带 Docker 部署配置;应用端用 TypeScript 加 Vue。最后提交在 2025 年 9 月。要做的事情不复杂:按时间轴记录影像,照片与印迹都能进同一条记录,家庭成员共享同一个记录空间。

客户当时的状态

看起来很简单的功能,落到实现上有两个实际约束。一是图片:家庭记录里照片是主力内容,原图体积大,直接存原图,存储和加载都吃不消;压得太狠,画质又没法看。二是时间轴:记录是按时间累积的,越到后面数据越多,一次性把几年的记录渲染出来,页面会卡。这两件事不定策略,功能做得再全也用不住。还有一点是时限:记录类产品的数据只增不减,任何一次「先跑起来再说」的技术选择,两三年后都要连本带利还回来。

我们的做法与取舍

第一个取舍是图片做压缩与多规格存储,而不是只存原图。展示用压缩后的规格,需要看细节时再取原图。代价是存多份、多一步处理,收益是加载速度可控。

第二个取舍是时间轴按需加载,不做一次性全量渲染。时间轴这类界面必须假设数据会一直长下去,按段加载是唯一能长期用的做法。

第三个取舍是把「共享同一个记录空间」做成核心模型,而不是给每个人各建一份再想办法合并。多成员共享是这类产品的本质,模型一开始就要按这个来。

系统怎么承载这条链路

接口端负责用户与家庭空间、记录与影像的存储,以及图片处理;应用端负责时间轴展示与录入。两端之间是常规的前后端分离结构,接口端带 Docker 配置,部署不依赖人工逐台配环境。图片处理与记录存储都在接口端统一完成,应用端不承担计算,这样不同终端的展示效果也能保持一致。

交付状态与边界

代码处于维护状态,最近一次提交在 2025 年 9 月。边界说明:存储与流量成本随记录量增长,影像类产品这是必须提前算的账,我们只能通过压缩策略把它控制在合理范围;我们做的是记录与管理,不做影像的编辑与美化家庭空间的数据可见范围取决于贵方的隐私约定,系统提供能力,规则由业务方制定。

项目信息

客户

某成长记录影像项目

项目周期

未披露

技术栈

Go(接口端,带 Docker)/ TypeScript + Vue(小程序与应用端)

服务类型

成长记录影像小程序

CHALLENGES

客户当时面对的现实

01

影像类产品照片体积大,原图直存会导致存储与加载都吃紧

02

时间轴数据会持续累积,全量渲染在数据变多后必然变卡

03

家庭多成员共享同一记录空间,数据模型从一开始就要按共享设计

04

记录按时间累积,长期使用下的存储成本需要提前考虑

CAPABILITIES

我们交付的能力

图片与时间轴,是这类产品两个真正的技术约束

时间轴记录

照片与印迹进入同一条时间轴,记录按时间累积。

多成员共享

家庭成员共享同一个记录空间,共享是模型层面的设计,不是事后合并。

图片压缩与多规格

图片做压缩与多规格存储,展示用压缩规格,需要看细节时再取原图。

按需加载

时间轴按段加载,不做一次性全量渲染,适应数据持续增长的场景。

SCOPE

交付范围

以下范围按本项目实际交付内容与边界整理,不属于这次范围的部分一并列出。

已交付

  • Go 接口端(用户与家庭空间、记录与影像存储、图片处理)
  • TypeScript + Vue 应用端(时间轴展示与录入)
  • 图片压缩与多规格存储策略
  • 时间轴按需加载

不在本次范围

  • 影像编辑与美化:我们做的是记录与管理,不做图像后期
  • 家庭空间的数据可见范围规则:系统提供能力,规则由业务方与用户约定
  • 存储与流量成本:属运营成本,需由业务方按用量规划

ARCHITECTURE

分层技术架构

公开口径归纳为三层:应用层是时间轴展示与录入;接口层是 Go 服务,承载用户、家庭空间与记录;数据层负责影像存储与图片处理。

FLOW 01

应用层

时间轴展示 记录录入(TypeScript + Vue)

按时间组织记录,按需加载避免卡顿

FLOW 02

接口层

用户与家庭空间 记录管理(Go) Docker 部署配置

承载业务逻辑与共享空间模型

FLOW 03

数据层

影像存储 图片压缩与多规格 按需取原图

在存储与加载之间取得平衡

DELIVERY

交付过程

分阶段推进,每个阶段都有可验收的产出,客户在早期就能看到实际效果。

阶段一

数据模型与共享空间

确定家庭空间与记录的数据模型,按共享场景设计。

阶段二

接口端与图片策略

Go 接口端落地,图片压缩与多规格存储策略实现。

阶段三

时间轴与录入

时间轴展示与记录录入落地,按需加载实现。

阶段四

部署与交付

接口端容器化部署配置落地,整体交付。

FACTS

可核验的交付事实

以下内容来自本项目实际交付物;未经验证的指标不予展示。

2个仓库

Go 接口端 / TypeScript + Vue 应用端

2个端

接口端与应用端

1套容器化部署

接口端带 Docker 配置

TRANSFER

这套做法适不适合你

案例的用处不是证明"我们做过",而是让你判断"在我们这种条件下能不能做成"。下面三句是我们对这一单的判断,写下来供你对照自己的情况。

适合什么情况

适合以图片为主、记录按时间累积、且存在多人共享场景的记录类产品。

什么情况下别照搬

若记录量很小、且只有单人使用,图片多规格与按需加载可以简化;若需要图像编辑能力,属于另一类工具。

如果要试,第一步做什么

先把图片存储规格与压缩策略定下来。

RELATED SERVICES

相关服务

从实际业务问题出发,查看对应服务的适用场景、交付物与不含项;具体范围仍需单独确认。

FAQ

常见问题

以下是同类项目沟通中出现频率最高的问题,答案就是我们实际的做法。

为什么图片一定要压缩?
原图体积大,直接存原图,存储和加载都吃不消;压得太狠画质又没法看。所以做多规格:展示用压缩后的规格,需要看细节时再取原图。代价是多存一份、多一步处理。
时间轴为什么不做一次性加载?
因为记录会一直往下长。今天加载不卡,积累两年就会卡。时间轴这类界面必须假设数据会持续增长,按需加载是唯一能长期用的做法。
多成员共享会不会有权限问题?
共享是这类产品的本质,模型一开始就按这个做。至于可见范围的具体规则,由业务方与用户约定,系统提供的是能力。
存储成本高吗?
随记录量增长,这是影像类产品必须提前算的账。我们通过压缩与多规格策略把它控制在合理范围,但成本本身取决于实际用量。
做这类记录产品第一步做什么?
先把图片策略定下来——存几档规格、怎么压缩。这件事不定,做到后面再改,历史数据都要重处理。

本页最后更新:2026年9月24日

下一步

聊聊你的记录产品怎么做

从图片策略、时间轴加载到共享模型,一起确认第一期方案。

商务联系人卢刚
商务联系人微信二维码 微信扫码加商务联系人,
发需求文档或截图都行。