什么是设计?什么是架构?从零开始建立一个新的系统,新写的每行代码都可能成为明天的历史包袱?如何能有效的在遗留代码上工作?今天,阿里资深技术专家辉子为我们带来NBF框架下软件工程架构设计通用方法论,值得细细品读。
我们提供的服务有:成都网站设计、网站建设、微信公众号开发、网站优化、网站认证、武威ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的武威网站制作公司
Note:本文讨论的是基于服务化前提下的通用软件工程架构方法论,并未涉及到微观设计或架构的具体细节。
前言
即使代码多年的人都会对这两个问题有点蒙圈:什么是设计?什么是架构?
从单词上看:设计是Software Design,架构是Software Architecture;分别对应的作者是:Designer和Architect:
服务化架构的基本原则
New System
从零开始建立一个新的系统,有几个特征:
由于调用方还没有,新系统可以比较完美的执行我们预想的架构设计,但是切记,最后那行才是最重要的那行:不要让今天的代码成为明天的历史包袱,新的每行代码都在书写历史。
上图的1,2,3,4代表新建系统的顺序:
Working on legacy
对于一个软件工程师来讲,写代码最痛苦的事情莫过于coding on legacy,但同时又给了我们各种说辞:
如何能有效的在遗留代码上工作,业内有本非常不错的书,叫"Working Effectively with Legacy Code",值得精读:
图片来源:书籍《Working Effectively with Legacy Code》
所以我这里的标题可能不准确,我要讨论的更多是"遗留代码的重构",什么时候我们开始讨论需要把现有系统重构:
架构的基本原则依然是上面那幅图。但上下文的不同,我们的发力点和优先级有明显的区别。阿里整个体系里的依赖关系错综复杂,要对阿里环境下的系统做重构是件绝对谨小慎微的事情。为了完成在这么复杂体系下的架构及代码重构,我们必须有条不紊的分离关注点以及一如既往的坚持软件卓越。
聚焦与收敛上游调用
解耦下游依赖
以服务为单位切换
老系统下线
经过一步一步的分解,legacy系统已经完全被重构,并且具备随时切换的准备。这里我给几个建议:
总结
本文基于借助NBF提供的远程多态,服务编排等能力下基础资料,商品,组网等系统新建,重构的经验及方法论总结。仅供遇到架构重构,解耦等问题困扰的技术团队参考。
本文作者:辉子
分享题目:如何避免新代码变包袱?阿里通用方法来了
文章链接:http://www.shufengxianlan.com/qtweb/news24/125724.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联