浅谈架构、框架以及架构师

我们先来看看本人对下面这两个名词的个人见解:

软件架构:

几乎每个软件系统的架构都是不同的,因为软件架构的第一步就是根据当前项 目的重要需求及约束来制定一个个技术决策。

软件框架:

可以分成行业框架和通用框架。

通用框架是对大多数软件项目常用的模块(底层+高层)进行封装(同时暴露 热点)的一个集合,能提高开发速度以及质量

行业框架是针对某特定领域,把类似领域逻辑提取出来进行封装(同时暴露热 点)的一个集合,能提高开发速度以及质量

行业框架可以是基于通用框架之上的。

站在架构师的角度,针对架构的开发,会慢慢演变为针对框架的开发(由于需 要考虑复用以及对开发人员友好API特性)

伸缩性:一般是指机器级别的横向扩展,如:web服务器的横向扩展、数据库 的读写分离、中间件的横向扩展

扩展性:是指当需求变更时,系统能否很容易的进行修改、扩展。

简洁性:直接的观念是AOP,因为AOP能让开发人员集中注意力于业务逻辑上, 而不需要过多考虑非业务逻辑代码(比如日志、权限、参数的基本验证等)

性能:与伸缩性、算法优化、充分利用CPU能力有关

由于每个项目都是不同的,因此架构也大多数不同,但是由于人的精力有限, 不可能样样都精通,因此当架构初始化之后,针对不熟悉的

架构还需要进行架 构验证(如同测试人员的BVT)。因此对架构师而言,个人的学习能力、学习速度 以及实践能力都非常重要。那么如何进行架构验证呢?

1. 找几个开发人员评 审评审框架提供的API,看看反馈,需要修改则修改,或者通过技术培训解决

2. 使用AOP技术插入必要的日志、性能计数器、内存占用数(当然也可以用其 他技术,并非只有AOP技术)

3. 自己进行性能测试、性能分析;或者找技术性 测试人员来做

最后别忘了当项目进行之前先进行技术培训,讲解框架的实现原理以及如何使 用。

综上所述,框架与架构质量的好坏会严重影响使用者的效率,如:开发人员的 开发效率,架构师责任重大啊。

附上一个架构总览图:

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/

时间: 2024-12-27 19:03:00

浅谈架构、框架以及架构师的相关文章

浅谈大数据处理技术架构的演进

浅谈大数据处理技术架构的演进 任桂禾 王晶 新兴应用对大数据处理技术架构的实时性要求不断提高,这对传统的大数据处理技术架构提出严峻的挑战.必须转变架构满足大数据相关业务的实时性要求.文章介绍Hadoop离线处理架构的瓶颈以及Storm实时处理架构的优点,同时,结合实际项目中变更大数据处理技术架构的经验,阐述在实施架构变更过程中的关键技术,实验结果证明使用变更后的技术架构可以满足业务的实时性要求. 浅谈大数据处理技术架构的演进

浅谈Android官方MVP架构解读_Android

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

浅谈Android官方MVP架构解读

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

浅谈Asp.net多层架构中的变量引用与传递

asp.net|变量|架构 到公司已经快两个星期了,但是由于客户的需求分析没有下来,所有项目迟迟没有开始.正好利用这个时间仔细研究了一下Asp.net的多层架构,主要参考的是 Wrox 的一本<.Net WebSite Programming Problem-Design-Solution>,个人觉得这本书写的不错.面向有一定.net基础的开发人员,刚开始看起来可能觉得很难懂,但是仔细研究一下会发现,这本书是一本面向工程应用的优秀参考手册. Asp.net的多层架构主要是为了解决数据层,逻辑层

浅谈图片服务器的架构演进

现在几乎任何一个网站.Web App以及移动APP等应用都需要有图片展示的功能,对于图片功能从下至上都是很重要的.必须要具有前瞻性的规划好图片服务器,图片的上传和下载速度至关重要,当然这并不是说一上来就搞很NB的架构,至少具备一定扩展性和稳定性.虽然各种架构设计都有,在这里我只是谈谈我的一些个人想法. 对于图片服务器来说IO无疑是消耗资源最为严重的,对于web应用来说需要将图片服务器做一定的分离,否则很可能因为图片服务器的IO负载导致应用崩溃.因此尤其对于大型网站和应用来说,非常有必要将图片服务

浅谈Facebook的服务器架构(组图)

导读:毫无疑问,作为全球最领先的社交网络,Facebook的高性能集群系统承担了海量数据的处理,它的服务器架构一直为业界众人所关注.CSDN博主yanghehong在他自己最新的一篇博客< Facebook的服务器架构>中分享了他的看法. 大体层次划分 Facebook的架构可以从不同角度来换分层次. 一种是:一边是PHP整的经典的LAMP stack:另外一个是非PHP整的各种service. Facebook的页面从刚创立的时候扎克伯格写的,到现在,都用PHP开发.后端有用各种语言开发的s

浅谈MVC与三层架构

  首先给大家引入下MVC的概念:   MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式.   模型:就是在MVC设计模式中需要被显示的数据.在通常情况下,该模型需要从数据库中读取数据.保存模型的状态等,提供数据的访问方法以及数据的维护.   视图:就是用来显示模型中数据的用户界面,一般来书,视图就是HTML页面.   控制器:就是用来处理对用户的输入或者交互命令,以便改变模型的状态,选择适当的视图来显示对应的模型数据.   工作机制如

浅谈JavaScript 框架分类

  第1种 出现的是以命名空间为导向的类库或框架,如创建一个数组用new Array(),生成一个对象用new Object(),完全的Java风格,因此我们就可以以某一对象为根,不断为它添加对象属性或二级对象属性来组织代码,金字塔般地垒叠起来.代表作如早期的YUI与EXT. 第2种 出现的是以类工厂为导向的框架,如著名的Prototype,还有mootools.Base2.Ten.它们基本上除了最基本的命名空间,其他模块都是一个由类工厂衍生出来的类对象.尤其是mootools 1.3,把所有类

浅谈tiles框架

惯例: 我是温浩然: 这个真的属于原创文章--- 最近一直用tiles架构做项目,关于tiles架构呢,网上介绍的很多,我就不介绍了,这里说说我的用法. 架构是spring MVC + tiles  我这里说的,主要是其中一种用法. 一般配置tiles ,都是继承自一个框架中,这个框架上封装好了,头部,和左侧菜单栏,然后,右侧的内容部分需要自己定义. 刚开始的时候,我不太会用,所有的东西都用这个架构,也就是,每一个右侧的内容页面,我都用tiles架构给他嵌套到整个的tiles框架中. 后来,由于

浅谈SSH框架

      在学习或者接触一个新的概念的时候,我们应该在脑海中发挥我们的搜索引擎,牵一发动全身的去想,这个知识跟我之前接触过的有哪些相同或者不同的地方,从这个角度去看那些新的知识和概念,经过旧知识和新知识的对比我们便会发现,新知识知识在旧知识的基础上进行了更新和变化,今天这篇博客,小编主要简单的介绍一下SSH框架的知识,希望可以帮助到有需要的小伙伴,还请小伙伴多多指教`(*∩_∩*)′!       what       那么什么是SSH呢?SSH 为 struts+spring+hiberna