美文网首页
如何写出一个好文档

如何写出一个好文档

作者: 数据小新手 | 来源:发表于2019-06-16 21:41 被阅读0次

教你写出一流的python 文档

1.为什么需要写文档

首先,代码是最有意义的文档,所有对于代码描述的文档主要是给:

  • 不了解代码

  • 没有时间阅读代码(源码太复杂)

  • 不想要阅读源码

  • 没有权限阅读源码

So don’t write clever code, write elegant code.

Code is more often read than written

当写code时,主要有两个观众,用户和开发者。所有的观众都同等重要,想象一下你的用户或者其他开发者正在经历和你使用其他开发者代码的痛苦。

2.注释和文档的区别 Commenting 和documenting code

在介绍写文档之前,我们先区分一下文档和注释。

通常,注释主要用于描述code for developers。 主要的观众是代码的开发者和维护者,comments 帮助读者更好的了解代码的目的和设计。

2.1基本的注释:

2.1.1 注释的主要功能

(#)🇬🇧用于简单的声明和注释,一般不超过几句

  1. 计划和检查:当计划在某个位置写代码时,可以先用注释声明代码区域和要实现的功能和outlining, 记得当代码写好之后,将这些注释删除。

  2. 代码描述: 解释特定的代码部分

  3. 算法描述:当使用了算法,特别是复杂的算法,解释算法如何工作和如何在你的代码中应用十分重要,如果可能,解释下为何要用算法工作。

  4. tagging :描述已经知道的问题或待提高的部分 如bug fixme, todo 等

2.1.2 注释的注意事项

代码注释应该简单和专注,应避免使用长的注释。

  1. 使注释尽可能的接近代码,注释离代码太远容易让人迷惑

  2. 不要使用复杂的format 如 table ,这会导致难以维护

  3. 不要包括冗余的信息

  4. 为注释设计你的代码,设计出 easy understand concept, 读者将会很快了解你的目的,记住代码的注释是为其他读者写的,引导他们了解代码的目的。

Commenting code via type hinting ,在 python 3.5 以上可以使用type hinting来为代码写一些注释,包括输入输出的数据类型。

2.2 文档

2.2.1 Docstrings基本描述 :

  1. Docstrings,

    可以帮助使用者和自己快速了解项目,python 使用内置的funtion help来打印出 objects的doctoring to the console。也可以使用.__doc__来查看class的注释

  2. docstring types:

    docstring 具体的要求在pep 257中描述,主要目的是提供对object的简单描述,应该简洁高效易维护,容易让新的读者了解object的目的和使用方法。在所有情况下docstrings 应该使用(""") 来书写。通常可以被放在一行或多行。当有一行时,应该是一个quick summary。 当有多行时,则应该包括如下部分。

    (1)一行summary

    (2)一行空行

    (3)Further elaboration

    (4)空行

  3. docstring 形式

    docstring可以被分为3类,分别是class docstrings, package and module docstring 和 script docstrings.

    (1) class docstrings :class and class method

    (2) package and module docstring: package modules, functions

    (3) Script docstrings:script and functions

2.2.2 docstring 详细介绍

2.2.2.1 Class:

主要用于class和class方法。在class名称下使用。

class docstrings 应该包含如下内容:

(1) 目的和作用的简介

(2) public 方法的简单描述

(3) 类属性

(4) 任何相关的子类

Class method 的docstring应该包含:

(1) 简单介绍方法是什么用来做什么

(2) 参数

(3) 有默认值或者可选的参数

(4) 执行这个方法的副作用

(5) exception

(6)使用限制

2.2.2.2 Package and module docstrings:

Module docstrings:

(1) 简单描述模块和目的

(2) 任何class, exception,functions,other objects exported

Module function docstring:

和class method 类似

2.2.2.3 stript docstrings:

script通常是单一的可执行文件,script docstrings 通常在文件的最上方,并且应该告诉用户如何使用这个脚本,通常应该使用 -h 可以打出需要的信息,如果使用argparse,英国对每个参数进行描述,command-line parsing libraries 包含更多的细节。

最后,任何自定义的活第三方的imports 应该在docstring中 允许用户知道哪些包是需要用到的。

可以参考numpy 或 scipy的docstings.

3. 为python projects 写文档

在写python projects 的文档时,要时刻记得谁是你的用户,并且来满足他们的需求,根据项目类型,一些特定的文档是需要的。

通用的项目和他的文档应该是如下格式:

项目应该包括三个主要类型:paivate, shared public, open source.

3.1 私有 project

Readme : 简单介绍项目和目的,包括requirements

Example.py : 使用project的例子

3.2 Shared 项目

共享项目是和其他人共享,文档应该要求更加严格,主要是帮助新的成员来这个项目或者为项目添加新东西。

Readme : 除了简单的介绍和requirements, 还应该包括一些先前的主要版本信息。

Example.py : 使用样例。

How to contribute : 介绍新的贡献者如何加入到这个项目中。

3.3 Public 项目:

Readme : 简单介绍项目和其目的,包括任何特殊的依赖包或环境。另外,添加上个版本到这个版本的主要变更,另外,添加练到到未来的文档,bug 报告和其他关于这个项目的重要信息,

How to contribute : 包括新的贡献者如何对此项目作出贡献。包括发展新的功能,修复已有的问题,增加文档,新的新的测试,报告问题。

Code of conduct : 定义其他的贡献者在开发或使用你的软件时应该如何互相对待。

license

Docs :一个文件夹包含未来的的文档。主要包括4个部分,分别是教程,使用案例,参考文件和解释。

4. 如何写docs

4.1 如何写一个完整的docs

一个完整的docs应该包括以下几个部分:

(1) 教程

  • Learning -oriented 学习引导的

  • quick start 告诉新人如何快速开始

  • a lesson 是一个课程

(2) 操作指南

  • 目标导向的

  • 展示如何解决实际问题

  • 一系列的步骤

(3) 解释

  • 理解优先

  • 解释性

  • 提供背景和具体内容

(4) 参考文献

  • information 导向

  • 描述机制

  • 精确完整

详细的内容可以阅读参考文献[3]

4.2 如何写出优秀的docs

  1. 结构简单清晰;

    所谓结构清晰就是用户能马上找到自己要查找的知识点在哪,分类清晰。有些文档爱用模棱两个的词,比如“1. 常见问题”,“2. 热点问题”,”3. 高频问题”。我有十万火急的事情,你来告诉我我到底是要先看哪个?

  2. 循序渐进

    先从最简单的开始,然后慢慢深入。比如我们学习Java,一开始Hello World都还没跑起来就先说配置文件要怎么写,Java一大堆的xml配置文件老司机都看的眼花缭乱更别说新手,这种文档让人直接从想了解到放弃。

  3. 引人入胜

    把能吸引人的地方展示出来,比如Unity 3D默认就带一个设计精良的游戏Demo,一看到就有学习的兴趣。另外提供的API应该直接能在浏览器里模拟出一个可调用的Demo,而不是开放的API文档需要不停的尝试,不停的踩坑才能调通。

  4. 文档close to code and api 方便最终使用

  5. 使文档avaiable to others 通过ticketing system ,版本控制,

4.3 常见的documentation工具

Sphinx,epydoc, read the docs, doxygen, mkdocs, pycoo.

5.从哪里开始写文档

  1. 没有文档

  2. 有一些文档

  3. 有完整的文档

  4. 好的文档

  5. 完美的文档

如果你不知道如何开始写,看看你在哪个位置,努力提高自己的文档水平。

最后,不要害怕写文档,一旦你开始写了,很容易保持下去。

Reference :

[1] https://blog.it2048.cn/article-doc-write/

[2] https://blog.jooq.org/2013/02/26/the-golden-rules-of-code-documentation/

[3] https://www.divio.com/blog/documentation/

[4] https://realpython.com/documenting-python-code/

相关文章

  • 写产品需求文档的一些启发

    做产品有一种文档贯穿着产品的整个流程,那就是产品需求文档,如何让写出详细且全面的需求文档很关键,好的需求文档可以减...

  • 如何写好一份PRD文档

    本文档只讨论一件事情,如何才能写好PRD文档 PRD文档是产品每天工作中必须撰写的文档,能够写出好文档成为一个PM...

  • 如何写出一个好文档

    教你写出一流的python 文档 1.为什么需要写文档 首先,代码是最有意义的文档,所有对于代码描述的文档主要是给...

  • 如何写好一份产品需求文档

    作为从产品小白一路踩坑过来的产品经理,曾经面临的一个最大的挑战,就是如何写出一份“好”的产品需求文档,作为一个新手...

  • 如何写出一份好的产品文档

    产品文档是每一个产品人员都必然要产出的东西,也是一个重要且频率很高的产出。那么如何写好一份产品文档?怎么算好?上午...

  • 如何写出一个好故事

    最近听了本很好的书叫《如何写出一个好故事》感触颇深,与大家分享一下。 本书的作者是丽萨。克龙,她是加州大学的写作老...

  • 如何写出一个好故事

    【一】 如何写出一个好故事呢? 尽管人类还没有完全了解物理学和心理学的全部规律,但至少我们已经确信有些东西是真实存...

  • 如何写出一个好故事?

    写作需要灵感,其实说的不够准确,真正需要灵感的是写故事,这也是每个写作者比较头疼的一件事。前两天听了何瑫老师关于写...

  • 如何写出一个好故事

    1.开头正中文章中心,抓住注意力。 2.英雄的故事最动人。 3.让你的故事能够被看见 4.要有对比

  • 如何写出一个好故事

    我们的生活中有很多会讲故事的人,不可否认的是会讲故事的人比不会讲故事的人多了很多机会,比如在演讲中能讲出一个好故事...

网友评论

      本文标题:如何写出一个好文档

      本文链接:https://www.haomeiwen.com/subject/lkdnfctx.html