从零开始编写自己的C#框架(4)——文档编写说明

原文:从零开始编写自己的C#框架(4)——文档编写说明

  在写本系列的过程中,了解得越多越不知道从哪里做为切入点来写,几乎每个知识点展开来说都可以写成一本书。而自己在写作与文档编写方面来说,还是一个初鸟级别,所以只能从大方面说说,在本框架开发所需的范围内来讲述相关要用到的知识点,至于要更深入的去了解,请大家观看其他大牛的博客或购买书籍来学习。

  为了加快进度,会对目录进行修改,将一些知识点合并或在后面使用的章节再进行描述。

  谢谢大家的支持,如果您觉得本文对您有所帮助,请帮忙点击支持或发表评论。

  在开发的过程中,要编写各种各样的文档,当然也有不少公司根本就没有文档。对于初学者,包括相当多有多年开发经验的人,说起编写文档都会非常抗拒,一讲到写文档很多人都是一个头两个大,不知道怎么编写也懒的写,大多都是能拖就拖,拖不了就草草应付,当然我当年也是其中的一份子o(∩_∩)o

  为什么很多程序员会很抗拒写文档?

  这个就不再详细描述,你们问问自己就知道了。

  本文的主要是想告诉初学者们,为什么我们要写文档,写文档对我们开发有什么帮助,以及对各种文档有个大概的认识。

  好处一:确认需求,减少程序修改工作量

  很多朋友都碰到过拍脑袋的老板、客户或领导(说的不好听就是头脑一热,需求不过夜的人),而这些朋友真的是遍体鳞伤,给虐了一遍又一遍,而我也是属于那个被虐的人,呵呵......

  我以前有位同事,在一起共事时每个项目都要求他写文档,当时他一直都觉得很麻烦,后来换了公司后才真正体会到没文档的苦恼。他的老板是那种很有想法的人,经常会有新点子出来,所以在做项目时,一有新的想法就要求他实现
。而有的想法当时提出后过了一两天就忘了,那么他就杯具了......有次他同我说,现在终于明白文档的重要性了,没有文档的日子都不是人过的。

  需求的不停变动对于程序员来说,是个永远的痛\(╯^╰)/
,当然我们也不能坐以待毙,而需求文档就是我们最好的武器(对于那些所有项目都不需要文档的公司不在本文的讨论范围之内)。具体的需求文档编写说明请留意后面的章节。

  好处二:帮助我们熟悉项目

  在编写相关文档时,其实就是帮助我们对项目的理解,理顺一些算法思路。

  没有编写文档时,你经常会想当然,心里觉得已经很了解整个项目结构与需求了,要怎么实现也有了想法,而人的记忆是会遗忘的,等开发一段时间后,原来想要实现的功能可能就忘得一干二净了。而在编写文档的时候,会帮我们认真的考虑整个需求,对一些要求也会详细斟酌,从中发现很多我们没有想到的问题,然后再深入的去考虑怎么解决这些问题,要用什么算法,会不会再引发更多的问题.....文档完成后,整个项目其实就等于在你的大脑里面实现过一次了,在进入开发阶段就会比较顺风顺水,开发效率也会很高效。

  好处三:提高开发效率,防止出错

  记得好几年前在一家手机群发、扣费公司上班,当时要开发一个功能,可以在服务器端根据需要控制手机扣费使用渠道、价格...的功能,在接到这个开发需求时,我并不是马上编码,而是花了四五天时间在整理需求,编写对应的开发文档与流程图,由于有完善的开发文档与流程图(具体请看当时的流程设计图),只花了一天时间就完成了主要的业务逻辑,一个2K多行的存储过程(含注释,后来不断的添加新业务最后扩展到3K多行),又花了半天开发出手机端调用程序和服务器端调用接口,而最后测试只花了半天时间,修改了几个小BUG就搞定可以上线了。上线后顶着经常瞬间几K并发量压力,一直运行到公司转型,二年多时间都没有出现过什么问题,为什么这么复杂的逻辑,但开发占用时间很短,测试上线后在大并发的压力下运行都很正常呢?主要的功劳是做足了前期的需求分析与开发文档编写,如果没有的话,嘿嘿......试过的人都知道,你懂的。只有真正了解项目需求,理顺项目流程,并做了深入思考,那么很多常见的问题都可以迎刃而解。

 

  好处四:控制项目进度

  如果没有文档,开发一个新项目时所定下的开发周期绝大部分都是很有水份的,有多少能按时完成也是个未知数。

  而有详细的文档说明、数据库设计、流程图、功能设计都出来后,这时有经验的开发人员绘制甘特图制定的项目开发进度就比较靠谱了。然后开发团队根据开发计划,控制好每天完成的功能进度,一般都能按时完成开发要求,就算有偏差也不会太离谱(除非中间需求变动或制定计划的人经验不足)。

  好处五:为后期测试工作提供指引

  有了完善的文档,在进入测试阶段时,就可以根据需求文档与开发文档对功能进行测试,编写测试用例。如果没有文档,都不知道初始功能求要是什么,那只能测已完成的功能、UI等模块了。

  好处六:为二次开发与软件维护提供支持

  在上一文中已说过相关例子,没有文档资料、缺少注释,而代码又不规范的话,那就是一个大坑,一个很难填平的黑坑。

  ......
