中国优秀软件架构师感悟录

什么是架构师呢构师是软件行业中一种新兴职业或者是角色,他要主导系统全局的分析设计和实施、负责软件构架和关键技术决策。其工作职责是在一个软件项目开发过程中,将客户的需求转化为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。

在系统设计和技术决策时,最难做到的就是平衡和取舍。在规定的时间内,团队内部人员的技术水平和状态、技术的成熟稳定度、技术实现的难易程度等因素都会影响系统架构的最终实现。比如去年四月底—正是SARS在北京闹得最凶的时候,我们接到了国家疾病预防控制中心的《非典型肺炎个案调查 告管理系统》的开发任务,由于国家疾病控制中心没有一套基于互联 的疾病申 系统,给这种突发性的传染性疾病申 工作带来一些困难。全部基于传真和电话的申 信息必须经过人工处理才能形成 告上 ,而面对神秘的SARS,申 的内容在不断的调整,上 的流程也在不断地更改,如果我们仍然按照通常的应用程序开发方法,可能很快就能完成这样简单的数据提交工作,但是如果任何地方稍有改变,程序开发人员必须在现场完成程序更改。由于当时的特殊情况,我们的开发团队也不可能保持特别大的规模,而时间要求又极其苛刻——一周之内系统要测试上线。经过权衡,认为必须满足可实时动态定制申 内容以及定制的查询统计,我们承担着巨大的压力,最后决定采用简化的模型实现系统,用项目成员最熟悉的技术和概念,完成保证系统运行的最小功能集合。

对于一个系统或产品,还需要有不断改善它的耐心,有时还需要推翻重新实现的勇气。上边提到的项目第一阶段,在疯狂的加班加点中基本完成了。不过,由于时间仓促系统还是有改进和提高的余地。在接下来的几个月时间内,我们做的就是不断对这个系统细化,深化,修改,调整。这时候,其他相关项目也要启动了,启用我们的核心引擎后,经过很短时间的定制,都分别上线运行了,充分体现了原有模型的设计重用性和系统的可扩充性。但精益求精,针对新的需求,我对原有的一些设计缺陷有了新的认识,界面不够灵活、流程不能定义、结构稍显混乱,等等。

随着又一个项目,所有上次积累下来想修改的东西都有了机会重新实现,这是多么美好的感觉。国家质量认证中心的业务系统,有更多表单要填写,有更多的复杂流程要实现,有更多的组织机构和角色要定义,需要更灵活的表现形式和配置功能。以前的系统引擎就不能满足了,就决定使用更新的结构、更新的工具甚至是更新的过程来实现。这回我们做到了每一个工作流可以用户自定义,每一个工作流节点中的表单用户可以自定义,每一个查询都可以自定义。随着时间推移,这套系统也在不断演进中。

  作为软件架构师,学习的能力和态度、敏锐的观察能力是非常重要的。必须通过各种途径学习和观察。对于目前国内的应用状况和互联 应用的不断深入,在不断的学习和观察中我觉得不管在哪些方面都需要整合,不管是企业内部的各种信息孤岛还是互联 上的各种应用。如何去整合资源,为最终用户服务,这个问题让我自然想到了Portal,这将是我们公司下一个重要发展方向。面对Portal世界中纷繁的技术,下一波的学习和实践就要启动了。

一个软件架构师,要勤于学习、观察、思考,决不放弃对最底层实现技术的掌握同时需要把握好系统框架的平衡,学会正确的取舍,并且要有耐心和勇气面对自己的设计,不断进行改进甚至重新实现。

软件架构师可细分为应用架构师和技术架构师,应用架构是软件本身作为一个应用而存在的结构,技术架构是使应用能够运转的支撑架构。就像软件是为 会为生活服务一样,技术架构是服务于应用架构的。

还有一些立志做J2EE架构师的程序员,不但不愿意深入学习Java虚拟机规范,对于API也只是一知半解。问其理由,答曰,犯不着搞明白,到用的时候查查API就行了。天哪,到用的时候查查API就行了,如果你是一个摩天大楼的建筑师,到盖高楼的时候现查查各种建材的参数规格指标就能盖起大楼来了么能把水、电、梁、管、消防等搭配得合情合理么想看,我们做的架构可能也会影响大批设计师和程序员,影响大批使用的用户,岂是现查API就能行的/p>

因此,我们可以说:架构是一门科学,更是一门艺术,触类旁通,除了掌握深厚的技术知识以外,要尽可能多地掌握领域知识。成为架构师,没有速成的办法,唯有实践+努力。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年11月6日
下一篇 2012年11月6日

相关推荐