架构的典型组成部分

程序组织:

系统架构首先要以概括的形式对有关系统做一个综述,如果没有综述,要想将成千上万的局部图片(或十多个单独的类)拼为一副完整的图画是相当伤脑筋的,如果你不能将它们拼接起来,那么就无法理解你正在开发的那个类对系统有何贡献!

如果在编写一个类的时候,对这个类在系统中的角色没有一个很清晰的构思,那么编写这个类就是一件十分令人灰心丧气的工作。需要对每个类进行慎重考虑!(功能->模块->类->模块->功能)

应该明确定义各个构造块的责任。每个构造块应该负责某一个区域的事情,并且对其它区域的事情知道的越少越好。通过使构造块对其他构造块的了解达到最小,你能将设计的信息局限于各个构造块之内。

应该明确定义每个构造块的通信规则,对于每个构造块,架构应该描述它能够直接使用哪些构造块,能间接使用哪些构造块,不能使用哪些构造块。

主要的类:

架构应该详细定义所用的主要的类。它应该指出每个主要的类的责任,以及该类如何与其它类交互(类的继承体系/状态转换/对象持久化等描述),根据80/20 规则对系统内部那些构成系统80%的行为的20%的类进行详细说明。

数据设计:

架构应该描述所用到的主要文件和数据表设计。它应该描述曾经考虑过的其他方案,并说明选择的理由(理由也写一写,特别是方案变更选取的时候)。

架构应该定义所用数据库的高层组织结构和内容。指出与其他访问同一数据的程序的可能交互方式,说明会创建哪些数据视图等

业务规则:

如果架构依赖于详细的业务规则,那么就应该详细的描述这些规则,并描述这些规则对系统设计的影响。(比如客户信息过时时间不超过30秒,在此情况下,架构就应该描述这条规则对架构采用的“保持客户信息及时更新且同步”的方法的影响)

用户界面设计:

用户界面常在需求阶段进行详细说明.如果没有就应该在软件架构进行详细说明。

架构应该模块化,以便在替换为新用户界面时不影响业务规则和程序的输出部分。架构应该使我们很容易的做到:砍掉交互式的界面,插入一组命令行的类。

资源管理:

架构设计应该描述一份管理稀缺资源的计划。稀缺资源包括数据库连接/线程/句柄等。应该尝试估算正常和极端情况下的资源使用量。各个类或者各个对象空间和时间的预算。

安全性:

缓冲区/处理非受信数据规则,加密,错误信息的细致程度,保存内存中的秘密数据,以及其他事项。

错误处理:

最后也是最重要的:

错误处理是进行纠正还是仅仅进行检测?如果是纠正,那么程序可以尝试从错误中恢复出来,如果仅仅是检测,那么程序就可以像没发生任何事情一样继续运行,也可也退出,但是无论哪种情况都应该通知用户说检测到了一个错误!

错误监测是主动的还是被动的?

程序如何传播错误?(直接进行错误处理/等到所有处理完成,再通知说某个地方发现了错误!)

错误处理有什么约定?(架构应该有一套完整的错误消息约定)

如何处理异常?(架构应该规定代码何时能够抛出异常,在什么地方抛出异常,如何记录(log)这些异常以及如何在文档中描述这些异常)

每个类在验证其输入数据的有效性方面需要负何种责任?是每个类负责验证自己数据的有效性还是有一组专门的类负责验证整个系统数据的有效性?

容错性:

检查错误的时候倒退回去;

系统有一套辅助代码,已备在主代码出错的时候使用;

表决算法;

系统使用不会对系统产生危害的虚假值来替代这个错误值;

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

推荐阅读更多精彩内容