摘要

功能一多,界面开始挤。这篇讲第二轮迭代:截止日期、分类、分类筛选,一次提齐一轮做对。核心干货是"位置语言"——像画部署图一样跟 AI 描述界面,说清楚哪个位置放什么、按什么规则排,而不是"合理点""好看点"。

话题标签:#WorkBuddy #AI改代码 #零代码 #效率工具

用了两周,我摸清了自己真正缺什么

第一轮迭代完,应用长这样:优先级分组、双击改字、数据是 SQLite、能导出。

我真实用了两周。不是演示式地用,是把我桌面「待办.txt」里的活儿一条条搬进去用。这两周摸清了两个事实:

第一,"优先级"解决不了时间问题。"交水电费"是中优先级,但它后天到期;"整理监控脚本"也是中优先级,但下个月才要交。两条排在一起,我先干哪个?优先级答不了,截止日期才能答。

第二,工作和生活混在一列里,看着心烦。上班时间我只想看工作的待办,晚上我只想看家里的事。30 多行待办在一个列表里滚,找个东西全靠眼睛。

所以第二轮迭代的需求很清楚了。但这轮真正想讲的不是加了什么功能,是我怎么把需求说出去的——因为上一轮的教训("把数据保存加上"这种模糊指令害我多烧一轮)还没过去多久。

一次提五件,还是分五次提?

这轮要动的东西有五个:截止日期、分类、分类筛选、逾期标红、按日期排序。

五个相关功能,怎么提?两个方案:

方案 A:分五次提。今天加截止日期,明天加分类,后天加筛选……每次都是一轮对话。

方案 B:一次提齐。五件事写清楚,一轮做完。

我选了 B。理由很运维:这五件事动的是同一块代码,拆开做等于同一个变更窗口开五次。每开一次,它都要重新读一遍文件、重新理解上下文、重新检查有没有改坏别的地方——这些都是积分。而且拆开还有个隐藏成本:五次小改之间可能互相打架(先加的分类布局,可能被后加的排序逻辑挤乱),每次打架又是一轮返工。

我的原话是这样的:

第二轮迭代,一次做完这五件事,它们都在列表区:

  1. 每条待办可以设截止日期(用日期选择器,不用手输)
  2. 日期在条目上显示为"今天/明天/X月X日",已逾期的标红,今天到期的标黄
  3. 加分类字段:工作、家里、学习三个固定分类(够了,不要让我自定义)
  4. 列表上方加一排分类标签(全部/工作/家里/学习),点"工作"就只看工作的,选中的标签高亮
  5. 同优先级内,按截止日期从近到远排

数据库对应加字段:due、category。老数据要有默认值,不能因为我升级就把之前的待办弄丢——这条是验收标准,最重要的一条。

注意最后那句。上轮被 localStorage 折腾过之后,我给所有迭代加了一条铁律:动数据结构的需求,必须带"老数据兼容"的验收标准。这在运维叫变更安全,在这里叫——别让它把我的 SQLite 表改崩了。

"位置语言":跟 AI 描述界面的正确姿势

上面那段指令里,我刻意没有用这些词:好看、合理、舒服、优化一下、体验好一点。

我用的全是位置和规则:

  • "列表上方加一排分类标签"
  • "点'工作'就只看工作的,选中的高亮"
  • "同优先级内,按截止日期从近到远排"
  • "日期显示为'今天/明天/X月X日',逾期的标红"

我管这个叫位置语言,本质上就是写部署规格的思路:不说"把这个服务弄稳点",而是"超时 3 秒重试,重试 3 次后告警"。

为什么必须这样?因为"好看点""合理点"这种词,在它的词典里有一千种解释。你说"把界面优化一下",它可能给你换配色、可能给你加圆角、可能把列表改成卡片流——每一个方向都是积分,每一个方向都可能不是你要的。

而"位置+规则"没有解释空间。"列表上方一排标签、选中高亮",这句话它做错的概率,远低于"加个筛选功能好看点"。

第二轮迭代:截止日与分类

点"工作"分类,只看工作的待办,标签高亮

界面开始挤了,但这是好事

五件套加完,界面长这样:输入框、分类标签排、搜索的位置(下一轮才有搜索,这轮先留白)、然后是分组列表,每条待办上三个彩色小标签(优先级、分类、日期)。

添加选项变多了:优先级、截止日、分类一行排开

说实话,挤了。尤其添加区,优先级三个按钮、日期选择器、分类下拉,一排排开,第一眼有点眼花。

但我对"挤"的判断和纯审美不一样:这一轮的挤是有秩序的挤——选项收在输入框下方一行,列表主体不受影响;每个标签的颜色语义固定(红=逾期/高优、黄=今天到期、灰蓝=普通)。它不是乱,是密。

我为什么忍着不马上治它?因为挤是下一轮迭代的正当理由,不是这一轮的返工理由。功能还在往上摞,这时候花积分打磨布局,等功能加完还得再打磨一遍。排期的智慧:装完家具再刷墙。(预告:第 08 篇就是刷墙,那轮会连"挤"一起治。)

老数据兼容,验收时真用上了

这轮验收,我第一条查的就是铁律那条:升级会不会弄丢老数据。

方法很运维:升级前先导出一份 .sqlite 存到文件夹(第 06 篇加的导出按钮,这时候就是我的后悔药),升级后打开应用——14 条老待办一条不少,新加的 due、category 字段按默认值补齐。我再拿导出的新库丢给 sqlite3 看了一眼表结构,新字段类型都对。

这个"升级前导出"的动作,后来变成了我的肌肉记忆,并且在第 09 篇真的救了我一命。伏笔先埋这。

下一篇预告

功能齐了,但那界面我实在没法假装它好看。同事路过我屏幕瞟了一眼:"你这系统是 2010 年的?"

下一篇:美化。我会先翻一次车——一句"帮我美化一下",它给我上了彩虹渐变。然后我总结出一个审美公式,一次到位。