码农到架构师视频学习笔记

架构师成长过程中的问题和困惑

技术人的困扰

  • 发展前途比较迷茫,是继续做技术,还是准备转岗,或者换一个行业。
  • 如何选择适合自己的岗位。
  • 跳槽完了问题还是没解决。
  • 想换岗,却不知道从何谈起。
  • 想换一个行业,来一次自我救赎。
  • 工作很烦心,工作已经毫无激情可言。
  • 一边安于现状,一边抱怨机会太少。
  • 不安于现状,希望赶快脱贫致富。
  • 想换岗,怎么换,怎么行动。

技术人的思维误区

误区1:技术人是吃青春饭。

30岁就很难有机会再发展下去,这其实是一个误区,我们完全可以进阶,往技术专家、架构师发展、还可以往产品、管理、运营、行业专家等方向。

误区2:越老越吃香,犹如老中医。

越老并不是越代表有思想,如果没有汲取,没有不断反思,不断挑战自我的勇气,也许你有的只是不断重复的工作经验。如我们常说的,你是拥有10年工作经验,还是一个经验用了10年。

误区3:做技术就应该专注于技术。

不管发展方向是什么,都更需要懂得业务,更需要懂得技术支撑的产品逻辑,不管是现在还是未来,懂得业务和产品,都将是你在公司或者市场的核心竞争力。要认清技术的价值,技术的存在是为了支撑产品,产品和运营是相互支撑,最终目标是为了服务用户。技术只是服务用户的一个手段,而不是全部。认清自己的工作的价值,才能摆正心态。公司内各部门相互协调,产品、运营、市场和技术是相辅相成的关系,不是对立关系。提倡敏捷开发的背后的核心逻辑是:给大家创造一个懂得团队协作的环境。

技术人的发展周期

对于技术人员,需要认清技术的岗位发展方向和周期,如果经常跳槽,将适得其反。通常,一名IT人员的发展轨迹如下:

第1阶段

3年左右(22-25)基础打磨阶段,主要任务:深入研究技术,熟练掌握一门以上语言及相关工具,能很好的完成基本工作。

第2阶段

5年左右(25-30)扩大纵向能力阶段。在这个阶段,技术人员一般会成为项目小组的技术带头人,至少是一名优秀的工程师。对技术发展方向已经很清楚,对自身的发展方向也有一定的认知。

第3阶段

5年左右(30-35),横向和纵向互相加深阶段。这个阶段的技术人员发展的分支:

  • 成为一名架构师,技术专家的路线。
  • 成为项目经理,逐步学会管理队伍。
  • 技术型销售人员(售前和售后)。
  • 管理方向:部门经理、项目总监、CTO。
  • 产品方向:资深产品经理、产品总监。
  • 往运营和市场方向。
    以上职位,大部分存在相互纵深发展。例如:架构师往往也是产品、行业专家,对产品的把控和行业的判断不一定比产品经理差,甚至更强;资深产品经理,也具备很强的项目协调能力和项目管理能力。

学习架构师课程的目的是在于压缩第2阶段的周期,从而更好、更快的进入第3阶段。

补充

  • 《传道书》上的一段话“已有的事,后必再有;已行的事,后必再行。日光之下,并无新事。

  • 塞林格说:不成熟的人为理想可能牺牲自己,而成熟的人为了理想可以卑贱地活着。

  • 人生唯一的满足感,只能来自于自己的努力。有人帮你,是你的幸运,无人帮你,是公正的命运。毕竟你的人生是你自己的,求人不如求己,只有你自己才能帮到自己。

横向发展和纵向发展

横向发展:拓宽工作范围,各项工作齐头并进。
纵向发展:让某一工作逐渐深入,力求抓出成效。

找到自己的发展方向

巴菲特的名言

人生如滚雪球,重要的是找到很湿的雪和很长的山坡。

