《Unity3D高级编程 主程手记》第一章 软件架构(一) 架构的意义

  1. 什么是软件架构
  2. 怎样才算是优秀的软件架构

什么是架构?

        实际上架构无处不在,它实质上是解决生活和工作中的问题的一种方案。

        在软件系统架构中,架构承担了解决项目从研发到上线运营的方案。

        项目中的每个子系统的都有自己的决策方向,而子系统的决策方向,把它们合起来加入一定的关联性就构成了一个完整架构整体,即每个系统、模块、组件都是软件系统架构中的一部分。

        优秀的架构师,需要对每个子系统决策的方向要进行深思熟虑,不仅只针对单个系统的决策方向,还要结合其他系统以及整体系统需求的方向进行决策。

架构的好坏

一,承载力

        从软件架构的程序意义来说,一个架构能承载多少个逻辑系统,代码复杂度扩展到100万行代码代码时是否依然能够有序规范,程序员彼此工作的模块相互依存度有多少,能够承载多少个程序员共同工作因为能工共同工作的架构加速了开发与迭代,这是对软件架构承载力的评定。

        从架构的结果上来看,对于服务器来说,当前架构能承受多少人同时访问,日均访问量能承载多少,是承载力的体现。而对于客户端来说,能显示多少UI元素,可渲染多少模型(包括同屏渲染和非同屏渲染),数据交互能达到多少量。

        承载力是重要因素,但并非是唯一关键因素。(短板效应)

二,可扩展性

        软件架构需要具有高的可扩展度。可扩展度的关键在于,在添加新的子系统后不能影响或者只能尽可能的少量影响其他子系统的运作。

三,易用性

        易用性决定了架构的整体开发效率,程序员容易上手,子系统容易对接,开发效率自然就高,各模块各部件的编写只需要花一点点精力来关注架构的融合,其他所有精力和注意力都可以全部集中在自己的框架结构上,才能让各系统各尽其职将效率发挥到极致。

四,可伸缩性

        当需要的承载量没有这么大时,可以不使用不需要的功能,化繁为简,只启用需要的部分。

        在实际项目中,有时可伸缩力看起来并不是关键的因素,很多人误认为伸缩能力是种程序员的负担,甚至有的项目某些时期根本不需要伸缩力,只需要适应当前的特定时间的需求就可以了。不得不强调可伸缩力在架构中的关键位置,它是深入理解、设计架构的关键因素,是做出优秀的完整的架构的重要因素。

五,容错性以及错误的感知力

        容错性首先起到了防止产品在使用中出现错误彻底不能使用的作用,它需要有备份方案自动启用功能,同时也能够让开发人员及时得知到问题发生,以及问题的所在,通过EMAIL发送或者短信、电话等方式通知维护者,并记录错误信息。

总结

        在架构中这五项能力缺一不可,某项能力特别突出也不能决定整个架构的好坏,综合因素才是。哪一项比较弱,则问题会不断向该方向聚集,直到最终出现大的问题,甚至崩溃。我们需要一个牢固的,多样化的,好用的,可伸缩的,有韧性的书架,这也是我们在构建架构时所追求的。

        最宏观的整体架构,是由所有子系统的架构来支撑的,整体架构虽然比其他子系统的架构都更加重要,但再好的整体架构也并不能起到决定性作用。

        如何让所有的因素都朝着好的方向发展是所有架构师最终都需要思考和解决的问题。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值