网站架构师的工作内容( JAVA系统架构师应该看的几本书ThinkinginJavaEffective基础、案例与应用)

优采云 发布时间: 2022-02-22 07:08

  网站架构师的工作内容(

JAVA系统架构师应该看的几本书ThinkinginJavaEffective基础、案例与应用)

  系统架构师的实践

  首先,什么是系统架构师?

  IBM 工程师的指示是:

  架构师的主要职责是在开发人员和项目经理之间提供一个通用的交流媒介。他们负责使业务规则和要求与工程实践和约束保持一致,以确保成功

  中文维基上的说明是:

  系统架构师负责设计系统的整体结构。从需求到设计的每一个细节都必须考虑在内。把握整个项目,使设计的项目尽可能高效、易于开发、易于维护、易于升级。

  这两种解释放在一起,基本上说明了系统架构师的定义。

  JAVA系统架构师应该读的书

  用 Java 思考

  有效的 Java

  UML基础、案例与应用

  UML 介绍性改进

  软件工匠

  设计模式——可重用的面向对象软件的基础

  重构——改进现有代码的设计

  敏捷软件开发——原则、模式、实践

  企业应用架构模式

  没有 EJB 的专家*敏*感*词* J2EE 开发

  软件工程 - 从业者的研究方法

  软件领导力 - 成功软件开发指南

  后两本书其实有点属于项目经理的范畴,但不是很深入,作为一个成功的系统架构师来看是非常有益的。

  企业应用系统架构师应注意的几个方面

  数据持久层的设计

  在 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

  由于我没有做过类似的项目,所以我可以少写很多。

  系统架构师应具备的素质:

  1、 实战编程经验

  应该至少2年,我就不多说了。事实上,如果你开始在大学学习,

  2、 书面和口头沟通技巧

  综合运用架构图、UML图、文字和代码片段来表达你的设计思路,Word或者ppt,你应该都懂

  在开发人员中发现的最有价值的建筑师标准是有效的沟通。您需要熟练且经验丰富的开发人员,他们具有在项目中就业务相关问题进行沟通的经验。架构师通常必须在做出贡献之前预见到理解上的差距。他们必须愿意克服困难,以确保技术和业务观点的融合。他们不必计划和协调思想交流;它仍然主要是项目经理的工作。他们的任务是确定用于表达系统设计的最佳工具和结构,以促进有效的思想交流。他们必须能够判断当前方法何时不足,何时需要新方法。写作技巧也很重要,

  3、 自觉主动;积极解决设计问题

  建筑师日常工作的目标往往不明确。许多开发人员直接参考待办事项列表的功能规范。架构师通常是为这些开发人员提供尽可能高效的结构的人。优秀的候选人不仅在沟通方面工作,而且还预测和解决各种设计问题——通常是有意识的,没有任何具体的指示。无论分配的职责如何,积极参与项目的开发人员都有机会从一起工作的人中脱颖而出。

  4、 抽象思维和总结技巧

  顾名思义,架构师必须在构建系统之前心中有一个草图。如果是对现有系统的改造,那么在阅读系统的文档(如果有的话)和代码之后,可以总结出系统的架构特点。

  架构师必须能够理解和制定模糊的概念,并将它们转化为所有相关方都可以理解的项目工件。他们必须能够理解抽象概念并用具体的语言进行交流。开发人员中的优秀候选人经常要求或主动解释开发生命周期中令人困惑的问题。他们可以快速评估想法并将其纳入后续工作的运营建议中。

  开发人员通常具有很强的数学技能,而优秀的架构师往往表现出更强的语言技能。经理们常说开发人员是“有工程意识的”,这对于评估架构师来说是一个非常有意义的方面。架构师应该有很强的解决技术问题的能力,但也必须能够获得关于人们如何与技术交互的准确和更全面的信息。这需要某种形式的抽象思维(而不是代码的细节),这可能很难开发。

  5、 综合技术信息吸收能力和选择识别能力

  作为开发者,针对具体问题的研究能力(虽然很多人总结为谷歌能力)是相当有能力的。但是,能够完全接受和选择性地理解技术信息,并做出正确判断,那些技术无非是厂商的噱头,那些技术是真正可以用在项目中,提高项目质量的好技术。这个能力确实是Critical。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线