架构设计策略之寻找够用的设计

要想开发成功的软件,开发者必须根据设计策略去做最优的解决方案。尽管有时候,比较简单的问题,无须考虑太多,“梭哈”就完了,既快速又有效。然而,随着业务的变化和系统复杂性的增加,设计上的问题始终会出现的,就像不规范的代码会带来很多隐患和技术债务,这些都是要还的。
凡事预则立,没有架构设计策略的开发,很容易陷入错误混乱中,开发工作难以进行下去。因此,要学会运用思维模式(见《架构设计思维模式》)和思维沉淀循环(见《架构设计思维模式实践流程》),去制定最优的设计策略。

找到够用的设计

最优的设计策略不是追求让架构设计达到完美的状态,应该清楚这是不可能,因为在现实开发中会有时间、资金成本、技术、知识、业务变化等限制导致架构设计不可能做到完美。

因此,我们的目标是找到一个够用的设计,这个架构设计能适应当前企业环境(满足利益相关方的需求等)和灵活应对业务变化。

寻找够用的架构设计,可以参考如下策略:

  • 快速验证解决方案:解决方案验证的速度越快,就越快找到合适的架构设计,项目就能越快受益。
  • 设法降低风险:架构设计失败是很严重的问题,必须时刻考虑可能出现的风险,并根据风险来进行设计。
  • 努力简化问题:运用分治、知识和抽象等方法,去理解和简化复杂性不断增长的问题。
  • 快速迭代学习:运用思维沉淀循环快速学习,快速积累知识,就能快速实现目标。
  • 同时考虑问题的解法和证法:能解答问题的设计方案可能有很多,但能证明适用有效的设计方案,可能寥寥无几。因此,需要同时考虑问题的解法和证法,以便高效地找到够用的设计。

以上策略可能理解起来有点难度,下面就个人理解再次一一说明下。

快速验证解决方案

要想能快速验证解决方案,必须要建立一套快速验证解决方案的机制。虽然架构师不是什么技术先知,但可以运用以下机制来快速验证解决方案:可以先“纸上谈兵”(头脑风暴、参考过去经验、决策矩阵等)来快速确定待验证的解决方案,再以“胜兵先胜后求战”的思想来优先验证最可能有效的解决方案,最后再运用各种实验的方法去验证解决方案。

设法降低风险

这里要引用下工程学历史学家Henry Petroski的话:

失败的概念是设计过程的核心,正所谓“失败乃成功之母”,通过消除失败,可达致成功之设计。

做架构设计是一定要设法消除失败的风险,但如今“巨人的肩膀”(各种消除风险的设计技术)实在太多了,很容易陷入了选择困难的泥沼里。

因此,这里的“设法降低风险”应该是根据风险驱动的,即思考风险大小和解决的优先级、选择合适的技术去行动、评估降低风险的程度再决定下一步设计,这里其实就是运用思维沉淀循环的思考、行动、检查步骤。

努力简化问题

简化问题不单单是为了应对日益增长的复杂性和规模,还有开发成本和维护成本等问题。如果把问题想得过于复杂也是不行的,那就可能过度设计了。为什么会这样?往往是因为我们对问题理解的不够深入,这时候应该运用思维沉淀循环去理解问题,积累知识,再运用循环去把问题抽象或者分而治之。

快速迭代学习

快速迭代学习,这也是敏捷开发的原则。如果一次迭代学习的时间过长,首先很可能满足不了业务的时效性,其次时间长无法灵活应对变化,最后可能会导致维护的代价很高。因为一般周期长的迭代,实现的功能多,依赖多,复杂度高,一旦出现问题,纠正问题的成本和代价就很高了。因此,架构设计必须快速迭代学习,保证灵活性和不断进化的特性。

同时考虑问题的解法和证法

问题的解法是很多的,越成熟的技术,越多成熟的解决方案,但并不是都合适的。因为每个项目和技术团队是有差异的,并不能“一招鲜,吃遍天”,还需要根据自身的拥有的条件去证明某个解决方案确实是最优的。这是非常契合思维沉淀循环的,因为思考了问题行动后肯定是需要进行检查的。

总结

虽然理想的架构设计是不可能的,但是也不能没有实际适用追求的。寻找够用的设计其实是强调架构设计的度,要运用高效设计策略去寻找恰如其分的架构设计。因为过度或者过简的架构设计是不行的,过度必然浪费资源,过简必然无法规避风险。

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

推荐阅读更多精彩内容