`

如何写一手好文档(好代码)?

阅读更多
一、什么样的文档(代码)叫做“好”?

任何一篇文档,目标都是给别人看懂。

任何一段代码,首先也都是别人能看爽了才是目标。

以上述“世界观”为准,很容易得到文档(代码)好不好的结论。

以80后小时候读的连环画为例,它就是优秀文档的典范。

像连环画这样优秀的文档,主要具备以下几个特点:

1.长篇被分成小节。

2.小节中关键页有图。

3.描述言简意赅。

4.页数固定不多。

典型地,如果在写文档(代码)时,能够做到上述四点,都是优秀的。
比如:
PHP文档造福了多少PHP程序员,让PHP这门语言流芳百世、追随者众多。在PHP文档中,每一小节都进行了特别归类; 在关键位置还有不少例子代码; 每个方法的作用也是言简意赅; 每一小节的数量都不是很多。

再来看nginx代码,完全是一个大型服务端软件构建的一个范例。只看src目录中的源码,从一开始就分成了core、event、http、mail、misc、os,这样相当清晰明了的层级结构和定义,让后续很多事情方便扩展; 每一部分的代码都能够让读者一眼看明白是做什么的; 每个细节的方法长度也不是特别长; 每个分类里的内容也相对是固定的,后续的改进都是在plugin上比较多。

二、几种实际的土办法提高文档(代码)能力
在上述建立好了对好文档(好代码)的世界观之后,下面再分享一些总结出来的套路,如果前面世界观没理解透,只把这里的土办法理解了,也能写出来容易读的文档(代码)。

办法一、写文档先写段落标题,写代码先建分类目录(java叫做package)。
在一切开始之前,如果无法下笔,则先想想要写代码架子都有哪些。

办法二、一级段落不要超过5个。
这纯粹是个经验值,实际超过3个的时候已经开始有些遗忘前面的了。套在代码上,不要超过5种主要功能的目录,像nginx有6个,不过os和misc基本上都是固定不改的东西,所以常动的也只有4个而已。

办法三、不要没有段落画大饼
这和办法二是相反的,因为人脑对内容的吸收是有阶梯的,越往后的内容越难记住。所以在适当的时候要歇一歇。套在代码上,就是不要搞一个大类,什么都能干。

办法四、尽可能让文档(代码)先少后多
这个办法是指,让读代码的人先看一小部分,慢慢再“勾引”读者不断地深入。

好了,上面的办法都实施之后,一手好湿就应该不远了。


转载自五四陈科学院[http://www.54chen.com]
分享到:
评论

相关推荐

    C++代码文档生成器 根据代码及注释自动生成代码文档.zip

    C++代码文档生成器是一种工具,它能够自动分析C++源代码,并基于代码中的注释生成详细的文档。这种工具在软件开发过程中非常有用,因为它可以帮助开发者快速了解代码结构,节省了手动编写文档的时间,同时也确保了...

    VC++单文档多文档源代码

    【VC++ 单文档与多文档源代码解析】 在Microsoft Visual C++(简称VC++)开发环境中,我们经常遇到两种基本的用户界面架构:单文档界面(Single Document Interface, SDI)和多文档界面(Multiple Document ...

    基于深度学习实现试卷手写文字擦除源码+模型+文档说明.zip

    基于深度学习实现试卷手写文字擦除源码+模型+文档说明.zip训练数据: 增强仅使用横向翻转和小角度旋转,保留文字的先验 随机crop成512x512的patch进行训练 训练分为两阶段: 第一阶段损失函数为dice_loss + l1 loss...

    深度学习作业-基于pytorch框架python实现手写数字识别完整源码+代码注释+文档说明

    深度学习作业-基于pytorch框架python实现手写数字识别完整源码+代码注释+文档说明,需求说明: 系统设计: 构建一个高效、准确的CNN手写数字识别系统。 高识别率: 优化网络结构,提高识别率。 界面设计: 设计友好...

    一种手写代码转换为Matlab模型的研究.pdf

    首先,文档标题所揭示的主题是“一种手写代码转换为Matlab模型的研究”,这表明文章主要探讨了如何将人工书写的代码转换为基于Matlab的建模语言,即Matlab/Simulink模型。Matlab是当今广泛使用的数值计算和工程仿真...

    C#操作Word基本文档代码

    通过这些代码,开发者可以更好地理解如何在实际项目中实现Word文档的自动化处理。学习和理解这些代码将有助于提高C#在办公自动化领域的应用能力。为了深入掌握,建议动手尝试修改和运行代码,以加深理解并进行实际...

    面试题手写代码(很实用)

    本篇文章将详细解读标题“面试题手写代码(很实用)”及其相关标签,旨在帮助你更好地准备Java面试,了解核心的编程概念和技术。 首先,我们来关注“java面试”这一标签。Java面试通常涵盖基础语法、面向对象设计、...

    手写数字识别OCR数据集以及识别代码附有详细注释

    在提供的代码中,你将找到一个完整的实现过程,包括预处理、模型构建、训练和评估等步骤。预处理阶段通常涉及图像的归一化、缩放以及噪声去除,以确保模型可以更好地理解输入数据。模型构建则可能选择如卷积神经网络...

    扫描源代码生成软著文档.rar

    标题中的“扫描源代码生成软著文档.rar”指的是一个压缩包文件,其主要功能是帮助用户将源代码转换成文档,以便于申请软件著作权。在IT行业中,软件著作权是非常重要的知识产权保护方式,它能保护开发者对软件的原创...

    非常优秀的代码文档管理工具

    标题中的“非常优秀的代码文档管理工具”指的是一种软件或服务,它专为管理和组织项目中的源代码和相关文档而设计。这样的工具通常提供版本控制功能,使得多人协作时可以跟踪和合并更改,同时保持代码的整洁和有序。...

    软件著作权代码文档自动生成器

    【软件著作权代码文档自动生成器】是一款专为软件著作权申请设计的工具,旨在帮助开发者高效地整理和格式化源代码,以满足申请过程中对代码规范的要求。这款软件的特点在于其小巧的体积和低内存占用,使得它在运行时...

    代码注释生成文档工具

    代码注释生成文档工具是一种非常实用的开发辅助软件,它能够自动从源代码中的注释提取信息,并将这些信息组织成结构化的文档,极大地方便了开发者在项目维护过程中的文档编写工作。这类工具通常支持多种编程语言,如...

    python数据分析2nd文档笔记加书中代码

    书中代码则提供了一手的实践经验,让理论知识得以落地。通过运行这些代码,学习者可以直观地了解如何在实际项目中应用Python进行数据分析。这可能包括加载数据、数据预处理、创建数据可视化以及构建简单的预测模型等...

    解析word文档,过程详细,易懂,代码可直接复用

    在IT行业中,处理文档是日常工作中不可或缺的一部分,而Word文档作为最常用的文本编辑工具,其解析和处理能力显得尤为重要。本教程将详细讲解如何解析Word文档,并提供易于理解和复用的代码示例。 首先,我们要了解...

    HGE详细文档加源代码

    总的来说,《HGE详细文档加源代码》是一个极好的学习资源,无论你是完全的新手还是有一定经验的开发者,都能从中受益。通过深入学习和实践,你将掌握HGE游戏引擎的使用,并具备开发2D游戏的能力。记住,实践是最好的...

    动软代码生成器生成数据库文档备注

    《动软代码生成器与数据库文档备注的生成详解》 在IT行业中,高效且准确的代码生成工具对于软件开发人员来说至关重要。动软代码生成器就是这样一个工具,它能够极大地提高开发效率,减少手动编写重复代码的时间。...

    机票预订系统源代码和文档

    总的来说,这个压缩包提供了一个完整的机票预订系统开发案例,不仅包含了源代码,还有贯穿项目周期的各种文档,这对于学习软件开发流程、项目管理以及软件工程的学生和从业者来说是非常宝贵的参考资料。通过研读这些...

    git学习资料文档,很全很详尽的一手资料

    5. 解决冲突:当多个用户修改同一部分代码时,Git如何提示冲突以及如何解决这些冲突。 接下来是"分支概念说明.xlsx",这是一个专门关于Git分支的深入解释。分支是Git中的核心特性,用于支持并行开发。这份资料可能...

    Java届最好用的文档工具,工具解析Java代码自动生成api接口文档

    Java开发过程中,编写API接口文档是一项必不可少的工作,它有助于团队成员理解代码逻辑,提升协作效率。然而,传统的手工编写文档方式既耗时又容易出错,因此,一款能够自动解析Java代码并生成API接口文档的工具显得...

    idea插件文档+代码实例codemaker

    【标题】"idea插件文档+代码实例codemaker"涵盖了IntelliJ IDEA插件开发的知识,特别是关于“codeMaker”这个特定插件的功能和用法。这个资源包含了一个详细的开发介绍文档,旨在帮助开发者理解如何在IntelliJ IDEA...

Global site tag (gtag.js) - Google Analytics