(其他帮助)

  除了以上好处外,对于初学者来说,能编写一份好文档,并配合相应的成功作品,这将是你职业生涯最好的敲门砖,能提高你自身的价值和应聘成功机率。

  不是任何时候都需要编写规范的文档
  当然不是任何项目都需要编写文档的,对于小公司小项目,开发人员只有一两个人的话,为了追求快速出产品,快速上线,特别是有一个好框架的情况下,没有文档也并不是大不了的事情。

  不同公司有不同的文档编写要求,而格式也是大不相同。对于要求比较规范的大公司,这些文档的编写大都会严格的按软件工程要求的格式来,当然这样做的话没有一定经验,写起来会比较吃力,花的时间也比较长,而当今的网络社会是快鱼吃慢鱼的时代,对于中小公司或个人开发,如果花太多时间的话,那就得不偿失了,所以还是根据具体情况而定,编写的文档格式与要求相应做出调整。

  对于初学者文档应该怎么编写呢?使用什么模板或格式?

  在一个项目从开始提出需求到实施结束,这个过程会涉及很多文档的编写,在编写的过程中,对于初学者来说并不好把握,常常会不知道使用什么格式、排版,内容要怎么来写。

  一般来说通用的模板内容大都内容全面、详细,比较复杂,初学者没有经验写起来会比较吃力。所以编写时可以使用通用模板进行模仿,但不用全部照搬。

  实际上编写文档就像写作文,只要条理清晰的讲述出相关内容,突出重点,不要偏离该文档主题就可以了。当然如果你能详细的将5个W2H原则说明清楚,再配上相应的图例(流程图),那就更棒了。

  5个W2H原则说明:1.WHY
