侧边栏壁纸
  • 累计撰写 39 篇文章
  • 累计创建 1 个标签
  • 累计收到 3 条评论
标签搜索

【深入浅出-系统架构师】(1):绪论——系统架构的概念

mousycoder
2015-09-01 / 0 评论 / 0 点赞 / 98 阅读 / 1,116 字
温馨提示:
本文最后更新于 2022-01-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

随着系统的复杂程序增大,系统软件架构师已经成为一个流行的职业,其重要性慢慢高于算法和数据结构,它主要解决需求的技术实现,好比一个建筑的设计师。

架构三要素

构件

构件在软件领域是指可复用的模块,它可以是被封装的对象类、类树、一些功能模块、软件框架(framework) 、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)。但是,操作集合、过程、函数即使可以复用也不能成为一个构件。

构件的属性:

  1. 有用性(Usefulness):构件必须提供有用的功能,黑客代码也是有用滴。
  2. 可用性(Usability):构件必须易于理解和使用,可以正确运行,理解有点要求高了。
  3. 质量(Quality):构件及其变形必须能正确工作,质量好坏与可用性相互补充,
  4. 适应性(Adaptability):构件应该易于通过参数化等方式在不同语境中进行配置,比较高端一点的复用性,接收外界各种入参,产生不同的结果,健壮性比较高。
  5. 可移植性(Portability):构件应能在不同的硬件运行平台和软件环境中工作,可移植性比较好,跨平台,Java的架构明显说明了这一点。

我们都是站在巨人肩膀上的屌丝。如果没有那些造轮子的,我们现在软件开发速度就不会有那么快,更不会有后续发展的Agile迭代等软件思想。

模式

**模式(Pattern)**其实就是解决某一类问题的方法论,是生产经验和生活经验中经过抽象和升华提炼出来的核心知识体系。例如:DOTA 常用的有allpick模式,randomdraft模式,captainmode模式;游戏难度也有简单模式,困难模式;编程中JAVA也有GOF 23种设计模式;在商业上也有商业运作模式,比较典型的是最近很火的乞巧节;经济上也有经济运作模式,资本主义经济模式社会主义经济模式市场经济模式计划经济模式;在互联网上有典型的P2PP2CO2OB2CB2BC2C等。其实模式就是一个完整的流程闭环,而且还很成功,能够解决一些问题的通用方法(比如资本运作,高内聚,玩家不同需求等),软件中的模式大多来源于生活,是人类智慧的结晶。

规划

规划是系统架构中最重要的组成部分,是个人或者组织制定的比较全面长远的发展计划,是对未来整体性,长期性,基本性问题的思考和考量,设计未来整套行动的方案。很早就有规划这个概念了,例如:国家的十一五规划,土地征用规划,园林规划,职业规划,城市规划等。当然软件开发也和生活紧密联系,一个大型的系统也是需要良好的规划的,规划可以说是基石,是系统架构的前提。

系统架构虽然是软件系统的结构,行为,属性的高级抽象,但其根本就是在需求分析师的基础行为下,制定技术框架,对需求的技术实现。

0

评论区