via: http://code.csdn.net/news/2822503
大多数开源开发人员喜欢思考他们构建软件的质量,但其文档的质量常常被遗忘。没有人谈论一个项目的文档是多么出色,但其实文档对一个项目的成功却有直接的影响。没有一个良好的文档可能用户根本不会使用你的项目,亦或者压根不会喜欢。
然而大多数开源项目的文档都是令人极其失望的,主要从以下的几个方面来体现。
1. 缺乏一个好的自述或介绍
自述是潜在用户对你项目的第一印象。如果项目在 GitHub 上,自述自动的显示在该项目的主页上。如果你稍微不留神将自述弄错了,这些潜在的用户有可能再也不会回来了。所以你的项目必须有一个好的自述来吸引用户对你的项目产生兴趣。
自述文件至少应该包括以下几点说明:
是什么项目
面向何种用户
运行在什么硬件或者平台上
主要依赖关系
如何安装或者深入的方向指针
这些都是写给那些之前从未听说过你的项目甚至可能永远不会考虑你的项目的用户。当然也不要以为每个阅读你自述的用户都知道那是什么,必要的时候需要做出一些注解以及附上一些有用的链接,方便用户了解你的项目。
2. 不提供在线文档
虽然没有看到过关于这方面的研究调查,但我想 90% 的文档都是通过谷歌或者互联网的其他浏览器来查找的。所以文档必须在线并且可用。这一点我是如何发现的呢?因为很多的用户常常会不看常见问题的解答,而直接从网上搜索问题的答案,这常常就会在项目中出现问题。因此提供在线的文档可以帮助用户更好的解决问题。
3. 只有在线文档
这个问题的另一面就是开发人员只提供在线的文档。有些项目不附带该项目可交互的文档,或者包含的文档是不符合的版本。例如 PHP 语言不附带任何文档,如果你想要文档,必须用一个单独的页面来打开他们。然而更糟糕的是,只有核心代码可以下载。这样导致用户可能不能获得对自己有用的信息。
开源项目不能想当然的认为用户访问互联网时他们需要在线的文档。当然你也不希望用户过分的依赖你的项目网站。
4. 不包含安装文档
这个问题通常是包的创造者而不是项目开发者的问题。例如在 Ubuntu Linux 操作系统中,Perl 语言选择的包本身是一个单独的文档。用户必须知道他在安装的时候所需要的安装文档以及核心语言的文档,这样方便用户在遇见问题时及时地解决。
5. 缺乏截图
有没有更好的方式来获取潜在用户的注意,或者说明软件的正确使用方法?比较明智的做法是截图。在互联网时代,一张图也许胜过千言万语。截图能让用户判断自己使用的方法是否正确,也容易让他找到自己出错的地方。因此必要的截图对于开源文档来讲也是至关重要的。
6. 缺乏实例
对于基于代码的项目,模拟的截图固然是非常不错的,但是相关的实例也是必不可少的。这些实例不应该是抽象的,而应该是从现实世界当中提取的。花时间创建一些与项目相关的实例,向用户展示如何解决软件使用过程中出现的问题。
7. 不充分的链接和引用
如果有超链接,记得在文档中使用它们。不要以为用户读完文档就能明白并且理解,文档当中可能会存在一部分用户并不能理解的东西。这时候就需要你使用你所有的超链接以及引用来帮助用户解决一些问题。
8. 忘记新用户
当你写文档时,你是站在开发者自己的角度上来编写的,这对于软件的开发者来说着很容易。然而对于那些新用户来讲,则需要入门文档。为了使新用户能够尽早的了解你的软件或者说熟练掌握使用软件的方法,我认为应该使用单独的页面来为用户书写入门文档。
9. 不倾听用户需求
项目的开发者必须倾听用户对整个项目的需求。最有效的方法就是让更多的人对你的项目进行试用来找出问题。同等重要的是,在倾听用户需求的过程当中,项目开发人员应该考虑到用户提出这些问题背后的真正原因。
10. 不接受用户输入
如果你的项目有一个足够大的用户群,你可以让用户直接将评论添加到文档当中。我见过的最好的例子是 PHP 语言,其文档中的每个页面允许经过身份验证的用户添加评论,或添加的评论不属于核心文档。
相关推荐
最全JAVA学习路线一条龙思维导图(附资源链接)PS:程序员鱼皮 1. 最新,完整一条龙的大厂 ...5. 划分阶段、更有计划,且在最后给出持续学习的方向、探索 Java 程序员发展的无限可能 6. 完全开源,回馈社区,持续更新!
在踏入程序员这一职业路径之初,了解“当程序员的第一件事”对于每位初学者来说至关重要。本文将围绕这个主题展开,深入探讨对于编程新手而言至关重要的基础知识、技能培养以及心态调整等方面的内容。 ### 一、理解...
同时,文档也提到了一个有趣的现象,即随着时间的推移,认为程序员年龄上限的门槛在上升,这可能与软件行业的成熟以及对经验丰富程序员的需求增加有关。 其次,在学习与实践方面,文档强调了编程的基本功,包括面向...
接着,描述中提到了网上关于WTL的讨论组和邮件列表,虽然WTL缺乏官方文档支持,但这些问题和疑惑在全球的开发社区中能够得到解答。这意味着,尽管WTL没有MSDN等官方文档,但实际使用中遇到的问题并不难找到解决方案...
程序员小妹是一个目前已经上线的论坛的源代码。 ##简介程序员小妹主要使用Spring Boot,Spring Security,Spring JPA开发成型。项目组装工具为Gradle,国内的小伙伴在使用的时候,记得配置过多,不然仅下载依赖就...
【程序员的十层楼】是一个比喻,用于描述程序员在技术成长过程中的不同阶段。这个概念主要是为了分析和比较中国与西方程序员的技术水平。通过设定不同的技术层级,我们可以更清晰地了解程序员所需掌握的知识和技能,...
"Java程序员由菜鸟到笨鸟学习文档"就是这样一个旨在帮助初入Java世界的学习者逐步进阶的资源。它覆盖了从Java语言的基础知识到Web开发框架的关键概念,为读者提供了一个全面的学习路径。 首先,对于Java的基础部分...
**开源OPC:LightOPC源码解析** 在IT领域,OPC(OLE for Process Control)是一种用于工业自动化系统中不同设备间数据交换的标准接口。它允许不同的软件应用程序通过统一的接口进行通信,极大地简化了数据共享和...
标题“hrstka.sk:程序员的熟食”可能是指一个编程资源库或教程集合,专门针对程序员,尤其是那些对特定技术栈感兴趣的开发者。这个标题暗示了这个压缩包可能包含了一系列有关编程技巧、最佳实践和可能的项目示例。 ...
通过阅读《2009年程序员杂志第十一期》的PDF文档(0911.pdf),读者可以深入了解当时的IT行业趋势,学习当时的最佳实践,并从中获得启发,无论对于历史回顾还是当前的开发工作都有一定的参考价值。
iutils网站 程序员工具网站全站代码开源
10. **生活与工作平衡**:程序员的工作压力和生活品质问题也受到关注,文章可能提供了关于健康、时间管理和心理调适的建议。 通过深入阅读《程序员05年11月PDF》,不仅能了解到15年前的IT世界,还能对比现在的发展...
这涉及到调试技巧、阅读文档、搜索资源和利用开源社区的能力。遇到问题时,懂得如何使用Google、Stack Overflow等平台寻求帮助是快速解决问题的关键。 4. **软件工程知识**:了解软件开发流程,如需求分析、设计、...
### 程序员十层境界详解 #### 第一境界:初学者 在这个阶段,程序员刚刚踏入编程领域,对各种编程语言如C/C++、Java、JavaScript等有初步的了解。这一阶段的重点在于掌握基本的语法和编程逻辑,能够编写简单的程序...
本文将基于一篇名为“Java程序员上班那点事儿”的文档内容进行深入探讨,旨在帮助即将步入职场的Java程序员更好地理解自己的职业定位和发展方向。 #### 二、Java程序员求职现状分析 **1. 技能全面与岗位需求不符**...