——为什么?为什么要这么做?理由何在?原因是什么?2. WHAT——是什么?目的是什么?做什么工作?3.
WHERE——何处?在哪里做?从哪里入手?4.WHEN——何时?什么时间完成?什么时机最适宜?5.
WHO——谁?由谁来承担?谁来完成?谁负责?6.HOW——怎么做?如何提高效率?如何实施?方法怎样?7. HOW
MUCH——多少?做到什么程度?需要多少时间?数量如何?质量水平如何?费用产出如何?

  不同文档的主题是什么?

  需求文档主要是为了让实施方了解软件开发完成后要达到的效果,以及和需求方对软件功能进行文档确认。

  概要设计(总体设计)文档主要是为了和需求方进一步确认需求,以及软件设计的功能是否设置合理。同时也作为后面详细功能设计、数据库设计以及其他相关设计的总体指导,了解开发过程中需要使用的基本算法,以及可能遇到的问题。也方便将详细设计以及相关设计任务进行切分,分配给不同的负责人共同编写,减少花费时间。

  详细设计文档主要是将总体设计里所讲述的内容进行细化,详细描述所要实现的功能、算法以及流程图。细化到每个页面要放置什么按钮、字段,列表中要显示什么内容,页面要实现什么功能,而实现这些功能可能要使用什么算法等。当写完详细设计后整个项目基本上就出来了。

  数据库设计是一个很重要的环节,因为好的设计会给整个系统带好良好的性能,为开发过程中减少不必要的代码,提高开发效率有着很重要的帮助。数据库设计是根据详细设计里所描述的内容转换成开发中的数据表与字段。而在进行数据库设计时,常常会发现很多之前没有考虑到的问题,会有很多新的想法与需求,需要添加新的字段,这时在添加的时候必须进行反复斟酌,判断是否是必须添加的,是否必须在第一期开发中实现?能否放在第二期开发?对开发时间有没有影响?影响有多大?因为很多新的想法与扩展都不是必须的,很多想法也需求实现后都没有真正使用到,这样的话就浪费时间。我们必须要按计划与需求来进行开发,而不是随意的添加新的功能进来,这样才能做好开发进度的把控工作。而添加后必须同步更新详细设计文档,补充新添加的字段或功能描述。
  
  项目开发计划(甘特图)文档,主要是将详细设计里的每个功能,在实施时进行开发人员,以及开发先后顺序安排,并确认所需时间,制定开发计划。

  单元测试文档,主要是编写各种测试用例,包括各种极限用例的提交以及返回结果的预期文档,帮助测试人员以及开发人员完善功能设计。

  部署文档主要是将发布到生产环境的操作步骤以及注意事项进行详细描述,方便相关管理人员能轻松的部署最终上线版本,出现问题时快速找出并解决问题。

  

  除了上面所描述的文档外,还有很多各种各样的文档,当然大部分都不是本系列所要涉及的内容,所以暂时就不再深入描述,如果有需要再开单章进行细说。

  当然实现开发中并不可能很理想化,将上面提到的文档或步骤来实施,而真正的可能是尽可能的压缩你的文档时间(甚至没有文档),压缩你的开发时间,以便能快速产出上线,当然对于小型企业网站或软件来说问题不是很大,而稍微大些的项目,在测试阶段就会非常的头痛了,各种没有考虑到的BUG接踵而来,开始进行扯皮。所以说能规范的话尽量规范,有可能编写文档的话,尽量将文档补齐,这样会减少后期大量的工作,就算有问题进行扯皮的时候,起码有文字性的记载。而对于那些必须的变动要求,那也能让需求方知道你做了多少事情,用了多少工作量,而不是给他们感觉才改了这一点点需求,没什么大不了的,因为需求方大部分人都不知道你码代码时所花费的工作量与付出。

  相关文档的详细格式与内容,请留意后面的相应章节。
  

 版权声明:

  本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过[email protected]
联系我,非常感谢。

  发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708
或Email给我([email protected]),大家一起探讨。

  更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/

从零开始编写自己的C#框架(4)——文档编写说明,布布扣,bubuko.com

时间: 2024-10-27 12:20:41

从零开始编写自己的C#框架(4)——文档编写说明的相关文章

PHP 高级程序设计(1) - 编码规范及文档编写

PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的作用,在不用了解要访问对象的细节情况下也能很好的在对象之间进行交互.文档的编写有一些成熟的行业标准格式,遵守这些行业标准将有助于创建易于阅读的代表,并使自动生成手册成为可能. 编码规范 编码规范可能很多开发人员都有各自的观点也意见,且大家不尽相同.其实只要团队成员之间达成一致,遵循同一个标准就好.

怎样编写一份专业的技术文档

