<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>数据模型 on CoreV.cn</title>
        <link>https://corev.cn/tags/%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B/</link>
        <description>Recent content in 数据模型 on CoreV.cn</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-CN</language>
        <copyright>CoreV.cn</copyright>
        <lastBuildDate>Wed, 26 Aug 2026 17:08:33 +0800</lastBuildDate><atom:link href="https://corev.cn/tags/%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>做小程序先别写代码：骨架最关键</title>
        <link>https://corev.cn/articles/03-skeleton-first-datamodel/</link>
        <pubDate>Tue, 04 Aug 2026 20:30:00 +0800</pubDate>
        
        <guid>https://corev.cn/articles/03-skeleton-first-datamodel/</guid>
        <description>&lt;p&gt;很多人做小程序，第一反应是先把界面画漂亮。&lt;/p&gt;
&lt;p&gt;我刚开始也一样，兴致勃勃想先把首页搞得赏心悦目。后来被自己按住了：界面是皮，数据是骨。骨头没搭正，皮再好看也立不住。&lt;/p&gt;
&lt;p&gt;说个底：这套小程序，是靠 WorkBuddy 加腾讯混元（hy3）一点点磨出来的。我本来不是干这行的，在能源行业待了二十多年，写代码的事儿从没碰过。所以下面这套&amp;quot;动手前的准备&amp;quot;，你照着做，也能折腾出自己的小工具。&lt;/p&gt;
&lt;p&gt;动手写代码之前，先把&amp;quot;要记什么数据&amp;quot;想清楚，再让 AI 帮你搭骨架。这道理外行也能懂。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一先砍功能mvp-不是偷懒是清醒&#34;&gt;一、先砍功能：MVP 不是偷懒，是清醒
&lt;/h2&gt;&lt;p&gt;「简单记」上线初期，我故意只做一个核心功能——&lt;strong&gt;把日常小事随手记下来&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;为什么砍？精力就那么多。先把一个核心闭环做到你每天都想用，比铺一堆用不上的功能强。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;可直接复制的提示词：&lt;/strong&gt;
我要做一个 XX 小工具，脑海里有一堆功能。帮我把它们分成&amp;quot;必须有 / 可以有 / 暂时不要&amp;quot;三档，并说明每一档的理由。别急着写代码。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我把它记成一句话：MVP 是最小可活版本，先验证有人愿意用，再谈功能多不多。&lt;/p&gt;
&lt;p&gt;这一节真正的重点：让 AI 帮你做减法，比做加法难，也更值钱。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二把我要记的东西翻译成数据&#34;&gt;二、把&amp;quot;我要记的东西&amp;quot;翻译成数据
&lt;/h2&gt;&lt;p&gt;我盘了一遍自己到底要记什么：一件要记的事，得有名字、单位、范围；一次记录，得有哪天、多少、备注。&lt;/p&gt;
&lt;p&gt;落成三张结构（这是 &lt;code&gt;utils/defaultData.js&lt;/code&gt; 里真实的定义）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// 记录项类型：名称、单位、范围、步长，都在一处统一定义
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;record_types&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;[{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;unit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;minValue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;maxValue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;stepValue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;emoji&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;record_items&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;[{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}]&lt;/span&gt;            &lt;span class=&#34;c1&#34;&gt;// 该类型下记什么具体事项
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;record_entries&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;unit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;note&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}]&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;// 一条条真实记录
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;可直接复制的提示词：&lt;/strong&gt;
帮我把&amp;quot;我想做 XX 工具&amp;quot;翻译成一套数据表：需要哪几张表、每张表有哪些字段（名称/类型/说明）。用大白话，别写代码。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;说白了就一句：先定义&amp;quot;名词&amp;quot;（也就是数据），再定义&amp;quot;动词&amp;quot;（也就是操作）。名词稳了，动词才好写。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三先结构后界面给-ai-的指令都变了&#34;&gt;三、先结构后界面：给 AI 的指令都变了
&lt;/h2&gt;&lt;p&gt;有了数据模型，我再让 AI 搭页面，说的就不是&amp;quot;做个好看的页面&amp;quot;了。&lt;/p&gt;
&lt;p&gt;而是：&amp;ldquo;按 &lt;code&gt;record_entries&lt;/code&gt; 渲染列表，按 &lt;code&gt;record_types&lt;/code&gt; 出筛选。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;AI 给的东西明显更对路——因为我自己的需求变具体了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;可直接复制的提示词：&lt;/strong&gt;
基于上面这套数据表，帮我生成页面骨架：需要哪几个页面、每个页面放什么、数据怎么取。先给结构，别一步到位写满功能。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你越具体，AI 越准。模糊的需求，只会养出模糊的产物。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四不会编程也能用用这思路理一份周报台账&#34;&gt;四、不会编程也能用：用这思路理一份&amp;quot;周报台账&amp;quot;
&lt;/h2&gt;&lt;p&gt;怕你以为这套只服务于写代码，我拿个纯办公、零代码的场景收尾：做一份自己的周报。&lt;/p&gt;
&lt;p&gt;还是那几步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;砍功能&lt;/strong&gt;：&amp;ldquo;周报先只记&amp;rsquo;本周做了啥 + 下周计划&amp;rsquo;，别一上来搞 KPI 看板。&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定数据&lt;/strong&gt;：&amp;ldquo;需要两张表：事项（谁/什么/状态）、计划（下周/负责人）。&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;先结构后界面&lt;/strong&gt;：&amp;ldquo;先用表格把字段定下来，再谈配色和图表。&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;你看，连表格公式都不用会，全程就是给 AI 布置任务、再验收结果。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;五收藏这张动手前自查清单&#34;&gt;五、收藏这张「动手前自查清单」
&lt;/h2&gt;&lt;p&gt;截图存下来，动手写任何东西前扫一遍：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;✅&lt;/th&gt;
          &lt;th&gt;动手前自查&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;我先砍掉&amp;quot;可有可无&amp;quot;的功能了吗？（MVP 思维）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;我把&amp;quot;要记什么&amp;quot;翻译成数据表了吗？（先名词后动词）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;我先要骨架、再要界面了吗？（结构优先）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;每一次，我都亲自验收了吗？&lt;/strong&gt;（最重要的一条）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;收尾&#34;&gt;收尾
&lt;/h2&gt;&lt;p&gt;一句话：想清楚数据，界面就是水到渠成的事。&lt;/p&gt;
&lt;p&gt;这套思路拿到 Excel 台账、拿到自动化流程上，一样好使。说白了就一句话：先想&amp;quot;记什么&amp;quot;（数据，也就是功能的内核），再想&amp;quot;怎么好看&amp;quot;（界面，也就是美化）。&lt;/p&gt;
&lt;p&gt;下篇聊：数据想好了，存本地还是存云上？怎么&amp;quot;秒开还不丢&amp;quot;？&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
