系统架构师要什么条件
系统架构师在软件开发的活动中起到了纲领性的作用,就像建筑设计师一样,从大的方向来给软件定一个基调。软件开发中碰到的很多问题,归咎起来都可能和当初的架构设计有关,所以架构师要想不成为众矢之的,也不是容易的事情。那么要什么条件才能成为系统架构师呢?
1、完成此应用程序的基本功能。
如果这是一个通信程序客户端,那么它至少应该完成客户端所具有的功能,通过所有的测试用例。不同的功能是需要不同的组成架构的,从降低复杂度和提高可维护性的角度来考虑对系统进行解构,往往是最直观的做法。
2、健壮性。
这个程序不应该轻易的crash,如果是界面程序,在面对异常情况的时候采取柔和的方式来通知用户。如果是被别的程序所使用的库,保持健壮性更是非常重要。作为架构师,应该采取一定的措施来保证模块的'正确工作,至少应该保证在出错的情况下能够比较容易的区分是否是本模块造成的。也许有人说这是design和program的事情,但是架构师如果不在纲领上制定策略和要求,实现上也是很难操作的。
3、低的资源消耗。
很多软件架构,在架构文档里看时非常华丽,用了很多模式,一个普通的应用要拆分成多个进程,再用MVC分离各个模块,加上一大堆监听适配器过滤器等,可以说模式是能带来一些好处的,但是往往代价是更多的资源消耗,内存占的多了,性能下降了,逻辑变得更复杂了。作为架构师一定要权衡,而不是为了表达自己的知识能力。最好的情况是,能够给出在各种usecase下模块或应用对资源的消耗程度,比如会占用多少内存,某个接口需要多长时间等。因为现在的接口定义一般都只是定义使用方式,包括函数名和参数列表,至于使用时的代价由于没有说明,往往成为模块使用者和提供者之间争论的焦点。
从程序员的角度来讲,可维护性往往更为重要,因为维护的阶段比开发的阶段更长,面对的压力也更大,而且由于各种各样的原因,经常要一个新手来维护这个程序,如何让新手很容易的理解它并且马上具备解决问题的能力,对架构师来说也不是一件可以推卸的责任,采用常见的设计模式,制定或采用通用的代码风格,完善相关的文档等等,都是好的practice。
对于那些高层次的架构师来说,因为面对的是由很多模块应用组成的系统,他所要处理的实际上如何协调各模块关系,保证整个系统的功能性能和稳定性,至少他应该了解各个应用所具备的功能,基于此来制定各个模块之间的接口。在必要的时候,要去掉那些作用不大但影响整个系统性能和稳定性的模块,对各个模块的可选功能也要做一定的限制,不能允许其无限制的膨胀。架构师也往往面临着选择既有实现的困境,采用第三方或者开源实现时,一定要和已有的实现进行全方位的比较,在很难做出决定时宁可保持不变,或者采用小的实验步骤来获取真实的数据。
-
精细化管理在物流系统中的应用
采购仓储配送公司针对精细化管理要求,对工作程序予以调整优化,对物流系统规章制度进行修订和完善,进一步细化作业流程、强化各环节平衡制约,逐步建立健全新模式下的管控需求,以适应河北钢铁集团一体化战略格局。1明晰精细化管理要义,强化宣贯及执行力度精细化...
-
智能用电社区系统架构设计
智能用电社区在实现双向互动服务,满足电动汽车、分布式电源规模化接入需求,提高终端用户能源利用效率等方面表现出很好的效益。下面yjbys小编为大家准备了关于智能用电社区系统架构设计的文章,欢迎阅读。1国内外智能用电社区的发展现状1.1国外智能用电社区的发展...
-
存储架构体系发展在电信支撑系统中的应用
磁盘存储器经过多年发展,在容量、速度及体系架构方面都有很大发展,从目前电信运营商支撑系统的现状来看,主流还是SMP/NUMA存储,但在电信运营商互联网化的进程中,MPP存储应用可能会越来越广泛。一、存储器发展简述存储与主机分离的概念颠覆了传统的DAS模式,存储子系统...
-
关于分布式系统架构
对于软件架构,更多的是一种思想,即内功修为。在道与术层面,则更偏重道的修炼,道的深度决定架构的境界。相对而言,术是手段,随不同的环境应运而生,就像太极剑法和独孤九剑,能做到随境而变。架构是一种权衡没有一种架构可以应用到所有环境,也没有一个技术或框架可以解决所...