对于开发人员来说,文档上很重要的.但是我看到很多的开发者,写出很好的类库,但是文档却不咋样,甚至是没有.和很多开发人员聊过,他们往往都会说没有时间去编写文档,或者说不知道怎么去写.其实我觉得还是重视的程度不够,你只有重视了才能写好.我们只要稍微留意一下就会发现,国外的软件都很重视文档,哪怕是开源免费的,也会把文档写得很好. 由于自己现在也在编写文档,所以把编写文档的一些要点提练出来,大家只要按着这个方法去写,写出来的文档肯定是可以的.先把自己在写的文档发出来给大家看看,欢迎板砖. 大家可以看看图

2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play FrameWork开发入门 5 1.准备工作 5 2.新建项目 5 3.环境变量配置 7 4.MVC模型 8 app/controllers 9 app/models 9 app/views 9 5.应用程序布局 9 app目录 9 .class文件在哪儿? 9 public目录 10 conf目录 10 l

DL动态载入框架技术文档

DL动态载入框架技术文档 DL技术交流群:215680213 1. Android apk动态载入机制的研究 2. Android apk动态载入机制的研究(二):资源载入和activity生命周期管理 3. APK动态载入框架DL解析 4. Android 使用动态载入框架DL进行插件化开发 5. DL插件开发笔记 6. DL开发注意事项 附:DL层次结构图

iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明

iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Foundation 框架概述文档:常量.数据类型.框架.函数.

第一次文档编写总结(机房收费系统)

从图中可以看出编写文档的顺序,从可行性研究报告到开发进度月报构成了机房收费系统的整体文档,贯穿了软件工程的整个生命周期. 第一次机房收费系统和软工视频的完成是编写文档的依据和基础.起初,是一种无从下手的感觉.首先我们应该清楚文档是指导我们开发的,是在代码开发之前写的,而不是开发之后写的.有了学生信息管理系统的基础,我们第一次机房收费系统只是尝试着去写代码完成要求的功能,而不是一次正规的开发.人力物力财力都没有系统正规地去考虑.开发前的分析设计.开发中的细节和开发后的维护我们都没有涉及到.因此,编

vscode使用Markdown文档编写

VScode已经默认集成markdown文档编辑插件.可以新建一个.md文件Visual Studio Code 原生就支持高亮Markdown的语法,想要一边编辑一遍预览,有两种方法:1.Ctrl + Shift + P 调出主命令框,输入 Markdown,应该会匹配到几项 Markdown相关命令 2.先按Ctrl + K,然后放掉,紧接着再按 v,也能调出实时预览框.[要在英文输入状态下] 附录:markdown语法: 1.标题 代码 注:# 后面保持空格 # h1 ## h2 ###

使用 NuGet 下载最新的 Rafy 框架及文档

为了让开发者更方便地使用 Rafy 领域实体框架,本月,我们已经把最新版本的 Rafy 框架程序集发布到了 nuget.org 上,同时,还把 RafySDK 的最新版本发布到了 VisualStudio 插件仓库中. 以下说明如何下载.更新最新的 SDK 及程序集. 下载.更新最新的 RafySDK 在 VisualStudio 中打开扩展管理器(Tools -> Extensions and Updates),选择在线项目,并搜索 “Rafy” 安装即可.如下图: 同样,只需要在扩展管理器中

如何根据需求分析文档编写测试用例

从拿到需求文档不要立马开始着手写测试用例,需要仔细推敲整理需求,画出系统级.模块内流程图,并找出各种测试点,等对需求进行了头脑风暴般的整理之后,此时已对测试系统的功能很清楚了, 再着手开始写测试用例. 那么编写测试用例的总体思路是什么呢? 1.整理分析需求文档 仔细将需求文档阅读一遍,记录不明白的地方及关键测试点,简单画出总体流程图. 然后再来一遍,仔细分析各个模块的功能,画出模块内流程图,找出所有功能,并列出主要测试点 2.编写用例 按照不同的业务规则可将测试用例分为四部分: 场景用例.系统用