手把手从零到一打造在线文档之书写需求文档

2,451 阅读11分钟

作者:UOrb

声明:文章为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!

前言

虽然很多描述看起来比较 "主观" 哈,但是这是为了迎合 文章 形式,正常来说需求文档要以 "客观真实" 的形式来进行书写才是。

项目背景

勉强算是兴趣使然吧,之前做 wangEditor 的时候,稍微对 富文本编辑器 有些许了解,也曾经规划过类似平台的计划,只是最终没有实施出来。

然后 wangEditor 做第五版本的重构的时候,由于工作上的原因导致脱节了,也就没有继续参加的开发了。

接着又因为一些原因,现在的业务时间上相对来说比较宽裕,但是 wangEditor 第五版本已经做的差不多了,也就没有必要再参与进去了,所以就想着有没有其他的东西可以做,就想到了之前规划的 平台 和之前比较感兴趣的 协同算法,最终就有了想做一个 在线文档 的想法。

掘金签约作者计划的签约作者需要针对某个方向(专栏)写一系列的文章,正好可以和上述的想法融合在一起,所以就有了 手把手从零到一打造在线文档 专栏了。

项目价值

一般来说,大部分在公司的工作都和 业务场景 脱离不了关系,而然正常来说仅仅只是做业务是容易到达瓶颈的,出去找工作也很难有多高的 竞争力,所以需要有一个另外的渠道让自己更 专注 于技术或者某个领域,在提高自己的技术能力之外,同时在找相对应的工作时也更有 竞争力

由自己来从零到一来定义一个项目需要经历 需求收集 - 需求调研 -> 需求分析 -> 需求评审 -> 技术调研 -> 技术方案设计 -> 前端开发 -> 后端开发 -> 项目部署 -> 运维 -> 迭代 等过程,一般来说根据各自 岗位和职责 的不同会分属到整个流程中的某个部分,很少会有人能 贯穿始末,但是这里就需要自己一个人负责和处理所有阶段的内容,从一而终 贯穿始末,这可以让自己更加了解到一个项目 完整 的生命周期,可以对自己工作中的 定位 更加清晰。

同时也可以收获一个符合自己习惯和预期(根据自己的习惯、需求和想法来实现在线文档,不必一定文章一毛一样的)的在线文档,甚至可以引入到公司中,作为公司内部专属的在线文档和知识库,给自己的晋升和年终奖打下基础(狗头保命)。

竞品调研

正儿八经的竞品调研阶段的文案,会很严谨,而且会有详细的说明以及对比后的优缺点。

一般来说想要确定一个 明确的需求 是需要做相对应的 需求调研 的,我本人也 没有 正儿八经的系统学过也 没有 该方面的具体经验,所以这里只是趋于我使用过的在线文档,例如:语雀、腾讯文档、飞书文档 等,再结合自身的 体验 来决定我自己要做的 在线文档 具有哪些功能以及形式。

调研之语雀

我个人用的最多的在线文档应该就是 语雀 了,首先我最喜欢的可能就是 知识库 的面板功能了,虽然转换过来就是 文件夹 + 文件列表展示 的能力,但是可以很好的对文件进行分类和管理,比直接的文件夹看起来会更明确,至少对于我来说 语雀 的 知识库 给我的体感很好。

但是语雀 空间 + 团队 + 知识库 + 更新 的链路着实有些长,操作起来着实有些繁琐,特别是 更新 的操作那是又爱又恨,爱是因为编辑后的文档不是实时更新的,可以调整好后再进行更新,恨是因为经常编辑完成后忘记点更新按钮进行更新。

调研之飞书文档和腾讯文档

飞书文档和腾讯文档的形式 基本类似,市面上大部分的 在线文档 也都是这种形式,类似于 Office、WPS 等办公软件。

个人 其实是不太喜欢或者适应这种形式,因为在 电脑 上一般是通过电脑的 文件资源管理器 来对文件进行 分门别类管理 的,事实上对于大部分人来说想要编辑某个文档第一步是通过 文件资源管理 来找到该文档文件,而不是通过打开 客户端客户端记录 里面查找。

但是这类文档的 链路 相对来说就比较短了,一般来说都是同首页的最近或者搜索 查找 某一个文件,当然它们也能创建文件夹什么的,但是 UI 视图都是列表,而且无法创建单独的空间出来,所以不那么 直观,相对来说操作也会更 便捷和简洁 一些。

调研结论

总的来说各大在线文档都有自己的 优势和劣势,它们的 倾向 各不相同,所以也没有什么高低之分,用户只需要根据自身的具体情况和 需求 来选择最符合自己预期的就好。

那么对于我来说,首先我需要能创建 独立的空间 并且需要更好的文档 分类和管理(强迫症?) 的能力,所以我打算参考语雀的 空间 + 团队 + 知识库 的形式,但是语雀的 空间 对于我来说很多余,而且会拉长整体的路径让操作的 过于繁琐,而且语雀的团队已经能 满足 我的创建独立空间的需求,所以稍微调整一下,我只需要 独立空间 + 知识库 的路径。

