惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cyberwarzone
Cyberwarzone
S
Securelist
S
Schneier on Security
V
Vulnerabilities – Threatpost
Latest news
Latest news
G
GRAHAM CLULEY
C
CERT Recently Published Vulnerability Notes
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
S
SegmentFault 最新的问题
Jina AI
Jina AI
A
About on SuperTechFans
GbyAI
GbyAI
F
Full Disclosure
T
Tenable Blog
博客园 - 聂微东
P
Privacy International News Feed
Recorded Future
Recorded Future
PCI Perspectives
PCI Perspectives
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
The GitHub Blog
The GitHub Blog
IT之家
IT之家
S
Secure Thoughts
Cloudbric
Cloudbric
S
Security @ Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园_首页
N
News | PayPal Newsroom
有赞技术团队
有赞技术团队
I
Intezer
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
大猫的无限游戏
大猫的无限游戏
The Register - Security
The Register - Security
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
Martin Fowler
Martin Fowler
小众软件
小众软件
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
宝玉的分享
宝玉的分享
Schneier on Security
Schneier on Security

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
8 年前的老代码 + 20 刀 AI token = 我的第一款独立产品
dombro · 2026-04-27 · via 博客园_首页

大家好,我是 DOM哥。

转眼毕业已经北漂十年了,过得真快啊。

刚工作两年的时候我就萌生了做一个任务管理器的想法。

刚开始做出来的时候它是这样式的:

你别看它丑,但它真能用啊,CRUD不在话下,符合第一性原理🤪

后来在实际工作中,十年间兜兜转转呆过不少团队,每个团队用的任务管理工具迥异。有

  • Tower
  • JIRA
  • Wiki
  • TAPD
  • 飞书文档
  • 钉钉云效

基本上换个团队就要适应一个新的任务管理系统。

实际体验下来,没有一个让我有长期使用的欲望。原因主要有:

  • 太臃肿。功能繁杂,对个人来说 80% 的功能用不到。
  • 太慢。服务在云上,网络的不稳定让我的心情很不稳定。
  • 真实场景实用功能缺失。比如周报不能基于我的任务直接生成么,干嘛还要开晨会,周会,拉进度会。
  • 排期管理令人失望。这些工具往往只有一个日期字段,很难满足我对排期的细节描述。比如对前端来说,一个任务通常开发时间和联调时间是分开的。很多任务实际工时是碎片式的,不是 all in 一整段时间。

最近入职了新公司,我又翻出了自己的这个老项目。这一次,我想不如用我自己的吧。用了一段时间越用越香,我想何不做成一款产品呢。如果放在以前,这几乎不可能实现,但现在有了 AI 加持,开搞!

先上一张产品效果图吧:

线上 demo 链接 https://task-manager.dombro.site?demo=1

或者 本地部署 https://github.com/dom-bro/task-manager-docker

想到即将到来的35岁危机,产品代号就叫 age35

以前只有自己一个人用时,功能就是边用边开发,想到哪写到哪,怎么用怎么写,怎么实用怎么来。但当我开始考虑做成一款对外产品时,就得重新规划整个架构。

这几周忙活下来,我发现真正花时间的并不是技术实现,反而是想清楚"这个产品到底要解决什么问题"。下面就是这几周下来沉淀出的几个核心理念。

产品哲学

归于一处

  • 需求文档
  • 技术方案文档
  • 接口文档
  • 设计稿地址
  • 原型链接

所有和这个任务相关的文档都记到这个小卡片上,点开这个小卡片,就是任务的全部上下文。

实际上,实际开发中上面的文档如果组织合理的话,vibe coding 直接给 AI,你将得到一个非常惊喜的结果。

状态流转一目了然

去伪存真,从模型上来讲,状态是任务最最重要的属性,没有之一。

在团队协作中,leader和项目经理最关心的也是任务状态。

当我想通了这一点后,围绕状态如何全链路打通认真设计了一番。最终确定使用全局状态流管理,其他视图的状态流可以自由组装,而不是随心所欲的造状态。最终实现一份任务数据,处处同步。绝不能容忍去维护重复的任务。

最终实现的效果如下:

我看到的样子

personal_view_board

时间轴

personal_view_timeline

日历

personal_view_calendar

leader看到的是这样式的

group_view_board

项目经理看到的是则样子儿的

project_view_board

当我改动自己的任务时,可以实时同步进度到leader和项目视角。

demo

妈妈再也不用担心我为了对进度赶地铁去开早会了

超实用的排期组件

除了状态,任务另一个最重要的属性就是排期了。一个实用好用的排期组件能让人在繁杂忙乱的工作中有条不紊,有理有据,游刃有余。

直接上成品:

date_picker

功能特色:

  • 区分周末。“正经人谁不双休啊“
  • 区分节假日。“排期时千万跳过节假日。“
  • 区分已被其他任务占用。“如果明天下午已经排给了别的任务,当我点开排期时,我希望心里有数“
  • 可以排半天。“还有按小时排的嘛,别TM卷死了啊“
  • 可以排多段。“没有任务是两段时间不能干完的,如果有,那就再排一段“

