1.4什么样的架构才算好

  • 在实际应用中,其实不存在一个本质上完全好的架构或者本质上完全糟糕的架构,各种架构总能够或多或少的满足某些系统的要求。
  • 可能对于一些企业或者项目来说,这样的架构是很好的,但对于另一个项目来说,可能就完全不适用,比如对一次使用的临时系统来说,使用具有很好的可修改性的架构没有任何意义。
  • 根据不同系统的不同目标,我们可以对架构进行评估,这是我们关心架构的原因之一。
  • 这就需要在设计架构的过程中遵循某些实践准则,当然忽视某一条准则,并不意味着整个架构都是完全失败的。至少可以把这些准则作为你评判架构标准,更好的对你的架构进行分析。
  • 我们把经验分为两类,关于过程的建议和关于产品(或结构)的建议

Process recommendations

  • 通常只是选择用一个架构师或者由一个明确指定的技术总监领导的一个小的架构师团队来实现某个架构,这样保证架构概念的完整性和技术的连贯性,同时架构师和开发团队之间应该有紧密的联系,确保架构不会出现某些不可能实现的象牙塔设计。
  • 架构师在设计过程中应该有一份划分了质量属性优先级的质量属性列表,这就意味着折衷和权衡。(功能性就没有质量属性那么重要)
  • 架构应该使用视图的方式记录下来,这些视图应该将项目生命周期中重要干系人的关注点都记录下来也就是说,一开始只是有少量的文档,后面慢慢进行详细描述,这些关注点通常涉及到系统的创建,分析和维护,还有为新的干系人进行系统的介绍。
  • 在系统开发初期,应该时常测试和评估架构,检测它是否在围绕系统的重要质量属性实现,这样可以保证所有所有对架构的改变都不会违背设计的初衷。
  • 架构的设计实现应该是一个迭代增量的过程,而不是在一开始就集成所有的功能点,系统的骨架图可以很好的解决这个问题,系统骨架图就是一开始只完善了模块和模块之间的联系,而不是过多的设计功能,在之后的系统开发过程中,以这个骨架图作为基础,逐步增加功能进行有必要的完善。

Product Recommendations

  • 架构最终应该是由不同的模块组成,这些模块隐藏内部的功能实现,只对外提供接口,这样每一个模块内部的改变不会影响所有使用该模块接口的模块,这也就是封装。
  • 除非系统的需求是史无前例的,要不系统的质量属性应该遵循那些已经存在的经典的架构模式和策略来定义。
  • 架构最终不应该依赖于某个开发工具或者产品的某个版本实现,如果依赖是必须的,那么该架构至少应该保证在所依赖的产品的版本变更后,能够方便经济的适应。
  • 产生数据的模块应该和使用数据的模块分开,这样可以提高可修改性,因为改变只是被限制在产生数据或者是消费数据阶段,有点像产生数据和消费数据对外只是提供自己的接口,对于它们内部是怎么产生和消费数据的是隐藏的。当要增加一个数据的时候,两个阶段可以同时进行改变,而不是需要系统逐步的进行升级。
  • 模块和组件之间一对一的映射是不可能发生的,在支持并发的系统中,可能就有很多实现同一个模块的组件实例并行执行。
  • 每一个进程的编写都要考虑到与特定处理器之间的关系,这样方便对分配进行变更。
  • 架构应该采用少量的,简单的交互模式,也就是说,系统的功能应保持一致,这样可以提高系统的可理解性,可修改性,可靠性,并减少开发时间。
  • 对于可能发生的资源争夺,架构中应该包括一个对资源的明确分配部分,即对一些使用到的资源进行合理有效的分配。比如,如果对网络的利用是我们关心的一部分,那么架构师应该具体对每一个开发团队进行限制,把网络拥塞降到最低;如果性能是我们关心的部分,那么架构师就应该对主要线程的时间开销做一些限制。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容