每个人需要认清自己的立足点,在自己不同的发展时期,配合公司的发展时期,找属于你自己的立足点,站稳这个立足点,才可以更好的开始延伸自己别的领域。结合当今的发展趋势,技术人未来的核心立足点将来自于跨界的竞争,跨界包含行业跨界、职位的跨界、以及更多的视野的跨界。

如何学?

站在巨人的肩膀上,看的更高和更远,避免走很多弯路,弯路是对时间的浪费。站在巨人的肩膀上,这将是最好的职业规划和解决方案。不断从你身边的牛人身上汲取过往的经验和教训,找到一个你可以参考的榜样开始你的职业生涯。

Java程序员职业发展规划

随着IT培训业的持续发展和大量应届毕业生进入社会,Java程序员面临的不再是少量程序员和大量岗位,而是有限的岗位和大量程序员的关系。如何快速成长为一名高级的程序员或者架构师,这是初级程序员、3,5年的老程序员,都必须要面对和明白的问题。

原地踏步

惰性比较大,安于现状,建议是原地发展,做好本职工作,把自己的技术水平再提高一步。在这个过程中,他们的能力和自信心都会提高,想法也会发生改变。任何行业,都要有一个目标激励自己,每天醒来靠的是梦想(鸡汤),朝着目标提升自身实力和原地打转的选择高下立见。

管理方向发展路线

Java初级开发->Java中级开发[Java高级开发]->项目组长->项目主管->项目经理->项目总监->部门经理->CTO。

很多程序员希望自己能成为公司的主管、经理、老总,这样无论是收入和公司的地位都相对比较高一些。一方面程序员可能厌倦了年复一年的编程工作,对工作产生了抵触情绪,希望摆脱这种步步紧逼的工作状态。走向管理者要求程序员比一般人要做更多的准备、更多的转型工作,管理者在项目的沟通、协调、分配具有很好的能力。软件公司的管理者不同于一般公司的管理者,专业能力越强,管理起来越得心应手,没有专业能力的管理,遇到的问题很多,也很难解决。建议是:程序员最好要把编程、项目设计、项目管理等基础打好,这样转型到管理者成功率就会高一些。

要学习的内容
1.PMP

Project Management Professional ,项目管理专业人士资格认证/项目管理工程师。它是由美国项目管理协会(Project Management Institute(简称PMI))发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。
其目的是为了给项目管理人员提供统一的行业标准。目前,美国项目管理协会建立的认证考试有:PMP(项目管理师)和CAPM(项目管理助理师)已在全世界190多个国家和地区设立了认证考试机构。
现在PMI中国和国家外专局又推出了ACP(AGILE敏捷认证)和PGMP(项目集管理认证),另外PBA(商业分析师)预计于2016年年底开始推行

2.CMMI

CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD),SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。
Capability Maturity Model Integration,即能力成熟度模型集成。

3.ISO9000。

International Organization for Standardization,国际标准化组织。ISO9000质量管理体系是国际标准化组织(ISO)制定的国际标准之一,在1987年提出的概念,是指“由ISO/TC176(国际标准化组织质量管理和质量保证技术委员会)制定的所有国际标准”。该标准可帮助组织实施并有效运行质量管理体系,是质量管理体系通用的要求和指南。我国在90年代将ISO9000系列标准转化为国家标准,随后,各行业也将ISO9000系列标准转化为行业标准。

4.IEEE。

The lnstitute of Electrical and EletronicsEngineers,电气和电子工程师协会。1963年1月1日由美国无线电工程师协会(IRE,创立于1912年)和美国电气工程师协会(AIEE,创建于1884年)合并而成,它有一个区域和技术互为补充的组织结构,以地理位置或者技术中心作为组织单位(例如IEEE费城分会和IEEE计算机协会),总部在纽约。IEEE在150多个国家中它拥有300个地方分会。通过多元化会员,该组织在太空、计算机、电信、生物医学、电力及消费性电子产品等领域中都是主要的权威。

产品方向发展路线

Java初级开发->Java中级开发->产品策划->产品经理->资深产品经理->产品总监

