资深工程师教你写出研发喜欢的文档

软件研发过程中文档 软件研发过程中所需文档 阅读详情

作者|David Cassel

链接|https://thenewstack.io/an-engineers-best-tips-for-writing-documentation-devs-love

看一位热情的演讲者分享他们学到的东西是很有趣的一件事。今年早些时候,Mayson Egger(https://github.com/MasonEgger) 作为演讲者参加了 PyCon 2022 大会(https://us.pycon.org/2022/),他曾是一位工程师,后来成为 Gretel.AI(https://gretel.ai/) 的首席开发者大使。Gretel.AI 是一个提供合成 / 隐私保护数据的平台。

在加入 Gretel 之前,Egger 是 DigitalOcean(https://www.digitalocean.com/) 的开发者布道师和社区作者,他告诉观众,「我今天要教给你们的所有东西都是在那里学到的。」

除此之外,Egger在每年的 Hacktoberfest(https://hacktoberfest.digitalocean.com/) (DigitalOcean 发起的一个推广、支持开源的年度在线活动)都会贡献技术文档,他的幻灯片也得到了来自DigitalOcean 的专业编辑指导。

「DigitalOcean 的教程太棒了,如果你从未看过或使用过它们,一定要去,」Egger 告诉他的观众。事实上,在 TNS,我们发现 DigitalOcean 就同一主题提供的文档通常比其他大型云服务提供商的文档更容易理解。

「在那里,许多优秀的人教会了我大量关于编写文档的知识。现在我想与你们分享。」

达成现实世界中的目标

写作者应该珍惜读者的时间,并始终努力抓住重点。

Kurt Vonnegut 曾建议小说作家,为了加快进度,每个角色都应该渴望一些东西。与此类似,Egger 的第一条建议是建立一个文档将帮助读者实现的清晰目标。Egger 警告说:「不要花时间去夸大你的技术。如果开发者想读小说,他们会去读小说!开发者读文档是来解决问题的。」

因此,假如你真的写了大段推销产品的夸张内容,「无论如何,他们都会跳过这一部分。」

正因如此,由于很多读者会直接跳转到代码示例,Egger 认为示例应始终体现现实世界中的问题。

当 Egger 问道:「你们中有多少人读过搜索到的每个 Stack Overflow 上的解释?有多少人滑到页面的下半部分只看了答案,甚至没有读背后的文字?请举手。我也这么做过。」

写作者应该珍惜读者的时间,并始终努力抓住重点。

「人们会跳过文字去看代码!所以请确保你的代码可以解决现实世界中的问题……」

Egger 后来说,考虑到那些读者工作繁忙,他最重要的建议是始终在发布文档之前验证指导说明。

「比没有文档更糟糕的事情是有错误文档,」他说,「因为没有文档意味着我要去其他地方找,而错误文档浪费了我的时间。」

Egger 用只有在文档作者机器上才能工作的指令场景逗笑了观众。有什么解决方案呢?在另一个开发者的环境中进行测试,并让其他人跟着你的文档操作。

事实上,Egger 甚至认为,应该始终对文档进行组织布局,以便读者能够轻松地浏览文档中的特定信息块,包括标题和副标题,并以粗体突出显示库名。

「这又回到 Stack Overflow 的例子上,」Egger 说。

出于同样的原因,Egger 建议为文档编写目录。浏览文档的人「正努力非常快地解决一个很具体的问题。如果他们已经点开了你的文档,但在 30 秒内没有找到答案,他们将选择 Stack Overflow。」

「唯一比没有文档更糟糕的事情是有错误的文档」

Egger 认为,网站访问者平均在一个网站上花费约 6 秒钟。「他们点击网站,寻找他们需要的东西,如果找不到,他们就会离开。这种情况是常态。」

在这一点上,Egger 的想法似乎呼应了给小说作家的另一条常见建议:「不要告诉别人你的程序库能做什么,而是要向人们演示……」

为了帮助说明,Egger 提醒观众要选择有意义的变量名。「Foo 和 Bar 都没用,」Egger 说。「它们应该被删掉!不要用它们!这些东西毫无意义。」

Egger 后来开玩笑道,他对这件事的态度非常强烈,去掉 Foo 和 Bar 「将成为我竞选总统时的竞选口号。」

包容性和可读性

四月,美联社在下一版的风格指南中发布(https://www.apstylebook.com/blog_posts/18)了关于「包容性叙述」的新章节。Egger 分享了他自己编写包容性文档的方法。首先要避免使用诸如 「菜鸟」之类不友好的词语,甚至是例如「简单」或「容易」之类的评判性词语,因为对某人来说「简单」或「容易」的内容可能会对其他人构成挑战。

「你会惊讶地发现,有多少人因为看到别人告诉他们很简单的事情对他们来说并不简单而感到厌烦。这让他们对整个项目都失去了兴趣。」

文档还应该避免性别化语言,Egger 建议的一种简单方法是只使用如「 你 / you」的第二人称代词。Egger 用一个玩笑阐明了自己的观点。他说道,作为一个得克萨斯州人,当需要使用第二人称复数代词时,他也喜欢「y'all」这个词。在 2021 年线上 All Things Open 大会上,Egger 甚至发表了 12 分钟的演讲,他认为这种常见的德式收缩(在德克萨斯州常见的语言压缩)也会使文档和社区更具包容性。

「你会惊讶地发现,有多少人因为看到别人告诉他们很简单的事情对他们来说并不简单而感到厌烦。这让他们对整个项目都失去了兴趣。」

实现包容性的一种简单方法就是确保所有人都能理解文档。Egger 建议降低文档的适用阅读水平,比如定在三年级水平,同时避免「SAT单词」,即「没有人再在普通白话中使用」这些出现在学术测试中的晦涩单词。但同样,Egger也建议避免过多使用只有专业群体理解的行话。(Egger 指出,「行话这个词本身就是行话,我觉得很搞笑。」)关于这点,Egger 快速提及了一句话来全面总结:

「用人们说话的方式来写作,他们就能更好地使用你的文档。」

事实上,Egger建议在写文档时应假设你的读者完全都是初学者,除非你确认目标读者的水平更高。

同样的道理:应避免提及修辞和流行文化,因为全球读者可能不熟悉这些内容。虽然 Egger 自己也喜欢网络流行语,「但在包容性文档中,应该尽量避免使用网络流行语。」

这给 Egger 带来一个更恼火的问题。另一张幻灯片指出:「科技领域的首字母缩略词太多了。」「一些首字母缩略词甚至有两个或三个意思,」Egger 告诉观众,并补充道,首字母缩略词可能会让初学者望而生畏。

Egger 笑着告诉观众:「我花了更多时间害怕缩略语,因为缩略语而不使用科技。我希望看到它们全部消失,至少在以初学者为中心的内容中消失。」

与 AP Stylebook(https://www.codot.gov/business/grants/safetygrants/assets/APStyleGuideCheatSheet.pdf) 一样,Egger 建议首次使用首字母缩略词时标注全名。Egger 甚至会在文档的开头或结尾提供首字母缩略词和它们的定义。

「完全可以制作一个词汇表」Egger 对观众讲道。

 

研发技术文档 软件研发过程文档模板,方便研发人员或者有需要的人使用 立即下载

相关推荐

你怎么写开发文档

你怎么写开发文档,很详细的哦.

如何写好一份软件开发设计文档

设计文档- 也被称作技术规范和实现手册,描述了你如何去解决一个问题,是确保正确完成工作最有用的工具,其目的是迫使你对设计展开缜密的思考,并收集他人的反馈,进而完善你的想法,同时在软件交付和交接的过程中,能让其他人更通俗易懂的了解之前的设计目的和思路 目录: 一、什么是软件开发设计文档 二、为什么要写软件开发设计文档 三、写软件开发设计文档需要注意些什么 四、怎么写好一份开发设计文档 一、什么是软件开发设计文档 设计文档 - 也被称作技术规范和实现手册,描述了你如何去解决一个问题,是确保.

肖邦的夜曲的专栏 7万+

软件开发计划书(是 一个完整的项目开发文档

软件开发计划书 ..............1.任务申请.doc ..............2.可行性与计划阶段--可行性研究报告.doc ..............2.可行性与计划阶段--项目开发计划.doc ..............3.需求分析阶段--数据要求说明书.doc ..............3.需求分析阶段--用户手册概要.doc ..............3.需求分析阶段--需求说明书.doc ..............4.概要设计阶段--数据库设计说明书.doc ..............4.概要设计阶段--概要设计说明书的.doc ..............4.概要设计阶段--组装测试计划.doc ..............5.详细设计阶段--详细设计说明书.doc ..............6.实现阶段--模块开发说明.doc ..............7.单元测试阶段--单元测试报告.doc

一步一步你如何写开发文档

App开发过程中的文档分为很多种,比如最常见的就是官方的开发文档,这种比较倾向代码和接口,但是你可能还见过或者听过其他文档。比如,这里根据个人理解整理了几个。开发文档需求(原型)文档需求(说明)文档技术方案文档Bug修复文档注释文档代码与UI规范文档性能优化文档是不是有点晕了,哪有这么多鬼,其实按照之前的习惯,我都是一份开发文档就够了,基本上包含上面的东西,只是看你怎么细分。实际开发中如果真的遇到要写上面开发文档可以从下面几个角度写。一. 开发环境及工具。

qq_41854911的博客 2万+

开发文档编写

开发文档的编写可以遵循以下步骤和要点:在编写开发文档时,还需要注意以下几点:

m0_71379438的博客 1181

软件开发文档资料大全(规格说明书,详细设计,测试计划,验收报告)

在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:

2401_83041532的博客 8422

资深牛人:你如何“0基础”成为一名合格的测试工程师

对于一个测试人员来说,学会使用工具是成为一个“工程师”的开始,你可能还不知道GET请求有长度限制、不知道签名验证是怎么回事,但是不重要,起码你知道怎样才是测试的正确姿势了,而不是一昧的点击应用上的按钮。

软件测试小dao 593

DeepSeek重塑软件行业:研发工程师的机遇与挑战

代码生产的效率革命DeepSeek通过自然语言指令生成可运行代码的能力,显著缩短了开发周期。例如,研发工程师输入“用Python实现数据可视化”等需求,系统可快速生成基础代码框架,甚至自动优化算法参数。这种能力尤其适用于标准化功能模块(如CRUD操作)的开发,使工程师能将精力集中于复杂业务逻辑和架构设计。此外,其“全局改写”功能可自动调整代码结构,帮助团队统一编码规范,降低技术债务积累风险。质量保障的智能化升级。

LiuSid7的博客 1157

资深web前端开发工程师的工作职责表述(合集)

1、本科及以上学历,5年及以上web前端开发及小规模团队管理经验,熟练掌握CSS3、HTML5、Javascript、Jquery等前端技术;4、熟练使用JS库,如JQuery、Vue、AngularJS、RequireJS、TypeScript等,要求会一种以上;1、熟练掌握HTML、CSS3、ES6、webpack等规范和技术,熟悉常见跨域、跨浏览器问题,了解必要的计算机网络协议;具有较强的学习能力;– 熟悉医疗影像处理的相关技术,以及该领域的开源和商业软件/工具,有丰富的医疗影像应用开发经验的优先;

AI_data_cloud的博客 860

文档开发过程中,TW如何与研发高效沟通? | 技术传播

在知乎看到一个问题:文档工程师的工作流程怎样的?怎样和技术人员沟通呢?作为一个“不思进取”,长年耕耘IT行业的文档工程师,基于个人经验,简单做一个分享。大家好,我是睿齐,一个技术传播者。首...

BGRichi的博客 397

作为资深c++软件工程师应该掌握的知识概述

摘要:C++仪器研发工程师需掌握现代C++核心特性(智能指针、移动语义、模板元编程等)、系统级编程(硬件接口、实时优化)、常用框架(Boost/Qt/Eigen)及行业协议(SCPI/IVI)。关键能力包括模块化设计、状态机实现、并发架构和工程化实践(CI/CD/测试)。需结合仪器特性(实时性/硬件交互)进行性能优化,并具备跨领域协作能力。核心公式:C++专家+硬件知识+架构思维+行业标准=资深仪器研发工程师。(149字)

m0_73482095的博客 987

研发文档模板(ISO)

ISO研发中心文档 模板齐全,稍加修改即可使用。

求人贴:自动驾驶仿真软件研发、开发工程师

5) 车辆动力学 及其建模;2、精通 C#/C++/Python 语言,熟悉 C#/C++/Python 资源管理、物理引擎、性能分析、可扩展性、高稳定性设计,对 C#/C++/Python 语言有深刻的理解,在开发和调优方面有实际经验;3、开展汽车自动驾驶及其仿真测试的国内外前沿技术趋势分析、市场需求分析、国内外竞品分析等,掌握政府及行业标准规范、组织相关技术与产品研发论证,提出相关产品的技术发展方向;3、对产品及项目负责,撰写产品需求文档,跟进产品研发、测试、发布、运营,协调各部门资源,推进产品。

m0_66199012的博客 504

SHEIN高级/资深iOS研发工程师:技术深度解析与面试指南

SHEIN iOS高级研发工程师岗位要求5年以上开发经验,精通Objective-C/Swift和Flutter混合开发,熟悉MVVM架构及性能优化。核心职责包括App功能开发维护、技术方案评估、代码重构优化及技术文档沉淀。应聘者需具备电商/社交领域开发经验,扎实的计算机专业基础,能独立承担模块开发,并具备优秀的学习能力和团队协作精神。岗位强调大型项目管理能力、代码质量意识和极致用户体验追求,要求熟悉iOS底层框架原理,掌握Instruments等性能分析工具,并能有效参与全流程研发工作。

郑伟强dev的专栏 555

韦世东:计划 35 岁「退休」的资深爬虫工程师

文 | 孙燕前言:我想 35 岁退休从开始学习爬虫到真正赚到钱,韦世东只用了一个月时间。如今作为一名资深爬虫工程师,他已经有了七年的互联网工作经验。除了日常的工作外,随着技术水平不断提高...

图灵教育 2014

简单聊一聊Python工程师任职要求及未来发展方向

一、不同阶段Python工程师任职要求及标准 1、新手入门 任职要求: 熟练掌握python编程语言,熟悉flask或django开发框架者; 一名Python开发工程师的职业规划 熟练使用Windows系统,能使用Word,Excel,Powerpoint工具表达系统设计、代码流程等; 熟悉HTTP协议及W3C相关互联网规范,熟练掌握HTML5、CSS、Javascript尤其是Jquery等页面技术。 任职标准: 从事网络安全、大数据python研发项目; 负责公司项目的研发、优化、

采菊东篱下,Python满乾坤! 3067

资深面试官解答:大厂月薪过20K的测试工程师,都需要满足哪些要求?

究竟大厂需要怎么样的软件测试工程师,怎样的测试员才算是优秀的,有潜力的呢?笔者为大家整理了网上资深面试官的一些回答,一起来看看吧~

人生不怕起点低,就怕没追求 1144

odis工程师使用方法_从中级到资深,前端工程师的职场华丽升级|前端进阶指南(下)...

在 ECMScript 的标准化演进和开源社区的蓬勃发展中,作为一名前端工程师,如何从越来越饱和的求职市场竞争中脱颖而出?如何融入环境胜任新的岗位?又该如何晋级成长,完成角色转型?为了帮助前端工程师们寻找这些问题的答案, 100offer 邀请到了 58 同城的高级技术经理李丁辉。他将基于丰富的团队实践及经验,与你分享前端工程师的面试、岗位适应、晋级成长三大话题和完整职业成长历程。既有提...

weixin_39957835的博客 561
上一篇: 新宠儿还是新玩具?Bun 速览
下一篇: Postgres or PostgreSQL?
Bytebase
博客等级 码龄5年 1233粉丝 258原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值