🧡 第九章 从零开始构建一个完整产品
📄 一句话概括

初始化时先定规矩而不是先写功能;五项产出里最容易被忽略的是【一个假数据】——没有输入,最后才发现流程跑不通就来不及了。

📝 本节和前面几节的关系

上一节定了要做什么,这一节把它变成一个能跑起来的空壳。

一、初始化该产出五样

目录骨架(职责不混)、规则文件(第 5 章那四块)、一条命令(跑一次就出结果)、 一个假数据、版本管理(装好且已存第一档)。 本节的演示把它们逐条列出,附上【为什么现在就要】。

二、为什么先定规矩而不是先写功能

功能随时能写,规矩错过第一次开工就补不回来了。 因为规矩是写给它的——它没读过你的项目,就只能按默认来。 第 5.1 节说过:规则写错了它只是默默做错事,你不会被提醒。

三、【一个假数据】为什么最容易被忽略

它决定了后面所有阶段能不能顺利。 没有输入,你就只能等真数据——等到最后才发现流程跑不通,那就晚了。 三个假数据就够:一个正常的、一个缺字段的、一个格式怪的。第三个专门用来测报错。

四、【一条命令】的价值

跑一次就能出结果,不靠手点。 这一点和第 7.6 节的 command 是同一个道理:把每次都要做的那一串固定下来。 手点着跑,第一次和第十次跑的就不是同一个东西了。

五、动手 Demo:Phase 1——项目初始化

下面把初始化该产出的五样摆开,各附一条理由。

items = [(u"目录骨架", u"src/、data/、out/ 三层,职责不混"),
          (u"规则文件", u"把第 5 章那四块写进去"),
          (u"一个假数据", u"没有输入也能跑通,出样例文件"),
          (u"版本管理", u"装好,且已经存了第一档")]

实跑输出:

--------------------------------------------------------------------
Phase 1——项目初始化
--------------------------------------------------------------------

初始化时先定规矩,而不是先写功能。下面是一个初始化该产出的清单:

  产出什么       为什么现在就要
  ------------------------------------------------
  目录骨架       src/、data/、out/ 三层,职责不混
  规则文件       把第 5 章那四块写进去
  一条命令       跑一次就能出结果,不靠手点
  一个假数据     没有输入也能跑通,出样例文件
  版本管理       装好,且已经存了第一档

最后一条【一个假数据】最容易被忽略,但它决定了后面所有阶段能不能顺利——
**没有输入你就只能等真数据,等到最后才发现流程跑不通。**

【一个假数据】那行最容易被人跳过,但它决定了后面所有阶段能不能顺利。 本节的提醒:没有输入就发现不了流程问题——三个假数据就够,其中一个专门测报错。

30 秒实验

  1. 现在就把你的项目的五样初始化做出来,尤其是三个假数据。
  2. 跑一次那条命令——只要一条命令就能出结果,这个项目才算立住了。

常见误区

  1. 先写功能,规矩以后补。规矩错过第一次开工就补不回来。
  2. 只放一个正常数据。缺字段和格式怪的那两个,专门是用来测报错的。
自测三问(点开对答案) 1. 初始化该产出哪五样? —— 目录骨架、规则文件、一条命令、一个假数据、版本管理。 2. 为什么先定规矩再写功能? —— 规矩是写给它的,它没读过你的项目就只能按默认来——错过第一次开工补不回来。 3. 假数据要准备几个、分别是什么? —— 三个:正常的、缺字段的、格式怪的;第三个专门测报错。

相关笔记