已稳定运行 2+ 年

督友 DuYou

一款为“强迫症”设计的轻社群自律监督应用。
采用 Hybrid Cloud 混合云架构,核心解决弱网/断网环境下的数据确定性问题。

产品内核与规划

“有人盯,才坚持;坚持着,就遇见”

隐私优先 (Privacy First)

习惯内容、目标与进度仅自己可见。在群组内仅同步“已打卡/未打卡”状态,充分保护用户隐私的同时利用社交压力形成“强迫症式自律”。

双社交场景 (Social Synergy)

结合熟人社交(高粘性的家庭/情侣监督)与陌生人社交(按兴趣/地域匹配且以自律程度为推荐标准),将“变好”与“交友”深度绑定。

演进路线图 / Roadmap

PHASE 01 / MVP
极简自用版
  • • 私密习惯管理
  • • 日历热力图统计
  • • 微信群机器人同步
PHASE 02 / SOCIAL
兴趣社交化
  • • 熟人小群/兴趣群
  • • 补签卡/连胜保护
  • • 属性勋章系统
PHASE 03 / BUSINESS
商业化探索
  • • 保证金挑战赛
  • • 个性化增值服务
  • • 高端行业/兴趣圈子
API 优先

RESTful 架构 / Spring Boot 驱动

自动降级

弱网环境下 0 感知切换本地存储

云端托管

微信云托管容器化部署 / MySQL 持久化

系统架构设计

“架构的价值不仅仅在于功能的实现,更在于系统在极端边界情况下的鲁棒性。”

01 用户界面层 (UI Layer)

原生微信小程序开发,包括首页打卡、习惯管理、多维统计及个人中心。极致追求 60fps 的流畅交互体验。

02 存储与中间件层 (Storage Layer)

核心逻辑:API 优先 + 本地缓存双模式。封装 `storage.js` 实现数据双写与读屏蔽,确保数据在离线状态下的连贯性。

03 基础设施层 (Infra Layer)

基于微信云托管(Cloud Container)部署,后端采用微服务化设计的 Spring Boot,数据库使用高可用的云托管 MySQL。

APP UI (Mini Program)
API CLIENT
LOCAL STORAGE
WECHAT CLOUD CONTAINER
SPRING BOOT + MYSQL

核心逻辑:自动降级机制

当 API 请求失败(由于网络波动或环境异常)时,系统会自动切换至本地持久化层。

utils/storage.js

// 网络请求失败时自动降级
async function getHabits() {
  if (useApi) {
    try {
      const habits = await api.getHabits();
      wx.setStorageSync('habits', habits); // 成功后同步缓存
      return habits;
    } catch (error) {
      console.warn('API 访问失败,自动回退到离线模式');
      return wx.getStorageSync('habits') || []; // 离线降级
    }
  }
  return wx.getStorageSync('habits') || [];
}

“我们无法预知用户何时断网,
但我们可以预知此时代码该如何优雅处理。”