当前位置: 首页 > news >正文

Python 高手编程系列三千三百七十七:链接

只要在当前文档中提供了链接,就可以通过以两个点开头的特殊行将文本更改外部
链接,如下所示:
Try ‘Plone CMS’, it is great ! It is based on Zope.
… _‘Plone CMS’: http://plone.org
… _Zope: http://zope.org
通常的做法是将外部链接分组放到文档的末尾。当要链接的文本包含空格时,它必须
用`(反引号)字符包围。
也可以通过在文本中添加标记来使用内部链接,如下所示:
This is a code example
… _example:
::

1 + 1
2
Let’s continue our text, or maybe go back to
the example_.
章节也可以使用内部链接,如下所示:
==============
Document title
==============
Introduction to the document content.
Section 1
=========
First document section.
Section 2
=========
-> go back to ‘Section 1’_
构建文档
指导读者和作者的一个更简单的方法是向每个人提供帮助和指导,正如我们在本章前
面的章节中所学到的。
从作者的角度来看,这可以通过一组可重用的模板以及描述如何以及何时在项目中使
用它们的指南来完成。它被称为文档集(documentation portfolio)。
从读者的角度来看,重要的是能够无痛地浏览文档,并习惯于有效地查找信息。它是
通过构建文档格局(document landscape)来完成的。
构建文档集
软件项目可以有许多种类的文档,从直接引用代码的底层文档,到提供应用程序的高
层次视图的设计文档。
例如,Scott Ambler 在他的书 Agile Modeling: Effective Practices for eXtreme Programming
and the Unified Process 中定义了广泛的文档类型列表。他从早期规范到操作文档构建了一个
文档集。甚至包括项目管理文档,因此整个文档需求都是使用一组标准化的模板构建。
由于完整的文档集与用于构建软件的方法密切相关,本章将仅关注你可以根据特定需
求完成的公共子集。构建高效的文档集需要很长时间,因为它可以体现你的工作习惯。
软件项目中的一组常见文档可以分为 3 类。
● 设计:包括提供架构信息和底层设计信息的所有文档,例如类图或数据库图。
● 用法:包括有关如何使用软件的所有文档;可以是以一本手册和教程或模块级帮助
的形式。
● 操作:这提供了有关如何部署,升级或操作软件的指南。
设计
创建此类文档的重点是确保目标读者是完全知道的,内容范围有限的。因此,为作者
提供一点建议就是设计文档的通用模板尽量保持轻量级的结构。
这样的结构可能包括:
● 标题;
● 作者;
● 标签(关键字);
● 说明(摘要);
● 目标(谁应该读这篇文章?);
● 内容(带图);
● 参考的其他文件。
打印时,内容最多应为 3 页或 4 页,以确保限制范围。如果它变大,应该分成几个文
档或概述。
该模板还提供了作者的名字和一个标签列表来管理它的演变和简化分类。这将在本章
后面讨论。
reST 中的示例设计文档模板如下所示:
=========================================
Design document title
=========================================
:Author: Document Author
:Tags: document tags separated with spaces
:abstract:
Write here a small abstract about your design document.
… contents ::
Audience
========
Explain here who is the target readership.
Content
=======
Write your document here. Do not hesitate to split it in several
sections.
References
==========
Put here references, and links to other documents.
使用
使用文档描述软件的特定部分是如何使用的。本文档可以描述底层部分,如函数的工
作原理,也可以描述高层部分,如调用程序的命令行参数。这是框架应用程序中的文档的
最重要的部分,因为目标读者主要是将要重用代码的开发人员。
3 种主要的文件如下。
● 技巧:这是一个简短的文档,解释如何做某事。这种文件瞄准一个读者,并专注于
一个特定的主题。
● 教程:这是一个逐步的文档,说明如何使用软件的功能。本文档可以引用配方文档,
每个实例仅供一个读者使用。
● 模块助手:这是一个底层文档,用于说明模块包含的内容。当你通过模块调用内置
的帮助时,可以显示此文档。
技巧
一个技巧(recipe)文档解答一个非常具体的问题,并提供一个解决方案来解决问题。
例如,ActiveState 在线提供了一个庞大 Python 配方仓库,开发人员可以在其中描述如何使
用 Python 做事情(参考 http://code.activestate.com/recipes/langs/python/)。与单个区域/项目
相关的这样一组配方通常被称为攻略(cookbook)。
这些技巧必须简短,并且结构如下。
● 标题。
● 提交者。
● 最近更新时间。
● 版本。
● 类别。
● 说明。
● 源(源代码)。
● 讨论(解释代码的文字)。
● 评论(来自网络)。
通常,它们很长,超出一屏,但是却没有深入细节。这种结构完全符合软件的需要,
可以在通用结构中再进行调整,向其中添加目标读者,并且用标签替换类别:
● 标题(短句)。
● 作者。
● 标签(关键字)。
● 谁应该读这个?
● 先决条件(例如要读取的其他文档)。
● 问题(简短说明)。
● 解决方案(主文本,一个或两个屏幕)。
● 参考文献(指向其他文档的链接)。
上面没有日期和版本,因为像管理项目中的源代码一样管理项目文档。这意味着处理
文档的最好方法是通过版本控制系统进行管理。在大多数情况下,这与用于项目代码的代
码仓库完全相同。
一个简单的可重用的配方模板如下:
===========
Recipe name
===========
:Author: Recipe Author
:Tags: document tags separated with spaces
:abstract:
Write here a small abstract about your design document.
… contents ::
Audience
========
Explain here who is the target readership.
Prerequisites
=============
Write the list of prerequisites for implementing this recipe. This
can be additional documents, software, specific libraries, environment
settings or just anything that is required beyond the obvious language
interpreter.
Problem
=======
Explain the problem that this recipe is trying to solve.
Solution
========
Give solution to problem explained earlier. This is the core of a
recipe.
References
==========
Put here references, and links to other documents.
教程
教程和配方相比有着不同的目的。它不打算解决孤立的问题,而是描述如何逐步使
用应用程序的功能。这可能比配方更长,并且可能涉及应用程序的许多部分。例如,
Django 在其网站上提供了一个教程列表。Writing your first Django App, part1(参考 https://
docs.djangoproject.com/en/1.9/intro/tutorial01/)解释如何使用 Django 构建应用程序。
这种文件的结构如下所示。
● 标题(短句)。
● 作者。
● 标签(文字)。
● 说明(摘要)。
● 谁应该读这个?
● 先决条件(例如要读取的其他文档)。
● 教程(正文)。
● 参考文献(指向其他文档的链接)。
模块助手
模块助手模板是可以添加到我们的集合中的最后一个模板。模块助手指的是一个单独
的模块,它主要提供内容的描述以及使用示例。
一些工具可以通过使用 pydoc 提取 docstrings 和计算模块助手来自动构建这样的文档,
例如 Epydoc(参考 http://epydoc.sourceforge.net)。因此,可以基于内省 API 生成大量的文
档。通常在 Python 框架中会提供这种文档。例如,Plone 提供了一个 http://api.plone.org 服
务器,以保持模块助手的最新集合。
这种方法的主要问题如下。
● 无法智能的选择感兴趣的模块生成文档。
● 代码可能会被文档混淆。
此外,模块文档提供的例子有时可能涉及模块的多个部分,并且它们很难在函数和类
的 docstrings 之间进行拆分。模块的 docstring 的目的是可以在模块的顶部写入文本。但是
这最终得到一个由一个文本块组成的混合文件,而不是一个代码块。当代码小于总长度的 50%
时,这是相当模糊的。如果你是作者,这当然没问题。但是当人们尝试读取代码(而不是
文档)时,他们将不得不跳过 docstrings 部分。
另一种方法是将这些文本拆分到单独的文件中。然后通过手动的操作决定哪个 Python
模块具有模块助手文件。然后,文档可以从代码库中分离出来,并允许它们独立生存,我
们将在下一部分中看到。Python 的文档就是这样处理的。
事实上,许多开发人员不认同文档和代码分离比 docstrings 更好。这种方案法意味着文
档编写过程要完全纳入到开发周期中;否则文档就会很快过时。docstrings 方案通过让代码
及其用法示例之间的保持来解决这个问题,但是不能将其带到更高级别——一个可以用作
纯文本文件一部分的文档。
模块助手的模板非常简单,因为它在内容写入之前只包含一些元数据。目标读者没有
定义,直到有希望使用此模块的开发人员。
● 标题(模块名称)。
● 作者。
● 标签(文字)。
● 内容。
操作
操作文档用于描述如何操作软件,需要考虑以下几点。
● 安装和部署文档。
● 管理文件。
● 常见问题(FAQ)文档。
● 解释人们如何贡献,请求帮助或提供反馈的文档。
这些文档非常具体,但他们可以使用前面部分中定义的教程模板。

http://www.gsyq.cn/news/1519703.html

相关文章:

  • [智能体-393]:数字员工(办公)、数字专家、数字工程师(软件)详解,对应的技术栈与现有的平台工具
  • Python 高手编程系列三千三百八十:什么样的测试
  • 攻击量下降风险攀升:AI 赋能下定向钓鱼攻击演化与防御研究
  • 终极提速!LEDE路由器固件缓存加速与网络优化深度指南
  • Java毕业设计-基于 SpringBoot 的校园闲置物品交易平台设计与开发 轻量化闲置物品二手交易管理系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 2026 世界杯移动端定向钓鱼攻击模式与防御技术研究
  • 8B/10B编码原理与实战:高速串行通信的时钟恢复与直流平衡
  • PyWxDump:微信数据解析技术从困境到突破的三大核心挑战与解决方案
  • Wwise音频工具终极指南:3个简单步骤轻松解包和修改游戏音频文件
  • 【华为OD技术面试手撕真题】136、二叉树的直径 | 手撕真题+思路参考+代码解析(C C++ Java Python JS)(0ms)
  • 乌鲁木齐行业内热门的短视频厂家
  • 述职报告哪家工具好用?2026实测5款AI神器,10分钟搞定高分述职 - 品牌测评鉴赏家
  • 5分钟实现智能抢购:i茅台自动化预约系统终极指南
  • 别再只用getRemoteAddr()了!Spring Boot项目中获取真实客户端IP的完整避坑指南
  • Windows安卓应用安装器:告别臃肿模拟器的极简解决方案
  • 深入解析NXP LS1046A安全引擎DECO寄存器:精准控制硬件加速数据流
  • 设计模式:1. 策略模式
  • 桨影翻飞绘长卷,龙舟赛传承千年端午文脉 - 资讯速览
  • 【模型架构篇11】多模态架构:视觉-语言融合深度解析
  • 深入解析NXP KE1x MCU:Cortex-M0+内核与SIM模块实战配置指南
  • MC9328MXS USB设备控制器:从寄存器配置到数据传输实战
  • 【科研快报】与其消灭AI幻觉,不如教它说“我不确定“——谷歌团队提出AI元认知新范式
  • 揭阳亲测!汽车贴膜品牌老店推荐首推揭阳市榕城区东升志明汽车用品 - 资讯速览
  • “提示词”根本不算技能!程序员真正靠AI赚钱的3个硬核误区揭秘
  • 告别手动制表:3种办公场景下的效率工具选择思路 - 品牌测评鉴赏家
  • 开发日志(十一):多模态菜单 RAG 系统实战
  • 26年春季学期学习记录第44天
  • 鸿蒙数学108篇 第八十二篇:微积分基本定理
  • 猫抓浏览器扩展终极指南:三步搞定网页视频音频下载
  • 星露谷物语SMAPI终极指南:5分钟学会安全安装模组框架