部分程序员喜欢设计、分析,希望成为产品经理,这样可以脱离相对枯燥的编码工作和成型的产品打交道。产品发展方向最核心的就是视角的转变,原先追求完美和逻辑性,现在是怎么快速实现目标怎么来。很多时候,用户视角的简单性与工程思维的完美性是有冲突的。转型后会遇到若干困难,包括产品战略层面、沟通层面、团队管理层面、执行层面。以前做技术时不用做这些,现在做产品要做很多公司内部的东西,比如对上沟通,然而老板永远不懂我;对于沟通,光打鸡血远远不够;还有跟兄弟团队和部门之间因为资源不足产生的博弈等。建议首先对行业和产品有充足的了解,并学习管理、沟通、协作,且对产品方向有足够的兴趣。

程序员转变为产品经理容易遇到的坑

以手机摄像头为例。
工程思维:如何提高摄像头的分辨率;弱光下提高快门速度;如何进行ISO调整;如何优化人像识别功能;如何使闪光灯更智能等。
产品思维:更多的考虑是拍照场景;美颜效果;如何自动美颜并可以立即分享朋友圈;如何从众多照片中自动选取最美的一张等。
很多工程朋友的理解是:工程思维更关注效率和如何实现,也就是How;而产品思维更关注“场景”以及用户的内心需求,也就是Why。
在具体的产品开发中,产品思维和工程思维都很重要,需要将两者结合起来,产品思维需要工程的配合和支撑,将“场景”落实到产品开发。比如,产品经理想做一款夜间拍摄效果更好的手机摄像头,那么就要做到既保证人像清晰,又保证背景明亮,这时就需要工程师们在技术上相应的提升和优化,比如前景快门锁定、快门拉长等。

架构方向发展路线

工程师->高级工程师->技术专家->初级架构师->中级架构师->高级架构师。

架构师拥有完善和扎实的技术体系,具备较好系统分析和设计能力,丰富的项目研发经验。程序员的成长首先来自自身的学习,而阅读成熟项目的代码会使人受益匪浅;其次是来自锁从事领域的经验,要了解分布式系统的特点,在做项目时,要能够关注性能、扩展性、可靠性、可用性等指标。架构师是一个漫长的积累过程,大部分架构师的年龄在35岁左右,这个阶段就是程序员的黄金期。

加强自己成为架构师的标准

进一步加强技能的修养。对于互联网公司,最重要的技能是对网络和分布式系统的理解,比较麻烦的是分布式系统,除了分布式,在现在大型互联网企业中,还需掌握高性能、深入浅出、性能调优、Spring、SpringBoot、Spring Cloud、NoSQL、搜索引擎、JVM等技术。当然,良好的驾驭管理开发团队的能力和人格修养,能够让架构师在开发项目中游刃有余,不会出现意外的情况。

架构师晋升之路各阶段的特点和成长建议

架构师的“内功”

架构师的内功主要包含:判断力、执行力、创新力。

  • 判断力:能够准确判断系统的复杂度在哪里,就像武侠高手一样,能准确地看出对手的破绽和弱点。
  • 执行力:能够使用合适的方案解决复杂度问题,就像武侠高手一样,能选择合适的招式或者方法打败对手。
  • 创新力;能够创造新的解决方案解决复杂的问题,就像武侠小说里,小一些的创新是招式,而武学宗师能够创立新的武学或者心法,例如张三丰创立太极拳一样。

成为一个优秀的架构师,就需要不断地提升自己这几方面的内功,而这方面的能力主要来源于:经验、视野、思考。

  • 经验:设计过的系统越多、系统越复杂,架构师的内功也就越强,不管是成功的架构还是失败的架构,不管是踩坑的经验,还是填坑的经验,都将成为架构师内功的一部分。
  • 视野:掌握的知识和技能越多、越深,架构师的内功也就越强,他山之石可以攻玉,站在巨人的肩膀上会看的更高更远。
  • 思考:经验和视野都是外部输入,类似于我们吃的食物,但光吃不行,我要消化,将其变为我们自己的营养,这就是思考的作用。思考能够将经验和视野中的模式、判断、选择、技巧等提炼出来为我所用,思考也能促使我们产生新的创意和灵感。

