首先,何谓系统架构师? IBM工程师的说明是: 架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功 中文Wiki上的说明是: 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单 这两个解释,加起来基本说明了系统架构师的定义。 JAVA系统架构师应该看的几本书 Thinking in Java Effective Java UML基础、案例与应用 UML入门提高 软件工匠 设计模式——可复用面向对象软件的基础 重构-改善既有代码的设计 敏捷软件开发-原则、模式、实践 企业应用架构模式 Expert One-on-One J2EE Development without EJB 软件工程——实践者的研究方法 软件领导--成功开发软件的指导准则 后面的两本书,其实已经有点属于项目经理的范畴了,不过还不是很深入,看看对做成功的系统架构师是很有好处。 企业应用的系统架构师应该关注的几个方面 数据持久层的设计 在 Spring和Hibernate,ibatis出来以前,几乎每家公司都有自己的一套方法和架构,而架构师的50%的精力也会集中到这上面,EJB只是 增加架构师的负担。在Spring出来以后,基本上,大多数的架构师都从重复设计这个轮子的无用功中解脱出来了。Rod的轮子太好用了,基本上,大家只要 套上去就行了,或者,剩下最重要的事情,是选择一个合适的数据库连接池的开源项目吧 MVC架构的具体设计 MVC只是个概要的概念,具体如何实现的具体技术很多,根据项目设计最恰当的架构 大并发性访问 使用缓存,在数据量达到一定程度时,使用集群技术,优先考虑利用服务器的集群,其次是硬件集群,最后才是应用本身加入集群功能 超大数据量返回结果 尽量使用分页,优化SQL语句,循环处理数据时尽可能共用对象,只保留关键数据,及时释放内存占用 超大文件的读取和生成 尽可能快的读取大文件,并进行分析。写入大文件时,如何及时释放内存。学会适当利用操作系统的命令行资源来更快完成任务。 多线程的应用和管理 线程池的管理和监控,线程的启动(包括定时启动),结束,回收,线程资源的释放 用户界面可用性设计 平衡速度和可用性,恰当的使用异步和同步技术,展现关键数据为重点 分布式的数据交流和集成 选择恰当的数据交互方式,从最泛滥低效的Web Service到最实用的文件共享 群集系统的管理 如何确保缓存的同步?如何确保对象唯一性?如何保证各台机器的同步? 是否采用EJB?如何利用J2EE的特性(例如JNDI) 复杂的业务规则 [Read More →]