精华内容
下载资源
问答
  • 学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须原材料。 2、构架萌芽(高级程序员) 学习分布式系统、...

    1、构架师胚胎(程序员)

    学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。

    2、构架师萌芽(高级程序员)

    学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)

    3、构架师幼苗(设计师)

    应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。

    4、软件构架师的正是成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……

    第一阶段,think in java关于java方面的特性都需要知道

    第二阶段,要学会使用jdk的帮助文档,

    第三阶段,开始看effective java

    第四阶段,必看 java模式

    后面还需要了解rup,uml东西

    这些完了,经过一些列项目经历下,2-4年后你应该就可以到达java的中等水平了吧

    Java学习的30个目标以及系统架构师推荐的书 收藏

    第一阶段

    2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking,multithreading,reflection,event,handling,NIO,localization,以及其他)。

    5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO,CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。

    24.你应该熟练掌握一种JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)

    26.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。

    27.你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。

    第二阶段

    1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。

    3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。

    6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如:oracle,mysql,mssqlserver。

    7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,

    codesigning,digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE(JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS(JavaGeneralSecurityService)。

    第三阶段

    10.你需要学习如何使用及管理WEB服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护WEB程序。

    8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。

    4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT,SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。(这条可有可无)

    9.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。

    14.你应该学习如何利用JAVAAPI和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ(SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging),JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

    15.你需要学习一门轻量级应用程序框架,例如Spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。

    20.你需要熟悉对不同有用的API和framework等来为你服务。例如Log4J(logging/tracing),Quartz(scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch),JakartaCommons等等。

    25.JAVA(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet

    第四阶段

    16.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS(JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX(JavaManagementeXtensions),以及JavaMail。

    11.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。

    12.你需要掌握各种流行中间件技术标准和与java结合实现,比如Tuxedo、CROBA,当然也包括javaEE本身。

    17.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean-ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者Message-DrivenBeans(MDB)。

    13.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

    18.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。

    第五阶段(优先级低)

    19.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。

    21.如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI (JavaNativeInterface) and JCA(JavaConnectorArchitecture)。

    22.你需要熟悉JINI技术以及与它相关的分布式系统,比如掌握CROBA。

    23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。

    28.你需要能够深入了解加熟练操作和配置不同的操作系统,比如GNU/linux,sunsolaris,macOS等,做为跨平台软件的开发者。

    29.你还需要紧跟java发展的步伐,比如现在可以深入的学习javaME,以及各种java新规范,技术的运用,如新起的web富客户端技术。

    30.你必需要对opensource有所了解,因为至少java的很多技术直接是靠开源来驱动发展的,如java3D技术。

    ====================================================================

    附:

    JAVA系统架构师应该看的几本书

    Thinking in Java

    Effective Java

    UML基础、案例与应用

    UML入门提高

    软件工匠

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

    重构-改善既有代码的设计

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

    企业应用架构模式

    Expert One-on-One J2EE Development without EJB

    软件工程——实践者的研究方法

    软件领导--成功开发软件的指导准则

    后面的两本书,其实已经有点属于项目经理的范畴了,不过还不是很深入,看看对做成功的系统架构师是很有好处。

    企业应用的系统架构师应该关注的几个方面 (具体情况具体分析,以下未必准确,只是参考)

    先来一些基础面试题,您答得出么?

    1、说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?

    2、用java怎么实现有每天有1亿条记录的DB存储?mysql上亿记录数据量的数据库如何设计?

    3、mysql支持事务吗?DB存储引擎有哪些?

    4、mvc原理,mvc模式的优缺点,如果让你设计你会怎么改造MVC?

    5、hibernate支持集群吗?如何实现集群?

    6、tomcat 最多支持并发多少用户?

    7、map原理,它是如何快速查找key的?map与set区别?

    8、描术算法,如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。内存只有1G???

    9、在1亿条用户记录里,如何快速查询统计出看了5个电影以上的用户? ----可以参考 位图索引的原理

    10、Spring如何实现IOC与AOP的,说出实现原理?

    数据持久层的设计

    在Spring和Hibernate,ibatis出来以前,几乎每家公司都有自己的一套方法和架构,而架构师的50%的精力也会集中到这上面,EJB只是增加架构师的负担。在Spring出来以后,基本上,大多数的架构师都从重复设计这个轮子的无用功中解脱出来了。Rod的轮子太好用了,基本上,大家只要套上去就行了,或者,剩下最重要的事情,是选择一个合适的数据库连接池的开源项目吧

    MVC架构的具体设计

    MVC只是个概要的概念,具体如何实现的具体技术很多,根据项目设计最恰当的架构

    大并发性访问

    太多了,包括从广域网到服务器到业务层再到架构再到程序、数据库的各种调优,如使用缓存,静态化,静动态server分离,在数据量达到一定程度时,使用集群技术,优先考虑利用服务器的集群,其次是硬件集群,最后才是应用本身加入集群功能

    超大数据量返回结果

    缓存命中率,分页,优化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、 全面的技术资讯吸收能力和选择鉴别能力

    作为开发人员出身,对于某一个具体问题的研究能力(虽然很多人总结为google能力),已经相当具备了。但是对技术资讯的全面接受和选择性深入了解能力,并且做出正确的判断,那些技术无非是厂家的噱头,而那些技术是真正可以用到项目,提高项目质量的好技术,这种能力确实至关重要的。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fish88168/archive/2010/09/10/5875944.aspx

    系统架构师知识结构
    软件系统架构师综合的知识能力结构包括9个方面,即:
    (1)战略规划能力。
    (2)业务流程建模能力。
    (3)信息数据架构能力。
    (4)技术架构选择和实现能力。
    (5)应用系统架构的解决和实现能力。
    (6)基础IT知识及基础设施、资源调配的能力。
    (7)信息安全技术支持与管理保障能力。
    (8)IT审计、治理与基本需求分析、获取能力。
    (9)面向软件系统可靠性与系统生命周期的质量保障服务能力。
    作为系统架构师,必须成为所在开发团队的技术路线引导者;具有很强的系统思维的能力;需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,哪些是无效的。架构师应当是一个成熟的、丰富的、有经验的、有良好教育的、学习快捷、善沟通和决策能力强的人。丰富是指他必须具有业务领域方面的工作知识,知识来源于经验或者教育。他必须广泛了解各种技术并精通一种特定技术,至少了解计算机通用技术以便确定哪种技术最优,或组织团队开展技术评估。优秀的架构师能考虑并评估所有可用来解决问题的总体技术方案。需要良好的书面和口头沟通技巧,一般通过可视化模型和小组讨论来沟通指导团队确保开发人员按照架构建造系统。
    因此,系统架构师知识维度可以总结为"多层次+多方面"。所谓多层次,意味着系统架构师必须在体系结构、计算机软硬件与网络基础知识、信息化基础知识、信息安全与可靠性基础知识等基本功的层面上受过良好的教育和快捷的学习能力;还须在系统架构设计方法、设计模式、设计流程以及各种模型等方面有丰富的经验,广泛了解各种构件产品和技术并精通一种特定领域的架构设计;进一步,还须在系统架构设计实践层面,有自己的认识和理解,同时具有很强的表述能力;所谓多方面,意味着系统架构师在每个知识层面上必须具有技术、管理、心理和艺术等多方面的知识和能力。这和系统架构师的多角色特点是相关的。本书也正是从这个角度来介绍系统架构的知识体系,即从系统构件、模式和规划三个方面的技术基础、原理和方法的角度编写而成的关于软件架构师的基本知识结构和水平的教材。

    展开全文
  • NUMPAGES JAVA EE架构师 需要具备的知识 1构架师胚胎(程序员) 学习的知识是语言基础设计基础通信基础等应该在大学完成内容包括javacc++umlRUPXMLsocket通信(通信协议)学习搭建应用系统所必须原材料文档收集自网络...
  • 知识宽广对于一名出色的架构师来说是必不可少技能,也许很多人对架构理解还停留在设计模式,重构,SOA等等软件层面,然而这仅仅是非常基本东西,架构师的脑子里不光需要知道让软件如何高效运行,还...

    架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力

    知识面的宽广对于一名出色的架构师来说是必不可少的技能,也许很多人对架构的理解还停留在设计模式,重构,SOA等等的软件层面,然而这仅仅是非常基本的东西,架构师的脑子里不光需要知道让软件如何高效的运行,还需要知道如何去结合网络,存储,甚至一些文件系统的特性,比如GFS,NFS,XFS,NTFS等等,而且架构师还需要知道一些编程语言的特性,C,C++,Java,PHP,Python,Lisp,JS等等,现在是一个混合编程的时代,只了解一种语言,即使再精通也会使你在架构系统的时候受到很大的局限性。

    再有一点,架构师需要对数据库技术有深刻的认识,因为现今是一个信息时代,大量的信息都是需要存储并检索的,数据库设计的不好,将会严重影响系统的性能,而这一点往往会被我们的设计人员忽略,他们只知道遵守那些范式而不会结合数据的特性去设计数据库。

    从一个程序员到架构师是一个很大的变化,架构师需要从大的方面考虑,而不只是考虑这个模块该用哪种设计模式去开发。

    总之,想要成为架构师,需要有耐心,不断学习,拓宽自己的视野,不仅仅局限于自己眼前的项目

    下面我详细介绍成为架构师所必须要学习的知识点:

    一、分布式架构

    分布式架构是 分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广:

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    分布式专题

    二、工程化专题

    1、Maven

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的

    2、一个专业的程序员,怎么能不掌握Git呢?版本控制领域,已经发展了一段时间,从古老的CVS,到SVN集中式管理,再到现在的Git。由于Git的分布式、everything is local、分支等诸多特性,让越来越多的项目开始从SVN迁移到Git进行管理。

    3、Jenkins

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。

    在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。

    公司的项目自动自动化部署是采用 Jenkins,并且编写自动构建的shell脚本。

    由于项目是前后端分离,前端和后端都是单独部署的, 后端 采用 JAVA编写,使用Maven管理多模块和项目依赖, 前段使用 npm 管理项目组件依赖, webpack进行打包。

    4、Sonar

    Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

    同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

    此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    工程化专题

    三、微服务架构

    1、微框架

    微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。 用通俗的话来讲,就是为了高度解耦软件之间的依赖性,使每个独立的模块都能够单独测试,单独运维,最大限度的提高软件的开发流程。

    2、Docker虚拟化

    Docker有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(Docker上运行不同的应用实例),相互独立(隔离)。但由同一个库管人员管理(主机操作系统内核),因此通过库管人员可以看到所有集装箱的相关信息(因为共享操作系统内核,因此相关信息会共享)。

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    微服务专题

    四、性能优化

    性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。性能问题永远是永恒的主题之一,而优化则更需要技巧。

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    性能优化专题

    五、源码分析

    源码主要功用有如下2种作用:

    1.生成目标代码,即计算机可以识别的代码。

    2.对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处

    我们在写程式时,有不少时间都是在看别人的代码。

    例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    源码分析专题

    六、电商项目实战

    无需赘述,如果没有实战经验,如何成为一名架构师?

    阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    项目实战

    Java高级架构群688583154      关注微信公众号:“Java架构师学习”回复“GIAC2017"  回复”架构学习“都会有惊喜。

    • 进群:可以领取免费的架构师学习资料。

    • 进群:了解最新的学习动态

    • 进群:了解最新的阿里,京东招聘资讯

    • 进群:获取更多的面试资料

    做技术人的指路明灯,职业生涯的精神导师

    转载于:https://www.cnblogs.com/haveaniceday/p/8253054.html

    展开全文
  • JAVA EE架构师 需要具备的知识 1构架师胚胎(程序员) 学习的知识是语言基础设计基础通信基础等应该在大学完成内容包括javacc++umlRUPXMLsocket通信(通信协议)学习搭建应用系统所必须原材料 2构架师萌芽(高级程序员)...
  • 一、扎实基础知识 1.java和面向对象 对象,类和类实例以及资源占用,流程和异常处理,静态,接口和抽象类,upcasting,downcasting, java数据结构,内部类,线程和并发,io、文件和网络 2.java数据库开发...
    一、扎实的基础知识
    1.java和面向对象
    对象,类和类的实例以及资源的占用,流程和异常处理,静态,接口和抽象类,upcasting,downcasting,
    java的数据结构,内部类,线程和并发,io、文件和网络
    2.java数据库开发
    jdbc,连接池,事务
    3.web应用开发
    html、javascript、jsp、servlet、ajax、xml、webservices
    4.j2ee体系
    ejb, spring, jms, 容器(tomcat,jboss,websphere,weblogi、、、)
    二、基本网络知识
    1.tcp/ip
    2.http
    3.局域网技术
    4.互联网技术(防火墙?)
    三、基本系统知识
    1.操作系统
    linux,window,solaris,aix
    2.存储
    磁盘阵列
    3.数据库(了解特性)
    mysql,oracle,db2,ms sql server....
    4.互联网应用
    DNS,FTP server,Mail server....
    5.系统安全
    不同操作系统存在的安全隐患。安全防范措施
    6.硬件
    各主要厂商的硬件有所了解。适合的应用
    服务器,交换机,路由器,防火墙,负载均衡器,存储设备.....
    四、了解软件行业的技术发张状况
    五、丰富的实践经验和专业领域知识
    展开全文
  • 目录软件架构师需要的基础知识和技能计算机体系结构网络体系结构硬件知识中间件知识软件工程知识方法学知识行业知识 软件架构师需要的基础知识和技能 注重建立宏观视角,从时间和空间维度来看待。 计算机体系结构 ...

    软件架构师需要的基础知识和技能

    注重建立宏观视角,从时间和空间维度来看待。

    计算机体系结构

    处理器、指令集、多核、存储、操作系统、IO 、并发

    网络体系结构

    ISO 七层、网络协议

    硬件知识

    服务器、存储、网络设备、

    中间件知识

    数据库、应用服务器、消息队列、缓存、HTTP服务器、各种框架

    软件工程知识

    软件质量、软件生命周期、软件过程

    方法学知识

    架构理论 、架构模式、架构描述 、面向对象、UML

    行业知识

    技术发张历史、架构发展历史、领域知识、行业趋势

    展开全文
  • 知识宽广对于一名出色的架构师来说是必不可少技能,也许很多人对架构理解还停留在设计模式,重构,SOA等等软件层面,然而这仅仅是非常基本东西,架构师的脑子里不光需要知道让软件如何高效运行,还...
  • 知识宽广对于一名出色的架构师来说是必不可少技能,也许很多人对架构理解还停留在设计模式,重构,SOA等等软件层面,然而这仅仅是非常基本东西,架构师的脑子里不光需要知道让软件如何高效运行,还...
  • 架构师是一个充满挑战职业,...架构师的脑子里不光需要知道让软件如何高效运行,还需要知道如何去结合网络,存储,甚至一些文件系统特性,比如GFS,NFS,XFS,NTFS等等,而且架构师需要知道一些编程语言...
  • 底层知识 计算机基础 计算机原理 数据结构和常用算法 操作系统:进程,线程,内存 计算机网络 tcp/ip协议 tcp/ip网络模型 http协议原理 网络IO模型 Socket网络编程 linux基础 专业技能 Java基础类库,异常。 ...
  • 前一段时间在网上看见了一篇文章内容大致是作为一个架构师需要拥有什么样能力,其中不过是包括以下几个点: 1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定掌握和应用经验。 ...
  • 一、来自架构师的架构解读架构师是一个充满挑战...然而这仅仅是非常基本东西,架构师的脑子里不光需要知道让软件如何高效运行,还需要知道如何去结合网络,存储,甚至一些文件系统特性,比如GFS,NFS,XFS,N...
  • 这里,我为大家梳理了一个整体的知识架构。整体包括Java、Android、算法、网络等。希望大家阅读之后,能帮助大家完善与整理自己的知识体系。祝大家面试顺利~~ 文末还有给大家分享我整理Android面试专题及答案可以...
  • 3.3CNN卷积神经网络基础知识-Pooling池化(百度架构师手把手带你零基础实践深度学习原版笔记系列) 池化(Pooling) 池化是使用某一位置相邻输出总体统计特征代替网络在该位置输出,其好处是当输入数据做出...
  • java8 集合源码分析 JavaSE 基础 容器 并发 JVM 新特性 编码之道 工具 ...基础知识 ...后台技术发展有更深认识。...网络 ...系统架构 ...在复杂分布式系统中,往往需要对大量数据和消息进行唯一标识。 RPC RP
  • 本部分内容是关于Android进阶一些知识总结,涉及到的知识点比较杂,不过都是面试中几乎常问的知识点,也是加分点。 关于这部分内容,可能需要有一些具体项目实践。在面试过程中,结合具体自身实践经历,才能...
  • 架构师必备的几项技能(下) 内力 架构师要努力成为内功深厚的高手。...在内力修炼方便,项目经理与架构师职责是不一样的,所需要的技能也是不一样的,需要明确。 2知识领域要宽广 具备开发方面知识,从理
  • 它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力。例如像前面已谈到的当在LAN上使用字处理程序时,用户的PC机操作系统的行为像在没有构成LAN时一样,这正是LAN操作系统软件管理了用户对字...
  • 3、架构师需要掌控全局。 1)核心:在于对知识脉络体系化梳理。 2)前提:在自己心中去重新构建出整个世界。在这个过程中,不要要一上来就沉浸在某个技术实现细节(除非它影响了你对这个世界构建过程理解)...
  • 因而很多地方机房部门和云计算部门是两个部门,但是作为一个云架构师需要和机房部门进行沟通,因而需要一定数据中心知识,在数据中心里面,最难搞定是网络,因而这里面网络知识是重中之重。 下面这个图是一个...
  • Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty是一个基于NIO的客户,服务器端编程框架,使用Netty可以确保你快...
  • 架构师考试大纲

    2020-05-12 23:30:24
    掌握计算机硬软件与网络的基础知识,包括计算机基本原理和计算机网络 熟悉信息系统开发过程,需要掌握,信息,知识,数据以及系统相关概念,信息系统工程。信息系统开发过程。 掌握信息系统开发标准以和技术...
  • 《分布式领域架构师要掌握技术》里面讲到,架构师在设计分布式系统需要重点考虑以下四方面: 1、通信 首先要掌握一些基础知识,例如网络通信协议(诸如TCP/UDP等等)、网络IO(Blocking-IO,NonBlocking-IO、A...
  • 系统架构设计教程

    2019-07-22 18:10:55
    资源名称:系统架构设计师教程内容简介:杨春辉主编的《系统...特别是对合格架构师应具备的理论与实践的知识作了详细的讲述。《系统架构设计师教程》为参 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • NIO知识点NIO知识点一、几个概念二、NIO基础1、传统BIO模型3、NIO...在完成网络通信进行IO操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立线程进行处理,当服务器端需要处理大量客户端时,性
  • 系统架构师学习笔记-数据通信与计算机网络(一)

    千次阅读 多人点赞 2019-01-20 21:07:35
    网络架构 IPV6相关   数据通信基础知识 数据调制与编码 在计算机通信时,有时需要对数字信号进行调制,以适合在模拟线路上传输,接收端通过解调以还原信号,因此在利用模拟线路 (如电话线)进行数据通信时就...
  • 前言 作为一个程序员,性能优化是无法避开...一个简单应用,它不仅包含了应用代码本身,还和虚拟机、存储、网络等紧密相关,线上应用一旦出现了性能问题,需要我们从多方面去考虑。 但在实际工作中,很多情况下
  • 1.JavaGuide :【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握核心知识。 2.CS-Notes:技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 3....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 385
精华内容 154
关键字:

架构师需要的网络知识