系统架构师概述

发布时间:2016-11-23 00:00:00 编辑:嘉辉 手机版

  架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功。下面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

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

本文已影响873
+1
0