总结

从程序员到架构师的成长之路,总的指导原则:积累经验、拓宽视野、深度思考。

工程师

成为一个合格的工程师需要1~3年时间,典型特征:在别人的指导下完成开发。这里的别人主要是高级工程师或者技术专家。通常情况下,高级工程师或者技术专家负责需求分析和讨论、方案设计,工程师负责编码实现,高级工程师或者技术专家会指导工程师进行编码实现。

成长建议:
工程师阶段是最原始的“基础技能积累阶段”,主要积累基础知识,包括编程语言、编程工具、各类系统的基本使用。以Java后端工程师为例,需要掌握的:
1.Java的语法、基本数据结构的使用。
2.Eclipse、IDEA、Maven、Linux命令行等各种工具。
3.数据库CRUD操作、缓存的基本使用等。
4.业务系统的基本流程。
工程师阶段最好的学习方法就是找经典的书籍系统地学习,而不要遇到一个问题到网上搜搜然后就解决了事。
推荐书籍:
《Java编程思想》、《Java核心技术》、《TCP/IP协议》。

高级工程师

成长为高级工程师需要2~5年,典型特征:独立完成开发,包括需求分析、方案设计、编码实现,其中需求分析和方案设计已经包含了“判断”和“选择”,只是范围相对来说小一些,更多是在已有架构下进行设计。以Java后端工程师为例,高级工程师需要完成的工作:
1.数据库表如何设计,是设计成两个表还是三个表。
2.是否要用缓存,缓存的key和value如何设计,缓存的更新策略是什么。
3.产品提出的需求是否合理?是否有更好的方式来满足?

成长建议
普通工程师成长为高级工程师,主要需要“积累方案设计经验”,简单来说就是业务系统当前用到的相关技术的设计经验。以Java后端高级工程师为例,包括:表设计经验、缓存设计经验、业务流程设计经验、接口设计经验等。当接到一个业务需求的时候,高级工程师能够组合这些设计经验,最终完成业务需求。

高级工程师阶段相比工程师阶段,有两个典型的差异:
深度:如果说工程师是要求知道How,那高级工程师就要求知道Why了。例如Java的各种数据结构的实现原理,因为只有深入掌握了这些实现原理,才能对其优缺点和使用场景有深刻理解,这样在做具体方案设计的时候才能选择合适的数据结构。
理论:理论就是前人总结出来的成熟的设计经验,例如数据库表设计的3个范式、面向对象的设计模式、SOLID设计原则(单一职责、开闭原则、里氏替换原则、接口隔离原则以及依赖反转)、缓存设计理论(缓存穿透、缓存雪崩、缓存热点)等。

针对技术深度,还是要系统学习,包括看书和研究源码。
推荐书籍
《深入了解Java虚拟机》、《MySQL技术内幕:InnoDB存储引擎》
推荐源码
研究Memcache、Tomcat的源码

针对设计理论,由于涉及的点很多,没有一本书能够涵盖这么多的设计点,因此更多的是依靠自己去网上搜索资料学习。那我们怎么知道哪些地方会有设计理论呢?简单来说,就是假设每个设计环节都有设计理论,然后带着这种假设去搜索验证看看是否真的有很成熟的设计理念。

技术专家

成为技术专家需要4~8年时间,典型特征是:某个领域的专家,通俗地讲:只要是这个领域的问题,技术专家都可以解决。例如:Java开发专家、PHP 开发专家、前端开发专家等。
技术专家和高级工程师的一个典型区别:高级工程师主要是在已有的架构框架下完成设计,而技术专家会根据需要修改、扩展、优化结构。例如:同样是Java开发,高级工程师关注的是如何优化MySQL的查询性能,而技术专家可能就会考虑引入Elasticsearch来完成搜索。

