系统架构师概述

架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功。下面yjbys小编为大家准备了关于系统架构师的文章,欢迎阅读

系统架构师概述

  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)

复杂的业务规则

规则引擎和工作流引擎场景和应用

其实,作为一个真正的系统架构师,不应该局限于企业应用的系统,这种系统往往有数据库的局限性,有时候,应该考虑是否可以横向跨越,直接对其它系统做一些架构考虑,在没有丰富的实战经验的前提下,而只是看了其它人的系统和代码,就能够给出有效的设计指导。

例如对于一个下载软件,可以有如下考虑:

1. 未明和非法url的检验,已经下载失败的容许,信息记录

2. 多线程下载一个文件,文件的切分和拼合,部分切片丢失的拼合可能性

3. 下载线程管理

4. 服务器或者P2P的机器之间的通讯协议

5. 速度监控和限制

6. 下载进度的监控和显示

作为一个在线播放软件,可以做如下考虑

1. 播放速度的保证

机器的问题基本不存在了,关键是网络问题。如何在检测网络速度,根据影片的质量,并缓冲足够多的内容,保证播放一直尽可能顺利的完成。

2. 播放质量的保证

如何利用DirectX等技术,最快的进行渲染,是自己写底层,还是利用已有的API

由于没做过类似的项目,可以写的东西还是少很多了。