可以说,这个组件我自己完成的非常满意。

极致轻 · 快

本地部署不上云

这是一个全栈项目,而我又不想去运维一个服务器(压力太大了🥲),那么不如让用户本地跑吧。

怎么让用户跑起来呢,如果让用户先搭建 pnpm,bun,mongodb 环境恐怕直接劝退,最后 AI 给出了不错的方案:docker一键部署。用户只需要装个 docker 环境就行啦。

  • 数据完全自主

    个人用户数据全在自己电脑的 mongodb 里,团队用户数据全在内网服务器上,一个 bit 也跑不出去。

  • 快到没朋友

    本地起的服务,零延迟

专为国内产研人员打造,拒绝臃肿

拒绝过度设计,回归任务本质,最终我只为任务模型留下了 5 个字段

  • 标题
  • 内容(记录相关的PRD、设计稿、技术方案等所有上下文)
  • 状态
  • 排期
  • 备注

实际体验下来,这5个字段足够用了。

优先个人而非团队

优先保证个人用户体验,从一开始就是为个人提效而生的。

虽然我也在努力寻求转化,但我会一直把这个系统对个人用户永久免费,可以任意使用上面的所有功能。

扩展能力

典型场景如

  • ✅ 一键周报

weekly

可以说这个功能是我开发这个系统的最初动力。

  • ✅ 时间周期任务汇总,这到时候填绩效的时候岂不是很有用哦
  • ✅ 提测自动发送周知消息
  • ✅ gitlab集成一键mr

技术方案

现在有了 AI,搬砖的能力变得次要,指挥搬砖的能力变得很重要。心中有了蓝图,我开始指挥AI大刀阔斧的重构和实现我的产品逻辑。

我的重构思路是这样地:

  • 首先技术栈都升到最新的
  • 然后技术选型优先性能最强的
  • 全栈 TypeScript 化,这样一来前后端能共用数据类型可真是太棒了。
  • 去冗余,对package.json里的依赖严查

好了,现在开始聊天,哦不对,是开始干活!💪

前端升级

前端从 webpack/vue-cli 全面切到 Vite + Vue 3 + Pinia 的vue最新生态,dev 和 build 的体感都倍儿快倍儿爽。

  • 技术栈升级

    ------------------ 🧠 prompt ----------------

    8年前启动的老项目,当时还是vue-cli + vue2 的时代。

    给我把项目的前端技术栈整体重构成最新的vue技术栈,都要 @latest

    vue-cli -> vite

    vue2 -> vue3

    vuex -> pinia

    -------------------- Enter -----------------

  • monorepo改造

    通过 monorepo 我要保证两件事:

    1. 前后端独立子包,代码逻辑不掺杂混在一块。
    2. 前后端类型共享,方便数据结构对齐,这对全栈项目可太爽了。

    ------------------ 🧠 prompt ----------------

    这是个全栈项目,刚开始前端代码和后端代码混在一块,共用 package.json 一大锅依赖,这很不科学

    给我重构成合理的全栈项目架构

    使用 pnpm workspaces 将项目重新组织为 monorepo 结构,前后端要共享数据结构类型

    -------------------- Enter -----------------

后端重做

服务器老栈是 Node + Koa + Mongoose,这在2018年也是非常时髦的组合了。但现在看来,Koa 的中间件链 + Mongoose 的 schema 维护成本,对一个我业余维护的项目来说太重,ODM 抽象的收益已经被它的心智负担抹平了。

DB 层我要放弃 Mongoose,直接用 mongodb 官方驱动,类型走 db/types.ts,避免 ODM 反复维护 schema 的成本。

  • 技术栈升级和选择

    调研了一圈,最终确定用 bun,bun 在我这个项目上有几个实实在在的好处:

    1. 启动快 + 内存小,冷启动比 Node 快 3-4 倍
    2. bun install 快到反人类,比 pnpm 还能再快 2-3 倍
    3. 内置 WebSocket,又可以去掉一个包了 socket.io
    4. All-in-one,runtime、包管理、bundler、test、热重载、.env、fetch、WebSocket,Bun 全部内置。package.json 的 devDependencies 直接掉了一半,docker 镜像也跟着瘦了一圈。省省省太省心了!

    ------------------ 🧠 prompt ----------------

    给我把后端用以下技术栈重写:

    node -> bun

    koa -> hono

    去掉 mongoose

    -------------------- Enter -----------------

在我敲完这几个 Enter 之后,20刀的token额度已用尽😂

去试用吧

我在railway部署了一个线上demo,去看看吧,由于是免费服务器,页面打不打得开看缘分咯

https://task-manager.dombro.site?demo=1

或者

快在本地部署一个吧,享受快如闪电的任务管理⚡️

https://github.com/dom-bro/task-manager-docker