架构设计常见原则
架构设计是一项从混沌不清的模糊状态、多因素动态纠缠的复杂环境、优先取舍无章可循、优劣利弊见仁见智等状态下梳理出一幅条理清晰、布局分明、大局周全、细处匠心且节奏明朗的城市地图的复杂过程。架构设计不像单纯地摘取低垂果实那般轻松简单,也不像流水线工作那样有明确的操作指南和检验标准,相比之下,过程中处处充满不确定,也缺乏明确的评价标准,甚至跟每个人的艺术性、性格偏好等有着说不清的缕缕联系。因此,很多时候架构设计被比喻为一项艺术创造,而不是常规的工程实践。
然而,从软件工程的角度来看,这似乎是不相容的。通常而言,包括软件工程在内的各项工程活动,都是尽可能化不确定性为确定性、化艺术性为技术性、化个体性为标准性,从而尽可能地追求标准化作业、大批量生产、客观性评价等经济性目标。
因此,经过国内外大量优秀的科技人员苦心孤诣、潜心钻研、悉心思考,并在形形色色的项目中,广泛积累、提炼、抽象、验证、升华和沉淀,行为了一些具备普遍适应性的设计原则,用于指导各项架构设计活动,使得尽可能让人捉摸不透的过程变得更加有章可循,让见仁见智的评价变得有统一的考验指标,从而使得架构设计活动更加高效、科学,进一步提升软件系统的研发质量、缩短建设周期、降低系统性风险。
为了使零散的设计原则更加系统化,我们将之进行分类。
(1)理念领先性原则。技术方案必须与业务高度融合,并且不仅仅是对现有业务流程的简单复制和单纯在线化,而是需要解耦现有业务流程的目标、制约因素和为满足的诉求,从目标出发,利用前沿技术,重新设计更友好的业务流程,从而创造更佳的客户体验和价值。
(2)结构稳健性原则。坚持高内聚低耦合的结构化设计原则,力求内部结构清晰、合理并具备前瞻性。其次,利用模型思维,对现有的业务对象进行抽象和建模,从而确保模块划分的高维性,以及模块之间互动的可扩展性。最后,需要保持体系性思维,全局视野,整体考量。
(3)因素均衡性原则。需要综合时间周期、业务特征、业务节奏、团队技能和结构等诸多因素,对因素进行分级,确保满足最高优先级的因素,适当兼顾其他优先级的因素。
(4)品质均衡性原则。高可靠、高可用、可观测、高容错、安全性和智能化等等,鱼与熊掌不可兼得,也需要从业务导向出发,进行合理取舍。
(5)业务导向性原则。在系统设计过程中,往往会遇到许许多多难以抉择的问题。这个时候,必须回归本质,以业务导向为准绳,确保核心业务自主可控且风险最小。
(6)时间转移性原则。在方案选择时,一方面需要对现有因素进行分类分级,另一方面又必须兼顾时间因素,即当前看起来无关紧要的因素有可能随着时间的推移和业务发展,逐渐升级为重要因素,因此,设计之初就必须考虑这一变化,否则方案的韧性略显不足,留下重大隐患。
具体每一类下的细分原则,我们在后续章节再展开叙述。
《企业架构研究与实践》
掌阅: https://m.zhangyue.com/readbook/13007348/1?p2=108694&share=1
微信读书: https://weread.qq.com/book-detail?type=1&senderVid=9239384&v=cb232a90813ab8441g016c47&wtheme=white&wfrom=app&wvid=9239384&scene=bottomSheetShare
版权声明: 本文为 InfoQ 作者【凌晞】的原创文章。
原文链接:【http://xie.infoq.cn/article/e04b7bc7822104318948ffe4e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论