另外关于保存是 手动更新 还是 自动更新 这件事儿吧,我还是比较拿捏不准的,自动保存非常方便,但是有时候没写完或者试验性的写作就不太想让它直接展示出去,手动保存的可控性非常的强,可以自己控制是否要把当前更新进行展示,虽然可以考虑一下给每个文档添加一个配置,是否自动保存的选项,勾选了则会自动保存,否则需要手动保存,但实际上也是延长了整个操作链路有点多此一举的感觉,由于初期是 个人项目 没有太多的展示负担,所以先决定使用 自动更新 的方案。

功能需求

在线文档的 核心难点 在于 富文本编辑、协同算法 等方面内容,其他也只是正常的业务范围,富文本编辑其实可以在 Github 上找到很多优秀的开源项目,协同算法 这个不是初期考虑的事情,是后期迭代中重要的功能。

功能结构

image.png

登陆和注册

登陆和注册就没啥可说的了,基本都那样,原型图这咱这也 设计 不出啥好看的 UI 不是。

登陆和注册成功后自动跳转至 个人中心 页面

用户名最短六位数,最长不能超过二十六位数,必须由字母开头,不能含特殊字符;
密码最短六位数,最长不能超过二十六位数,不能含特殊字符。 image.png

个人中心

个人中心属于在线文档的 主要页面 了,大部分情况下使用在线文档 第一步 都是会进入到个人中心页面,然后通过个人中心页面再来 流转到 其他的功能页面或者文档之中,所以个人中心直接就对标着 用户体验度 的好坏了。

知识库面板

一个空间下面可以创建若干个知识库,一个知识库下面可以创建若干文档,文档必然有一个所属的知识库,知识库必然有一个所属的空间。

通过个人中心上方的 header 中的 操作栏目 中的 新增空间 按钮,可以唤出新增空间弹框,新增空间弹框中需要填写 空间名称简介 两项数据,当然也可以根据 需求 来设置更多的项进行填写和配置。

编辑空间则通过 面板 中的 标签页 切换到设置中进行更新。

创建空间需要填写空间名称和空间简介,其中空间名称是必填且不能有特殊字符。

新增知识库则需要在知识库面板的 功能按钮 中点击新增按钮,唤起新增知识库弹窗,弹窗中需要填写知识库的 名称简介,并且需要选择新增到的空间,默认选择当前空间

已有知识库的信息变更则可以在对应知识库卡片上的 操作下拉菜单 中唤起编辑弹框,也可以在知识库详情中唤起编辑弹框。

创建知识库需要填写知识库名称、知识库简介以及所属空间,其中知识库名称和所属空间是必填且不能有特殊字符。

同时知识库面板可以通过操作下拉菜单对自己进行重命名、删除等操作。

image.png image.png image.png image.png

知识库目录

点击知识库面板的知识库名称,就会进入到知识库目录,会通过列表的形式展示该目录下的所有文档,并且可以通过操作下拉菜单对文档进行打开、删除、配置变更等操作;同时也可以在目录中创建新的文档。 image.png image.png image.png

最近浏览

浏览记录可以帮助使用者快速的 回顾 最近浏览的文档,可以在某种程度上快速找到 目标文档 ,减少操作路径,浏览记录也是以 文档列表 的形式展示,通过 访问时间 进行倒序排列。

浏览记录的 文档列表知识库文档列表 的形式相近,但是无法对文档进行修改配置、删除等操作,只能打开该文档,浏览记录中也无法创建新的文档。

浏览记录中可以通过搜索功能快速查询指定文档。 image.png

回收站

回收站是用户近期删除的文档集合,也是以 文档列表 的形式展示,回收站内的文档无法进行查看、更新、修改配置等操作,只能对其进行操作栏目的 恢复、直接删除 的操作,恢复会将该文档的删除取消,文档将会回到原始的知识库中,直接删除则是将文档彻底的删除了,再也找不回来了。

回收站中可以通过搜索功能快速查询指定文档。 image.png

结尾

其实本文的需求说明,还是非常的 粗糙,正常来说 需求文档 会在功能说明的时候附带上原型上展示内容的 字段说明 、操作说明、字段说明、数据来源、状态判定关系 等等。

然后这毕竟属于 个人项目 ,所有的一切 "自己" 进行把控,所以 需求 相对来说粗糙了很多,因为很多东西 "自己" 可以 选择性 的把控,但是在公司的项目当中,由于是 多人、跨团队 的协作开发,所以需求 越具体、越清晰 就越好,同时在你阅读或者书写技术方案设计的时候,发现需求有不清楚或者不合理的时候,就要 及时 的去反馈和咨询,尽早和尽可能的把 前端、后端、产品 三方对需求的理解 对齐,不然放任不管到最后可能会导致各种各样的 问题,例如:反复横跳、方案重做、项目延期 等情况。

一个好的需求文档,能让项目开发少走很多 弯路,能让 前端、后端、设计 在内的所有项目参与人员对自己要做的需求有一个 明确的画像,能更快更好的完成需求内容。

最后总结一句:无他,唯胸有成竹尔。