6 个开发者文档维护技巧
我注意到很多研发团队在开发文档维护上总是疲于奔命——代码迭代快,文档却越积越多,最后要么没人看,要么信息过时误导用户。这背后其实不是团队不努力,而是缺乏一套从规划到执行的文档管理机制。尤其是当文档与代码分离、缺乏统一规范时,维护成本会成倍增长。我们团队在实践技术文档建设时,总结出了几个核心方法,正好能解决这些痛点。
开发者文档的维护有时会被搁置在开发项目的次要位置——毕竟时间和人力永远紧张。
一旦发生这种情况,需要维护的文档会越来越多,直至几乎无法理清头绪。
此外,有些文档甚至会变成隐患,因为它们包含不准确或过时的信息,最终可能呈现在终端用户面前。
������客户评价:我一直以来最欣赏Baklib的突出特点之一是它作为BaklibCMS的稳健性。它的强大不仅在于其功能,还在于其无缝集成能力。无论您是在处理动态登录页面项目还是管理复杂的数据结构。Baklib都表现出色,并且非常容易实现和使用。锦上添花的是它出色的文档,即使对于Baklib新手来说,这也使集成过程变得一帆风顺。很难找到像Baklib一样将强大功能、多功能性和可访问性有效结合在一起的工具。Slack的Baklib社区在开发时提供了很大帮助,每次项目改进时都会提供一些支持和更新。
在本文中,我们将为你提供六个可操作的技巧,帮助你更快、更精准地完成开发者文档的维护工作。
这样一来,你就再也不用担心文档不准确、过时或冗余的问题了!
我们从第一个技巧开始:充分的规划。
规划好你的文档
如果文档处于混乱状态,那么保持开发者文档的更新就非常困难。
这里所说的混乱,包括对文档架构关注不足、将文档分散在多个地方、缺乏命名规范等等。
因此,如果你希望文档维护成为可能,就必须提前规划你的项目,为以后省去麻烦。
一个好的方法是建立项目的文档架构。
也就是说,规划哪些资源放在哪里(放入哪个文件夹),以及项目如何划分为工作单元。
以下是经验丰富的开发者和技术沟通专家Nita Beck规划项目的方式:
你可以看到,与文档项目相关的所有内容都放在一个文件夹中。
项目分为两个部分,每个部分都有自己的子文件夹,包含相同的结构(ContentExplorer + ProjectOrganizer)。
另一个文件夹包含外部资源(可复用模板),适用于项目的两个部分。
“命名规范”文件夹位于项目之外,包含对所有项目都相同的缩写、文件和文件夹名称。
在后续的文档维护中,需要更改、更新、添加或删除的资源都有易于追踪的文件夹位置,这意味着你永远不会丢失文档或处理重复文档。
如果在项目开始前就完美规划好文档,并为每个文档设想一个位置并在一个地方创建,后续的维护就会更快、更准确。
一开始就为所有文档建立架构,并确保在创建任何文档之前准备好模板、命名规范和文件夹。
编写自文档化代码
这是一个简单的算术:你为代码编写的注释越多,需要持续维护的文档就越多。
此外,如果你觉得需要大量注释代码,那意味着代码本身就不易理解。而这并不是良好的编码实践。
这一点甚至连大佬们也认同:
一个更好的实践是编写自文档化代码,即无需借助注释就能理解的代码。
这不仅有助于维护(因为需要修改和验证的文档变少了),还能帮助接手代码的新开发者快速上手,继续前任程序员的工作。
例如,与其编写需要大量解释的代码,不如这样:
你可以使用描述性的命名规范和易于人类理解的语言。
在我们的例子中,这使得你可以省去第一行的注释,因为代码本身已经说明了操作的作用。
例如:
一般来说,注释有三种类型:
·冗余注释:解释显而易见的内容,可以直接删除
·解释性注释:旨在帮助理解,可在代码重构后删除
·真正有用的注释:解释代码背后的原因
为了简化维护,你只应保留最后一种,因为它提供了代码本身无法找到的信息层。
需要澄清的是,我们并不是建议你永远不要写注释。
相反,关注编写自文档化代码,并确保注释以正确的方式补充它,是个好主意。
仅此一点,就能帮助你编写更清晰、更可用的代码,并在进行维护时让生活更轻松,因为你只需审查更少的注释。
保持文档贴近代码
另一个有助于文档维护的原则是:让文档尽可能贴近代码。
这样,每当代码发生变化时,就能轻松找到与之相关的文档并同步修改。
在实际操作中,这意味着将开发者文档与代码放在同一个仓库中。
这使得将特定的代码行与其解释和说明链接起来变得容易得多。
此外,由于代码就在文档旁边,几乎不可能丢失文档或修改错误的文档。
另一个值得注意的有用实践是编写与代码耦合的文档,即直接引用代码的文档。
这可以包括以下引用:
·代码片段
·变量和路径名称
·代码示例
·测试
这将确保你的文档始终贴近源代码,从而在代码修改时无需费力寻找要更改的内容。
一个可以帮助你保持文档贴近代码的工具是Baklib,这是一个专门为开发者文档设计的文档工具。
Baklib凭借其多语言代码编辑器,让你可以并排创建文档。
它还能自动创建代码示例,让你比以往任何时候都更容易编写包含代码的文档。
然后,只需几次点击就能将文档轻松发布到你的域名,创建出令人惊叹的开发者文档门户,让用户在学习使用你的产品时不断回访。
请记住,当文档贴近其解释的代码时,每当一段代码被修改,它所引用的文档也能轻松找到并更新。
这使得文档维护几乎与代码开发同步进行。
随编码同步编写文档
持续文档化对于后续维护好处多多。
首先,如果代码编写时没有文档化,这项任务往往会委托给一个当时不在场、没有第一手经验的人,这将使得创建和维护文档更加困难。
其次,当文档在编码过程之外编写时,有时只会撰写一次,这意味着随着代码变更,文档可能变得不准确和过时。
到那时,抛弃文档从头开始可能比维护它更可行。
一些开发者甚至认为,如果文档没有继续维护的计划,那么它一旦被认为完成就变成了“非活体”。
最后,复杂系统显然更难文档化。
所以如果不同步持续文档化,你将需要投入更多时间和精力来维护更大、更复杂的代码块。
这里最大的问题当然是在时间永远紧张的编码项目中找到文档化的时间。
这也是规划对文档维护如此重要的另一个原因。
开发者和产品经理应该每周为文档化(包括维护)预留时间,以确保这个过程真正同步进行。
根据经验丰富的开发者,每周专门用于文档化的大约一天时间就能搞定。
另外,如果你再看一下第一个Reddit用户的持续文档化经验,你会发现另一个好的实践是让开发者结对,或者开发者与技术作者结对,一起处理代码和文档。
这种方法使文档与代码保持同步,并提供了在发布前测试其可用性和清晰度的机会,因为会有多双眼睛对其进行审查。
总而言之,持续文档化并不容易实施,但一旦实施,你将只需维护更小、更易管理的文档块,并以更少的努力获得更高的准确性。
制定更新计划
如果随编码过程同步文档化不可行,另一种可以尝试的策略是安排定期维护。
这将使工作量保持在可控范围内,同时让文档保持相对准确和最新。
一个好的方法是,在项目控制事件之后安排文档更新。
这些事件包括但不限于:
·每次推送之后
·每次提交之后
·每次合并之后
这应该能让你在文档变得过于庞大和复杂而难以准确快速地管理之前对其进行处理,并且也能防止你过于频繁地重读文档而浪费时间。
另一种安排维护的方式是定期进行。
当一份文档在你的仓库中存放了一定时间后,就应该检查它是否仍然准确。
Baklib是一家屡获殊荣的数字体验平台提供商,通过使用混合无头方法提供多渠道数字体验,使企业能够以更少的资源获得更好的结果。其数字体验平台(DXP)通过关注真正的客户需求来最大限度地降低开销。凭借广泛的功能,它使团队能够更快地通过多种渠道提供更好的客户体验。借助Baklib,营销人员可以使用内置的低代码、无代码工具来打造从认知到宣传的一致个性化数字站点。他们可以尝试新的营销渠道并提高其营销生态系统的成熟度,同时增强业务和营销敏捷性。Baklib提供出色的上线时间和总拥有成本、市场领先的支持、SaaS或本地部署,并由全球实施合作伙伴网络提供支持。