软件架构实现:数据流与独立构件解析

一、什么情况下,涉及到软件架构?

软件规模可大可小,功能可复杂可简单。对于多年前的单一功能软件,大部分还不需要上升到软件架构层面。

随着功能越来越多、各功能之间联系越来越紧密、各个功能的实现难度越来越大,如何把这些功能有机的整合到一起才能更合理、更高效、更长久,就变成了一个复杂的课题,也就由此引出了软件架构的概念。



二、软件架构有哪些原则?

在我看来,总的来说,软件架构的原则主要有以下几个:合适、简单、演进。

怎么理解?

对于同一个场景,不同的设计师设计出来的软件架构会各不一样,甚至差别很大,这是为什么?其实是因为大家对软件架构的衡量标准很难统一导致的。软件架构有绝对的对错吗?好像没有。

对于同一个需求,有的设计师考虑的很长远,可能会设计的面面俱到,很复杂;而别的设计师可能会先设计一个可用的较简单的架构,同时保证可持续演进。

只要能够实现需求,能够满足性能要求,没有大的问题,似乎也很难说某种架构就是有大毛病的。

基于以上的分析,要能满足功能和性能的需求,这是软件架构基本的要求。

除此之外,就是一个权衡的过程了,也就是要综合考虑业务发展诉求、如何较经济的满足功能和性能的需求、首版交付周期和软件架构的完整性如何平衡。

由于软件功能的迭代是一个动态的过程,并且会随着公司战略的调整、市场需求的变化、用户数和数据量的变化等相应变化,常常很难在架构搭建初期就考虑的面面俱到和一蹴而就。

所以,软件架构常常就需要有个“演进”的过程。那么在架构搭建初期,就需要满足基本诉求,保证在可用资源的情况下可以落地,也就是要遵循“合适”原则。

除此之外,软件架构的分层分模块需要足够清晰、可理解性强,方便扩展,方便添加新功能,即需要遵循“简单”原则。



三、怎样从0到1搭建一套软件架构?

首先,对业务得有足够的理解,对业务发展得有规划。

其次,对功能和性能指标进行分解和技术摸底,确定可用的技术或者相关组件。当然,这个过程涉及技术或技术组件的选型,需要进行分析、对比和验证。

再次,要熟悉业界一些常用的软件架构模式,根据自身需要,进行内化。如果没有可参考的业界架构模式,则需要根据架构设计原则,按照分层分模块的方式,逐渐搭出合适的框架。

另外, 要综合考虑软件架构的各方面熟悉,包括高可用、高并发、可扩展、安全性等。当然,这些也有一个权衡的过程,看需要做到什么程度。

同时,要考虑软件未来的维护和演进,有哪些维护手段?怎么能更好的演进?如何保证在演进的过程中,软件框架不被泛化?这些都是做架构的过程中要考虑的。



四、软件架构的维护与演进

软件架构搭建好了之后,是不是就万事大吉,只等收割了?当然不是!

随着架构的扩展、模块的增加、功能的叠加,软件架构可能会越来越复杂。如果处理的不好,甚至最初的架构会被泛化掉。

这就需要在架构输出之后,完善相关的文档,让后续的设计、开发和维护人员熟悉架构,明确如何进行扩展、添加模块和叠加功能。

另外,需要制定好软件架构演进的规则,并严格执行,以保证软件的生命周期足够长。

               

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空