剑客古诗图片:如何训练一名软件构架师????????????

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 10:05:25
How to train an Architecter?
如何训练一名软件构架师????????????

    首先,什么是软件构架师?构架师是在分析设计阶段根据系统的主要功能和特性对软件总体蓝图做出规划的开发人员。请注意,这是一件风险很大的工作,设计出的构架要能够容纳主要的功能需求,还要有健壮的结构,还要有一定的扩展余地。这不是一件轻松的事,因为软件是十分精细的,简单的说,软件的开发过程就是不断给出逻辑判断的过程,这样的逻辑判断称为断言,当一个软件设计完毕,成千上万个断言就被建立起来,它们是隐含在程序和数据中的,一眼看上去,很难发现。如果存在自相矛盾的断言,那么这个软件系统的某些功能就肯定有问题。
    很遗憾,恐怕没有一个软件不含有这样自相矛盾的断言。构架师的任务就是在设计构架时,尽量减少引入或者诱导产生自相矛盾的断言,才能最终保证软件质量,减少开发成本。构架设计就有点像下围棋开局的时候,凭经验判定该下哪几步,但这却是关系到成败的关键步骤。
    所以,训练构架师是很难的,经验很重要,这需要长时间的实践。只是看看那几本关于软件构架的书,学习到一些风格、模式这类的东西是远远不够的!
    关于更加有效的训练构架师,我可以提供以下建议:
1、加强数理逻辑知识,掌握公理语义,能够通过逻辑演算找出构架的问题。
2、注重专业化,不要指望一个构架师什么类型的软件都能搞,既然主要靠经验,就要专业化。
3、学习开发案例,找到以前的设计文档来分析问题。从需求-〉构架-〉详细设计,一层一层找问题,从四个方面:(1)主要找别人的问题,要求构架师在尽量短的时间内发现别人的构架问题。(2)构架是否简单、易于理解?记住科学家说过“正确的必简单”。给出任意一个需求,构架师能不能找到相应的模块,还能改进吗?(3)构架容易扩展吗?在这个构架上增加一个合理的需求,引起的变更范围是哪些?能改进使变更范围缩小吗?(4)构架的其他方面——健壮性、稳定性、高可用性、负载均衡等等。
    通过以上方法训练,相信能在1至2年内培训出具备相应素质的构架师。