技术架构设计12原则(上篇)
在「架构能力的四个阶段」一文中,我提到我把架构的能力分为四个阶段,分别是架构原则(principles)、架构模式(patterns)、架构建模(modeling)、架构框架(frameworks)。其中第一个阶段是「架构原则」。架构原则是在架构设计领域中基本要遵守的原则,通常不会有太多条,且每一条都很简单、用处很广泛、彼此独立。我自己目前就建立了12条技术架构设计指导原则,这篇文章的目的就是为了跟iThome的读者分享这些原则。
架构原则1:不要使用Stored Procedure,因为这会让业务逻辑难以维护。资料库管理系统(DBMS)里面可以直接执行PL/SQL等程式,这种程式叫做Stored Procedure。这些年我在许多金融公司的工作经验让我发现Stored Procedure的问题重重,导致业务逻辑难以维护,应该尽量避免使用Stored Procedure。当然,不排除有人能把Stored Procedure的程式码写得非常好,有很好的抽象隔离和模组化,使得系统容易维护,但我看到的实际状况都不是如此,且Stored Procedure让业务逻辑和资料的储存结构结合得太紧密,这在未来系统调整时也会一个巨大的风险。
有人认为Stored Procedure直接在资料库内处理资料,执行效率比较好。但任何选择都有机会成本和风险,Stored Procedure非常可能会带来业务逻辑难以维护的危害,比起它带来执行效率提升的利益,大多数的情况下我们会选择「让业务逻辑好维护」。效率当然重要,但在这个时代,执行效率的提升通常会透过弹性灵活的分散式系统来达成,而不是透过单一个庞大系统效率的垂直提升。
架构原则2:一个系统内部可以包含储存和程式码,但系统间不能共用资料库。一个系统应该完整地控制自己的资料库,所有对资料库的存取都必须透过系统本身,不能直接去读写资料库,不光是不允许其他系统「写入」此资料库,就连「读出」资料也不行。如此以来,系统之间的依赖只透过API,当系统根据需要调整自己的资料格式和资料解读方式时,其他系统并不会受到影响。
架构原则3:逻辑容易变动的程式码必须剥离成另一个系统,容易变动者(例如应用系统)可以依赖较不容易变动者(例如平台系统)。提前做好这个剥离的动作,后续在业务功能变化时,好处就很明显了:需要要修改和测试的部分就会最小化,範围可控。
架构原则4:任何系统都不能依赖容易变动的系统。这一条原则和上一条原则是有关联的。容易变动的系统可能API的规格不稳定,且内部功能的稳定性也比较低,依赖这样的系统就会导致你的系统也很容易受到影响。
架构原则5:被调用方必须提供清晰、文件化的API。当我做系统设计评审时,我非常关心API设计的良窳。好的API可以让使用者一目了然,且有说明清楚的文件。关于API的设计,我的经验是「核心系统」的API要做到弹性至上,API的数量少,但每个API的参数个数比较多,这么设计的好处是可以避免核心系统经常需要修改。比较靠近应用的系统要做到使用的方便性至上,API的数量多,但每个API的参数个数比较少(且尽量让参数有预设值,可以空缺不设定)。
架构原则6:使用者界面要被剥离出来,且使用者界面内尽量不要有逻辑。使用者界面内可以有布局(layout)和操作等和业务无关的程式逻辑,但只要和业务有关的逻辑,一定要剥离出来。这么做的好处是,可以在不同的终端设备之间共用业务逻辑。
这篇文章先介绍六条架构原则,下一篇再介绍剩下的六条架构原则。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
最新文章
- DNF搬砖最佳宠物搭配指南
- DNF白金徽章变现攻略:如何巧妙出售白金徽章
- 寒潮蓝色预警:近两日最低气温 0℃线南压至江南南部至贵州南部和云南北部一带
- DNA 纳米机器人:可改造人造细胞,推动合成生物学发展
- 新型巨型里德伯原子成为精准量子温度计
- 《生化危机9》重大爆料:里昂确定回归主角,吉尔缺席引热议
- 广东:到 2027 年 绿色低碳循环经济体系基本建成
- 2024 财年美国对外军售额创历史新高:背后的战略与影响
- 离子阱量子计算在近年实现双码纠错
- 这次与肯德基的全新联动,星铁再次硬控玩家热情?
- 新年多城土地市场回温:杭州单价地王纪录 3 个月内两度被打破,民企恢复拿地
- 扎克·克雷格执导新版《生化危机》电影,发行权引多家大公司激烈争夺
- 广东:积极推进煤炭消费控制,全力构建以新能源为主体的新型电力系统
- 广东:到 2027 年,全力构建绿色低碳循环经济体系
- 长三角铁路春运再创佳绩:昨日发送旅客 310.2 万人次
- 海通策略:2025 年政策见效下市场望步入基本面驱动新阶段,结构上科技制造确定性更强
- 《最终幻想14》水晶世界青魔法师职业任务全攻略
- 上海:推出乡村振兴领域优秀博士后创新计划,打造高潜力创新人才‘储备库’
- 春节机票价格跳水至百元,航司退差价政策各异引关注
- 浙江:到 2030 年,LNG 年接收能力达 4250 万吨
- 上海:启动乡村振兴博士后创新计划,打造高潜力人才‘蓄水池’
- 币界网晚讯速递:SHIB币价攀升至0.00002044美元,日内涨幅达2.10%
- 不知火舞《街霸6》惊艳换衣秀,细节之处尽显匠心,玩家为之痴狂
- 中国汽车:奋力争夺超豪华市场入场券