闲聊下架构、框架,以及架构师

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

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

软件框架:
能够分红行业框架和通用框架。

通用框架是对大多数软件项目经常使用的模块(底层+高层)进行封装(同时暴露热点)的一个集合,能提升开发速度以及质量
行业框架是针对某特定领域,把相似领域逻辑提取出来进行封装(同时暴露热点)的一个集合,能提升开发速度以及质量
行业框架能够是基于通用框架之上的。
站在架构师的角度,针对架构的开发,会慢慢演变为针对框架的开发(因为须要考虑复用以及对开发人员友好API特性)

伸缩性:通常是指机器级别的横向扩展,如:web服务器的横向扩展、数据库的读写分离、中间件的横向扩展
扩展性:是指当需求变动时,系统可否很容易的进行修改、扩展。
简洁性:直接的观念是AOP,由于AOP能让开发人员集中注意力于业务逻辑上,而不须要过多考虑非业务逻辑代码(好比日志、权限、参数的基本验证等)
性能:与伸缩性、算法优化、充分利用CPU能力有关

因为每一个项目都是不一样的,所以架构也大多数不一样,可是因为人的精力有限,不可能样样都精通,所以当架构初始化以后,针对不熟悉的
架构还须要进行架构验证(如同测试人员的BVT)。所以对架构师而言,我的的学习能力、学习速度以及实践能力都很是重要。那么如何进行架构验证呢?
1. 找几个开发人员评审评审框架提供的API,看看反馈,须要修改则修改,或者经过技术培训解决
2. 使用AOP技术插入必要的日志、性能计数器、内存占用数(固然也能够用其余技术,并不是只有AOP技术)
3. 本身进行性能测试、性能分析;或者找技术性测试人员来作

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

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

相关文章
相关标签/搜索