前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【架构设计专题系列】 [方法论篇] - 1、我心目中好的架构设计

【架构设计专题系列】 [方法论篇] - 1、我心目中好的架构设计

作者头像
夹胡碰
发布2022-11-02 17:25:31
4600
发布2022-11-02 17:25:31
举报
文章被收录于专栏:程序猿~程序猿~

背景

最近在做 BI-统计图查询层重构(java应用层分析查询), 自己也在设计的这个过程中结合过往的经验在思考:

1、到底什么是好的架构设计? 2、好的架构设计应该具备哪些特征? 3、设计完成的方案能否平稳落地? 4、团队协同开发的时候是否方便、易用? 5、后期业务增长、功能迭代的过程中是否又要推翻原有的设计?

带着这些问题 在此次重构架构设计的过程中反复思考,反复实践,自己总结了一些方法论,下面与大家分享一下,供大家指正与参考。

适用人群 重点适配高级开发人员。 但因为是总结方法,产品、测试、开发人员均可参考。

一、我心目中好的架构设计

我心目中好的架构设计,应该具备以下几个重点项(权重由高到低) 1、规范边界 使用严格的技术手段,依据业务模型,规范功能职责、规范业务边界。从逻辑上(业务模型)和物理上(文件结构)共同进行规范。

--好影响: 因为指责清晰,所以后续丰富功能的过程中,能保证功能内聚,每次功能迭代的过程中可以通过小范围重构使系统更健壮。在经历1-2年的迭代后,系统业务边界依然清晰,功能足够内聚。

2、中台设计 架构设计上要适当的技术驱动业务,系统功能应通用。 设计过程中要先从业务入手(此阶段是业务驱动技术),收集所有功能(通用功能+定制化功能),然后设计业务模型,之后进行架构设计,此阶段就是要技术驱动业务我的系统应该具备什么能力,可以支持什么功能,现在业务没有提到的功能是否也能支持,这些业务没有涵盖到的功能只是实现预留,暂时不给前台提供此功能而已。这样系统的设计对于后台来讲才是符合逻辑的,健壮的,有依据的,而不会因为严重的功能定制化导致系统结构零散,没有规矩、没有规范,导致系统越来越臃肿,最后到达不能迭代的境地。

--好影响: 系统功能健壮、有章法、有规矩。

3、支持拓展 总体宗旨就是因为易拓展,所以易维护。功能要良好支持拓展,包括横向拓展、向上聚合拓展、多组合复杂场景拓展。(此项结合具体业务去看,例如此次重构就是复杂在多场景、多条件组合相互影响上。)

--好影响: 具体实现可采用策略模式、多条件组合策略 结合 模版方法进行设计,做到核心功能统一、定制化需求相互独立、功能聚焦、功能易理解等。从而干掉if else-if else这类严重影响系统维护的代码实现。

4、迭代简单 大道至简。技术架构设计可以复杂,可以精巧,可以不易理解,但是需要把业务逻辑实现屏蔽在架构设计之外。在业务逻辑的实现上一定要简单、简洁、易懂,用最简单、最高效的代码,实现逻辑。 主干流程打通后,或者现有业务支持成功后,后续加人介入开发,即使实习生或者初级开发工程师也能快速接入开发。而且针对不同职级开发人员,可结合业务及依据架构设计,分配不同难度工作。

--好影响: 架构搭建完成之后,系统维护不严重依赖核心设计人员,做到核心设计人员和系统解耦,同时系统迭代效率可横向拓展,加人即可增加系统迭代速度。

后记: 此架构设计文为【专题系列】,大致一周更新一次,后续将结合现在进行的重构工作,围绕此项目周期,从重点场景设计、落地实现、代码实现细节、失败案例分析、测试阶段及线上暴露问题、灾备方案、持续优化等方面进行持续更新,理论结合实践进行设计历程记录,供大家参考。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、我心目中好的架构设计
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档