成长建议
主要需要“拓展技术宽度”,因为一个领域必然会设计众多的技术面。以Java后端开发为例,要成为一个Java开发专家,需要掌握Java多线程、JDBC、Java虚拟机、面向对象、设计模式、Netty、Elasticsearch、Memcache、Redis、MySQL、Spring Boot、Spring Cloud微服务框架、其他微服务框架等众多技术。常见的拓展技术宽度方法有:
1.学习业界成熟的开源方案。
2.研究业界的经验分享,例如BAT、FANG等大公司的经验,可以通过参加技术大会等方式近距离了解。
需要注意的是,拓展技术宽度并不意味着仅仅只是知道一个技术名词,而是要深入去理解每个技术的原理、优缺点、应用场景,否则就会成为传说中的“PPT技术专家”。例如,以Java开发为例,知道Netty是高性能网络库是不够的,还需要学习Netty的原理,以及具体如何使用Netty开发高性能系统。

初级架构师

需要5~10年时间,典型特征:独立完成一个系统的架构设计,可以是从0到1设计一个系统,也可以是将架构从1.0重构到2.0.初级架构师负责的系统复杂度相对来说不高,例如后台管理系统、某个业务下的子系统、100万PV量级的网站等。

初级架构师和技术专家的典型区别:架构师是基于完善的架构设计方法论的指导来进行架构设计,而技术专家更多的是基于经验进行架构设计。简单来说,即使是同样一个方案,初级架构师能够清晰地阐述架构设计的理由和原因,而技术专家可能就是因为自己曾经这样做过,或者看到别人这样做过而选择设计方案。
在实际工作中,技术专家和初级架构师的区别并不明显,事实上很多技术专家其实就承担了初级架构师的角色,因为在系统复杂度相对不高的情况下,架构设计的难度不高,用不同的备选方案最终都能够较好地完成系统设计。例如:设计一个日PV 100万的网站,MySQL+Memcache+SpringBoot可以很好地完成,MongoDB+Redis+Nginx+php-fpm也可以很好地完成。备选方案的设计和选择并不太难,更多的是看团队熟悉哪个技术。

成长建议
主要是形成自己的“架构设计方法论”,包括架构设计目的、架构设计原则、架构设计步骤、架构设计模式等,类似的架构设计方法论还有《恰如其分的软件架构:风险驱动的设计方法》和《领域驱动设计》等。

形成自己的架构方法论的手段
1.系统学习架构设计方法论,包括订阅专栏或者阅读书籍等。
2.深入研究成熟开源系统的架构设计,这个手段在技术专家阶段也会用到,但关注点不一样,同样是研究开源系统,技术专家阶段聚焦于如何更好地应用开源项目;初级架构师阶段聚焦于学习其架构设计原理和思想,例如Kafka的的文档中就有关于消息队列架构设计的分析和取舍。
3.结合架构设计方法论,分析和总结自己团队甚至公司的各种系统的架构设计优缺点,尝试思考架构重构方案。如果在这个基础上真的能够推动架构重构,那就更好了,既能够实践自己的架构设计方法论,同时积累经验,又能够展现自己的技术实力,拿到结果。

中级架构师

通常需要8+年时间,典型特征:能够完成复杂系统的架构设计,包含高性能、高可用、高扩展、海量存储等复杂系统,如如设计一个和Kafka性能匹敌的消息队列系统、将业务改造为异地多活、设计一个总共100人参与开发的业务系统。

中级架构师和初级架构师的典型区别:系统复杂度不同,中级架构师面对的系统复杂度要高于初级架构师。。以开源项目为例,初级架构师可能引入某个开源项目就可以完成架构设计,而中级架构师可能发现其实没有哪个开源项目是合适的,而需要自己开发一个全新的项目,,事实上很多开源项目就是这样诞生出来的。

