作者:UOrb
声明:文章为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!
前言
虽然很多描述看起来比较 "主观" 哈,但是这是为了迎合 文章 形式,正常来说需求文档要以 "客观真实" 的形式来进行书写才是。
项目背景
勉强算是兴趣使然吧,之前做 wangEditor 的时候,稍微对 富文本编辑器 有些许了解,也曾经规划过类似平台的计划,只是最终没有实施出来。
然后 wangEditor 做第五版本的重构的时候,由于工作上的原因导致脱节了,也就没有继续参加的开发了。
接着又因为一些原因,现在的业务时间上相对来说比较宽裕,但是 wangEditor 第五版本已经做的差不多了,也就没有必要再参与进去了,所以就想着有没有其他的东西可以做,就想到了之前规划的 平台 和之前比较感兴趣的 协同算法,最终就有了想做一个 在线文档 的想法。
掘金签约作者计划的签约作者需要针对某个方向(专栏)写一系列的文章,正好可以和上述的想法融合在一起,所以就有了 手把手从零到一打造在线文档 专栏了。
项目价值
一般来说,大部分在公司的工作都和 业务场景 脱离不了关系,而然正常来说仅仅只是做业务是容易到达瓶颈的,出去找工作也很难有多高的 竞争力,所以需要有一个另外的渠道让自己更 专注 于技术或者某个领域,在提高自己的技术能力之外,同时在找相对应的工作时也更有 竞争力。
由自己来从零到一来定义一个项目需要经历 需求收集 - 需求调研 -> 需求分析 -> 需求评审 -> 技术调研 -> 技术方案设计 -> 前端开发 -> 后端开发 -> 项目部署 -> 运维 -> 迭代 等过程,一般来说根据各自 岗位和职责 的不同会分属到整个流程中的某个部分,很少会有人能 贯穿始末,但是这里就需要自己一个人负责和处理所有阶段的内容,从一而终 贯穿始末,这可以让自己更加了解到一个项目 完整 的生命周期,可以对自己工作中的 定位 更加清晰。
同时也可以收获一个符合自己习惯和预期(根据自己的习惯、需求和想法来实现在线文档,不必一定文章一毛一样的)的在线文档,甚至可以引入到公司中,作为公司内部专属的在线文档和知识库,给自己的晋升和年终奖打下基础(狗头保命)。
竞品调研
正儿八经的竞品调研阶段的文案,会很严谨,而且会有详细的说明以及对比后的优缺点。
一般来说想要确定一个 明确的需求 是需要做相对应的 需求调研 的,我本人也 没有 正儿八经的系统学过也 没有 该方面的具体经验,所以这里只是趋于我使用过的在线文档,例如:语雀、腾讯文档、飞书文档 等,再结合自身的 体验 来决定我自己要做的 在线文档 具有哪些功能以及形式。
调研之语雀
我个人用的最多的在线文档应该就是 语雀 了,首先我最喜欢的可能就是 知识库 的面板功能了,虽然转换过来就是 文件夹 + 文件列表展示 的能力,但是可以很好的对文件进行分类和管理,比直接的文件夹看起来会更明确,至少对于我来说 语雀 的 知识库 给我的体感很好。
但是语雀 空间 + 团队 + 知识库 + 更新 的链路着实有些长,操作起来着实有些繁琐,特别是 更新 的操作那是又爱又恨,爱是因为编辑后的文档不是实时更新的,可以调整好后再进行更新,恨是因为经常编辑完成后忘记点更新按钮进行更新。
调研之飞书文档和腾讯文档
飞书文档和腾讯文档的形式 基本类似,市面上大部分的 在线文档 也都是这种形式,类似于 Office、WPS 等办公软件。
我 个人 其实是不太喜欢或者适应这种形式,因为在 电脑 上一般是通过电脑的 文件资源管理器 来对文件进行 分门别类 和 管理 的,事实上对于大部分人来说想要编辑某个文档第一步是通过 文件资源管理 来找到该文档文件,而不是通过打开 客户端 在 客户端 的 记录 里面查找。
但是这类文档的 链路 相对来说就比较短了,一般来说都是同首页的最近或者搜索 查找 某一个文件,当然它们也能创建文件夹什么的,但是 UI 视图都是列表,而且无法创建单独的空间出来,所以不那么 直观,相对来说操作也会更 便捷和简洁 一些。
调研结论
总的来说各大在线文档都有自己的 优势和劣势,它们的 倾向 各不相同,所以也没有什么高低之分,用户只需要根据自身的具体情况和 需求 来选择最符合自己预期的就好。
那么对于我来说,首先我需要能创建 独立的空间 并且需要更好的文档 分类和管理(强迫症?) 的能力,所以我打算参考语雀的 空间 + 团队 + 知识库 的形式,但是语雀的 空间 对于我来说很多余,而且会拉长整体的路径让操作的 过于繁琐,而且语雀的团队已经能 满足 我的创建独立空间的需求,所以稍微调整一下,我只需要 独立空间 + 知识库 的路径。
另外关于保存是 手动更新 还是 自动更新 这件事儿吧,我还是比较拿捏不准的,自动保存非常方便,但是有时候没写完或者试验性的写作就不太想让它直接展示出去,手动保存的可控性非常的强,可以自己控制是否要把当前更新进行展示,虽然可以考虑一下给每个文档添加一个配置,是否自动保存的选项,勾选了则会自动保存,否则需要手动保存,但实际上也是延长了整个操作链路有点多此一举的感觉,由于初期是 个人项目 没有太多的展示负担,所以先决定使用 自动更新 的方案。
功能需求
在线文档的 核心难点 在于 富文本编辑、协同算法 等方面内容,其他也只是正常的业务范围,富文本编辑其实可以在 Github 上找到很多优秀的开源项目,协同算法 这个不是初期考虑的事情,是后期迭代中重要的功能。
功能结构
登陆和注册
登陆和注册就没啥可说的了,基本都那样,原型图这咱这也 设计 不出啥好看的 UI 不是。
登陆和注册成功后自动跳转至 个人中心 页面
用户名最短六位数,最长不能超过二十六位数,必须由字母开头,不能含特殊字符;
密码最短六位数,最长不能超过二十六位数,不能含特殊字符。
个人中心
个人中心属于在线文档的 主要页面 了,大部分情况下使用在线文档 第一步 都是会进入到个人中心页面,然后通过个人中心页面再来 流转到 其他的功能页面或者文档之中,所以个人中心直接就对标着 用户体验度 的好坏了。
知识库面板
一个空间下面可以创建若干个知识库,一个知识库下面可以创建若干文档,文档必然有一个所属的知识库,知识库必然有一个所属的空间。
通过个人中心上方的 header 中的 操作栏目 中的 新增空间 按钮,可以唤出新增空间弹框,新增空间弹框中需要填写 空间名称 和 简介 两项数据,当然也可以根据 需求 来设置更多的项进行填写和配置。
编辑空间则通过 面板 中的 标签页 切换到设置中进行更新。
创建空间需要填写空间名称和空间简介,其中空间名称是必填且不能有特殊字符。
新增知识库则需要在知识库面板的 功能按钮 中点击新增按钮,唤起新增知识库弹窗,弹窗中需要填写知识库的 名称 和 简介,并且需要选择新增到的空间,默认选择当前空间
已有知识库的信息变更则可以在对应知识库卡片上的 操作下拉菜单 中唤起编辑弹框,也可以在知识库详情中唤起编辑弹框。
创建知识库需要填写知识库名称、知识库简介以及所属空间,其中知识库名称和所属空间是必填且不能有特殊字符。
同时知识库面板可以通过操作下拉菜单对自己进行重命名、删除等操作。
知识库目录
点击知识库面板的知识库名称,就会进入到知识库目录,会通过列表的形式展示该目录下的所有文档,并且可以通过操作下拉菜单对文档进行打开、删除、配置变更等操作;同时也可以在目录中创建新的文档。
最近浏览
浏览记录可以帮助使用者快速的 回顾 最近浏览的文档,可以在某种程度上快速找到 目标文档 ,减少操作路径,浏览记录也是以 文档列表 的形式展示,通过 访问时间 进行倒序排列。
浏览记录的 文档列表 和 知识库文档列表 的形式相近,但是无法对文档进行修改配置、删除等操作,只能打开该文档,浏览记录中也无法创建新的文档。
浏览记录中可以通过搜索功能快速查询指定文档。
回收站
回收站是用户近期删除的文档集合,也是以 文档列表 的形式展示,回收站内的文档无法进行查看、更新、修改配置等操作,只能对其进行操作栏目的 恢复、直接删除 的操作,恢复会将该文档的删除取消,文档将会回到原始的知识库中,直接删除则是将文档彻底的删除了,再也找不回来了。
回收站中可以通过搜索功能快速查询指定文档。
结尾
其实本文的需求说明,还是非常的 粗糙,正常来说 需求文档 会在功能说明的时候附带上原型上展示内容的 字段说明 、操作说明、字段说明、数据来源、状态判定关系 等等。
然后这毕竟属于 个人项目 ,所有的一切 "自己" 进行把控,所以 需求 相对来说粗糙了很多,因为很多东西 "自己" 可以 选择性 的把控,但是在公司的项目当中,由于是 多人、跨团队 的协作开发,所以需求 越具体、越清晰 就越好,同时在你阅读或者书写技术方案设计的时候,发现需求有不清楚或者不合理的时候,就要 及时 的去反馈和咨询,尽早和尽可能的把 前端、后端、产品 三方对需求的理解 对齐,不然放任不管到最后可能会导致各种各样的 问题,例如:反复横跳、方案重做、项目延期 等情况。
一个好的需求文档,能让项目开发少走很多 弯路,能让 前端、后端、设计 在内的所有项目参与人员对自己要做的需求有一个 明确的画像,能更快更好的完成需求内容。
最后总结一句:无他,唯胸有成竹尔。