设计文档该写些什么

在软件的文档中,有需求文档,设计文档(可能还分概要和详细设计),测试设计等等诸多文档。它们各有各的用途,本文就探讨下设计文档要不要写,写些什么的问题。

先设计再编码,还是直接编码。初入门的程序员,喜欢拿到需求后往往就开始写代码,写着写着要么写不下去,觉得走题了,要么觉得设计有问题,得推翻重来。当你经验丰富了以后,会先大致想好怎么做,然后把函数原型写好,最后再一个个函数实现出来。就像写文章,前者想到内容A就写内容A,想到B就写B,忽略了主线;而后者先做提纲,再提笔充实,避免了很多弯路。

所以,先设计再编码,在编码中完善设计,一般是大家都认同的。那么脑子中有提纲了,是否要用文档写下来呢?

写设计文档的过程,是帮助你深入理解需求,探求实现方式是否可行的过程。而且在写提纲的过程中,反复思考下,你常常会发现更优的实现方案。

好记忆不如烂笔头。过了很久之后,还记得某个问题怎么解决的吗?当时思路清晰,可现在都记不起了,还要具体地去翻代码吗?这里,如果在文档中记录了当时解决该问题的思路,参考文档,以及可选的其它方案,就能迅速的进入当时的状态,一切都很快清晰起来。

文档中写些什么。首先是概念强化,在需求中有哪些对象(名词),中英文分别是什么,对象间是什么关系。这样在代码中为对象或函数命名也会规范和一致。

其次是接口,包括软件所有暴露出来的行为。先是外部接口,比如,软件有哪些命令行参数?用户可以设置哪些环境变量来影响行为?它与其它系统如何交互?特别是与数据库的设计,记录的就是与数据库系统交互的接口。然后是内部接口,记录子模块间如何通讯,通讯协议,格式等。

再次,是专题问题。对某个独立的需求,设计其相关的数据模型,接口等。对某些疑难问题,记录下参考资料,核心难点怎样解决,可选办法以及如何决策等。

在写文档时有个重要原则:不要重复。在其它地方能够了解到的内容,就不必写到文档里,一是使文档更有价值,二是避免更新的麻烦。比如,如果软件能输出完整的命令行帮助信息,或是软件本身的帮助文档已经包括了这些内容,那么只要在设计文档里加上链接,让读者去更专业的地方来找就好了。一般过程是这样的,先是什么都写到设计文档中,然后再逐渐细分出其它文档。

创作之前,先想设计,写出提纲,再图实现。以此之道,终会受益。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,846评论 25 707
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,756评论 3 59
  • 今天感觉眼睛有点疼,但是还是很心心念念我的咖啡冥想,昨天没有写,就感觉昨天晚上脑子里乱七八糟想着各种事~咖啡冥想晚...
    柔光宝宝阅读 160评论 0 0
  • 2017年9月6日 星期三 晴 今天的早课是有关原始点的学习,我对原始点并不陌生,两年前从一个朋友那里得知的,当初...
    爱莲_8f0d阅读 505评论 0 0
  • 她来了又走了,也就十八个小时,而我却等了两年。 你知道这样的感觉么?一个梦反反复复做了几百次,每个细节你都熟...
    灼骨阅读 183评论 0 0