成长建议
技术深度和技术理论的积累。例如:技术理论CAP、BASE是异地多活的设计理论基础;Paxos是分布式一致性基础算法;2PC、3PC是分布式事务的基础算法等;技术深度:Kafka用磁盘存储还能做到高效是因为磁盘顺序写;Disruptor高性能是结合CPU预读取机制、缓存行、无锁设计等基础技术;Storm的高效异或确认机制;Flink的分布式快照算法等。

疑问
对于上述的理论和技术深度的事情不应该是高级工程师阶段或者技术专家阶段就应该积累的吗?主要原因在于高级工程师或者技术专家阶段即使去学习这些技术,实际上也比较难理解透彻,更加难以有机会去应用,更多的时候只是了解有这个技术点而已;而到了中级架构师阶段,面对高复杂度的系统,很多时候就是几个关键技术细节决定整个架构设计的成败,或者某个设计方案理论上就是不可行的,如果不深刻理解理论和相关的关键技术点,很那设计优秀的架构。
以异地多活设计方案为例,之前很早就知道CAP理论,但也只是知道几个概念而已。真正做异地多活的时候,开始的时候试图做一个完美的异地多活系统,最终发现这其实是不可能的,某天突然顿悟:其实CAP理论已经明确指出来了这点,但最初学习CAP理论的时候,很难有这样深刻的理解。

补充
异地多活

一般是指在不同城市建立独立的数据中心,“活”是相对于冷备份而言的,冷备份是备份全量数据,平时不支撑业务需求,只有在主机房出现故障的时候才会切换到备用机房,而多活,是指这些机房在日常的业务中也需要走流量,做业务支撑。

高级架构师

一般需要10年以上时间,典型特征:创造新的架构模式,例如:谷歌大数据论文,创造了分布式存储架构、分布式计算MapReduce架构、列式存储架构,开创了大数据时代;在有MapReduce分布式计算架构的背景下,Storm又创造了流式计算架构;在虚拟机成熟的背景下,Docker创造了容器化的技术潮流;

高级架构师与中级架构师相比,典型区别在于“创造性”,高级架构师能够创造新新架构模式,开创新的技术潮流。

成长建议
一旦涉及“创造性”,其实和艺术就比较类似了,创造性实际上是很难学会的,也很难老师教会,更多是天分,或者某种场景下的灵感爆发。

创造性架构的背景的条件
1.足够复杂的业务场景。例如谷歌的大数据、阿里的双十一、Facebook的海量用户等。
2.足够强大的技术团队:绝大部分创造性的架构都来源于大公司,或者知名的研究机构;没有技术实力支撑,想突破也是心有余而力不足。
3.不满足于现状的态度:例如虚拟机很成熟但是资源占用太多,所以发明Docker;MapReduce难以做到实时运算,所以创造Storm流式运算。

尊重技术价值的文化;创造性的东西往往需要投入大量的人力和事件,而且刚开始一般都不会很成熟,如果完全结果导向、KPI导向,创新技术很可能在萌芽阶段就被否定。

Java架构师课程剖析

架构师成长基本功

  1. 工程结构管理:规范工程管理方式,掌握企业开发环境的搭建和管理,弥补工程师到架构师之间鸿沟的第一步。
  2. Java 开发规范:架构师不仅需要有开发能力、技术底蕴、架构思想,还必须保证自己的代码质量,P3C开发规约可以快速提升代码质量和初级架构思想。
  3. 高并发及网络编程:架构师要面对的不再是简单的代码开发,还要考虑性能瓶颈,可以提供完整的思路和基本的技术支撑。
  4. 底层源码分析:架构师需要从已有架构体系、成熟框架体系中吸收其架构思想和架构逻辑,分析底层源码是一个非常有效的方案。

补充
阿里巴巴P3C代码规范

P3C命名的来历

P-3C是世界知名的反潜机,它由美国洛克希德公司在民用客机的基础上改进而来,绰号为“猎户”。“猎户”诞生至今已经40多年了,尽管已是一员老将,但是在海湾战争中,它还是披挂上阵,为多国部队提供了大量的情报。
阿里巴巴以P3C作为项目代号,其寓意是要以开发规约为前提扫描出所有潜在的代码隐患。

