写架构设计文档有感

前段时间写了篇架构设计文档,一直想就这件事聊点什么,结果一拖就拖到现在了。算起来这是我第二次写架构设计文档了。一路摸爬滚打,算是有一点点领悟,也不知道对不对,就随便说说。

很多人觉得架构文档没有什么写的,或者说不知道要怎么写。其实我觉得这是因为自己对架构、或者对业务需求并不是那么理解。如果真的理解了,再来写这个文档,会发现真的有很多可以写的地方。因为你在明白架构设计文档的目的、作用后,就知道这个东西不仅仅是拿来糊弄公司的,而是真的有指导意义的。

首先要理解架构设计文档的作用,架构设计文档其实对项目开发是有很大帮助的,而且在写架构设计文档的过程中,也能让设计师认真的重新梳理一遍业务需求,从而有针对性的去设计,而不是在写代码过程中临时决定要用什么方法去写。

突然想起之前面试的时候问面试者,架构是什么? 听到的回答五花八门,什么都有。有的人干脆就说架构就是 MVC,MVP 等等,让人有点无奈。我在这里简单聊一下我的理解。

什么是架构?

架构这个词其实并不是软件领域专有的。它甚至可以追溯到人类起源的时候。

刚开始人类只有很简单的需求:有东西吃、有地方睡。一个人就能做完所有的事情。但是随着需求变得多样性,还有技术领域的细分化,一个人做不完所有的事情了,而且也学不会那么多技能。这个时候社会分工就出现了。随即演变出了社会组织架构。包括现在的企业组织架构,都是为了更好的分工而生的。

建筑中的架构也是类似的。一开始就一个茅草屋,一个火坑,简简单单的屋子就够了,不需要什么架构设计。随着社会的发展,人们对建筑功能的需求也越来越多,空间的切分也越来越细致。以居所为例,出现了客厅、餐厅、厨房、卧室、卫生间等专用空间。随着人们对空间划分变得细致、空间组合变得多样,建筑架构就应运而生了。

那么在软件领域,架构最根本的目的,我认为也是为了让一个团队能更好的分工,进而更好的合作


之前说了,写不出文档一方面是因为对架构理解不到位。另一方面就是因为对业务需求理解的不到位,那么为什么业务需求对架构这么重要呢?

什么是业务需求?

业务在很大的程度上决定了一个团队的分工。但是在讲业务需求之前,我想先聊一下程序员所需要解决的两类问题

第一类就是生意问题。我们制作的软件,其实都是为了做生意。而且很多时候,这个生意没有了软件一样能做,只是比较低效而已。我们只是生产了一个工具,可以提升做生意的效率

另一类问题,就是计算机问题,是用来支撑我们去生产这个工具的,比如计算机、数据库、网络等等,都是为了更好的支撑我们去模拟做生意的过程。

这两类问题,都会对我们的架构设计产生或深或远的影响,所以一定要在设计前就有一定的了解。

接下来聊聊业务需求为什么会对架构设计产生深远的影响。我们先看一下建筑的用途是怎么影响到建筑的架构的。

像农村里的普通住宅(一般规模),砖混结构就够用了;城镇的中低层住宅楼(规模变大),就需要框架结构;高层住宅(规模进一步变大)的结构也不一样,是核心筒 + 剪力墙;至于像机场、车站这种需要超大空间的建筑体(另一种使用场景),则又需要大跨结构。你看,建筑上不同的空间诉求,对架构的要求也是不同的。

回到软件领域,不同的业务,它的特点也不一样。像活动这种,天天在变,那么架构设计上就需要考虑快速迭代和快速开发;像日志系统,每天都有大量写入,但是读取比较少,所以在设计的时候也要考虑性能和稳定性等因素。不同的业务需求,有不同的特性,我们要在架构设计的时候就考虑进去这些特性,并且尽力去满足这些需求。

在这里我再多嘴一句,很多时候我们接收到的任务,其实是别人给过来一个解决方案,并不是他想解决的问题。我们要学会识别这个陷阱,因为别人给的解决方案可能并不是最优的解决方案,甚至可能是错的。我们需要直面问题,然后解决问题,这样是最高效的。

怎么写架构设计文档

说了这么多,到底要怎么写架构设计文档呢?

我觉得架构文档最应该体现的就是:对业务需求的合理分解,以及对各个子业务的特性的理解。对业务进行了合理的分解后,我们的项目就有了一个比较合理的骨架,这个骨架就是我们的底层架构。然后再对每个子模块做概要设计,随后将底层架构和上层的各个子模块的设计进行融合。其实这个过程就是一个化繁为简的过程,将繁琐的业务转化为一个个关键类和协议接口。

到了这一步,我们对业务已经有了很明确的认知了,自然也清楚每个模块的特性,此时再做技术选型,就有很强的目的性了。这样一来计算机问题也就随着业务问题一起解决了。


这里有一个文档纲领,只要思路正确,直接填鸭也没啥问题。

一、概述
二、目的
三、项目背景
四、系统建设目标
五、参考资料
六、架构设计
6.1 架构分析
6.2 设计思想
6.3 架构体系
6.4 系统视图
6.5 模块划分
6.5.1 模块描述
6.5.2 模块接口
``


---

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

推荐阅读更多精彩内容