互联网分布式常用技术

  • NoSQL数据库:提升数据访问效率的优先选择。Redis、MongoDB等技术成为互联网引用体系中必不可少的环节之一,作为架构师必须对其有足够的了解,掌握应用是基础中的基础,还要对其特性有充足的了解,明白什么是缓存穿透、缓存击穿,并有解决这些问题的经验。
    -分布式文件存储:随着互联网时代的兴盛,客户群体增加,数据量级增大,对资源存储要求越来越高。架构师需要了解分布式文件存储的特性,在系统架构阶段考虑如何应用。
  • 分布式搜索服务:数据搜索是任何基于数据服务的系统中必不可少的业务之一。传统的关系型数据已经不足以满足当下系统中的搜索支撑。分布式搜索服务成为优先选择的技术。常用的Solr、Elasticsearch都是很好的选择。
  • 消息中间件:在互联网时代,高并发已经成为常态,当PV百万级以上、UV十万级以上的时候,消息中间件就开始变的越来越重要了。消息中间件可以辅助降低流量高峰压力,提升访问效率,这些都是互联网应用中的核心。ActiveMQ和RabbitMQ作为常见的开源消息中间件被多数企业选择,也成为了架构师必须掌握的技术之一。
  • 分布式事务管理:在业务复杂度越来越高的互联网时代,事务不再是单一的本地环境,涉及到分布式事务的系统越来越多,相关的概念和技术也成为架构师必须掌握的技能之一。LCN作为一个开源的,支持Spring Cloud和Dubbo的分布式事务管理框架,是架构师作为分布式事务相关技术入门的一个良好选择。
  • 其他相关技术:Apollo、Swagger、Activiti、RMI、WebServices等。作为一个架构师,不仅需要足够的技术深度,还需要足够的技术广度,以应对不同行业、不同场景、不同量级的架构设计。

补充
LCN github资料

Spring超级全家桶-完整生态链框架体系

Spring 系列框架不仅是技术工具,还是学习架构思想的一个快速通道。Spring超级全家桶涵盖了Spring、Spring Data、 Spring Boot、 Spring Security、 Spring Session 、Spring AMQP、 Spring Integration、 Spring Web Service等。
作为一个优秀的架构师,必须有充足的技术储备,在系统架构阶段,可以针对不同的业务场景和不同的技术团队,设计出最搞笑的架构体系。Spring 超级全家桶作为技术备选是一个非常好的选择。

微服务技术

Spring Cloud 、Dubbo作为现在最热门的微服务技术框架。对微服务技术框架要有更深刻的认识,要根据框架特性,框架架构原来来分析,这个框架在什么样的系统中才能发挥最大的功用,而不是单纯的追求技术的新颖或技术的来源。

架构优化和高可用架构技术-系统的生命线

对于架构师来说,系统架构阶段不仅要考虑系统业务的实现,还要考虑系统性能的优化。在系统性能优化方面,主要在于两方面:技术、环境上的优化;架构上的可靠性优化。

  1. 技术和环境上的优化:如JVM、代码性能、Tomcat、MySQL、SQL语法、Nginx等方面都需要进行优化,提升代码和环境的性能。
  2. 架构可靠性的优化:如Nginx高可用集群、Tomcat高可用集群、MySQL高可用集群、MongoDB分片集群、FastDFS高可用集群等,这些都可以在系统架构方面来提升系统的可靠性,

架构师课程最终学习目标

技术积累

工程师通往架构师之路,必须有充足的技术积累。

原理积累

架构师与工程师的不同,不仅在于技术底蕴,还包括了架构思想、架构原理、设计思维等。

最终目的

成为初级架构师,铺平成为中级架构师的道路,打底成为高级架构师的基石。

学习来源

本学习记录来源如下的尚学堂视频免费视频教学里,个人只是部分进行了补充,补充部分来源网络。
尚学堂的从码农到架构师课程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值