前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

原创 2018年04月15日 14:52:46

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

很多工作一定年限的程序员感觉自己到了瓶颈不知道怎么去突破,其实这个时候就要冲破传说中的架构师。

架构师是个很神秘人物,那么架构师的技术一般在什么程度呢?怎样才能被称为架构师?

技术深度

  • 有没有看过JDK源码,看过的类实现原理是什么。

  • HTTP协议

  • TCP协议

  • 一致性Hash算法

  • JVM如何加载字节码文件

  • 类加载器如何卸载字节码

  • IO和NIO的区别,NIO优点

  • Java线程池的实现原理,keepAliveTime等参数的作用。

  • HTTP连接池实现原理

  • 数据库连接池实现原理

  • 数据库的实现原理

技术框架

  • 看过哪些开源框架的源码

  • 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?

  • Netty是如何使用线程池的,为什么这么使用

  • 为什么要使用Spring,Spring的优缺点有哪些

  • Spring的IOC容器初始化流程

  • Spring的IOC容器实现原理,为什么可以通过byName和ByType找到Bean

  • Spring AOP实现原理

  • 消息中间件是如何实现的,技术难点有哪些

系统架构

  • 如何搭建一个高可用系统

  • 哪些设计模式可以增加系统的可扩展性

  • 介绍设计模式,如模板模式,命令模式,策略模式,适配器模式、桥接模式、装饰模式,观察者模式,状态式,访问者模式。

  • 抽象能力,怎么提高研发效率。

  • 什么是高内聚低耦合,请举例子如何实现

  • 什么情况用接口,什么情况用消息

  • 如果AB两个系统互相依赖,如何解除依赖

  • 如何写一篇设计文档,目录是什么

  • 什么场景应该拆分系统,什么场景应该合并系统

  • 系统和模块的区别,分别在什么场景下使用

分布式系统

  • 分布式事务,两阶段提交。

  • 如何实现分布式锁

  • 如何实现分布式Session

  • 如何保证消息的一致性

  • 负载均衡

  • 正向代理(客户端代理)和反向代理(服务器端代理)

  • CDN实现原理

  • 怎么提升系统的QPS和吞吐量

实战能力

  • 有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的。

  • 开发中有没有遇到什么技术问题?如何解决的

  • 如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能。

  • 新浪微博是如何实现把微博推给订阅者

  • Google是如何在一秒内把搜索结果返回给用户的。

  • 12306网站的订票系统如何实现,如何保证不会票不被超卖。

  • 如何实现一个秒杀系统,保证只有几位用户能买到某件商品。

软能力

  • 如何学习一项新技术,比如如何学习Java的,重点学习什么

  • 有关注哪些新的技术

  • 工作任务非常多非常杂时如何处理

  • 项目出现延迟如何处理

  • 和同事的设计思路不一样怎么处理

  • 如何保证开发质量

  • 职业规划是什么?短期,长期目标是什么

  • 团队的规划是什么

  • 能介绍下从工作到现在自己的成长在那里

总结一下:

  • 表示层:spring mvc 3.1 + annotation

  • 控制层:spring 3.1

  • 持久层:hibernate 3.6 +jdbcTemplate

  • 后台列表控件:displaytag 1.2

  • Ajax框架: DWR 3

  • JS框架 : Jquery

  • 缓存机制:spring 3.1 cache + ehcache/memcached

  • 静态化机制: Freemarker静态化/spring mvc伪静态化

  • 页面技术: EL + JSTL +JSP

  • 安全框架 spring security

  • 搜索引擎: Lucene

  • 中文分词:IKAnalyzer

  • 模板引擎: apache tiles 2.22

  • Linux、nginx、php、mysql,几乎是标配

  • 部署视图所需:

  • 数据库: mysql

  • Web 服务器: windows 下用apache, linux 下用ngnix

  • 应用服务器: Tomcat Jboss,tomcat,weblogic

想成为架构师不是懂了一大堆技术就可以了,这些是解决问题的基础、是工具,不懂这些怎么去提解决方案呢?这是成为架构师的必要条件。

架构师还要针对业务特点、系统的性能要求提出能解决问题成本最低的设计方案才合格,人家一个几百人用户的系统,访问量不大,数据量小,你给人家上集群、上分布式存储、上高端服务器为了架构而架构,这是最扯淡的,架构师的作用就是第一满足业务需求,第二最低的硬件网络成本和技术维护成本。

架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做到易于升级;否则等系统瓶颈来了,出问题了再去出方案,或现有架构无法扩展直接扔掉重做,或扩展麻烦问题一大堆,这会对企业造成损失。

下面是总结出的一个脑图:

想学习最新的Java技术,想跟技术大牛一对一交流的可以交我的群:626326599。群里每天晚上八点会有大牛直播讲解最新的技术,并且群里有免费的视频学习资源。

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

源码分析

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

分布式架构

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

微服务架构

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

高级架构师—SaltStack深度实践及配置管理

SaltStack是一个新的基础平台管理工具,只需要花费数分钟即可运行起来,可以支撑管理上万台服务器的规模,数秒钟即可完成数据传递。 本课程包含以下内容: 01-SaltStack快速入门 02-数据系统 03-Saltstack配置管理
  • 2017年03月02日 11:06

一名Java架构师分享自己的从业心得,从码农到架构师我用了八年

工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自...
  • Gupaoxueyuan
  • Gupaoxueyuan
  • 2018-01-07 14:28:03
  • 1835

成为一名Java高级架构师到底需要学习什么?

成为一名Java高级架构师到底需要学习什么? Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来...
  • andyliulin
  • andyliulin
  • 2017-09-07 23:30:40
  • 1506

Java 架构师是怎样练成的

转眼之间五年已经过去了,遥想自己当初是菜鸟的时候真的很心酸,前面我文章有提到过,不过现在感觉一切都值得。                 第一家公司,从打杂也就是页面bug、布局等修修改改,到局部功...
  • architect_zero
  • architect_zero
  • 2016-03-18 18:04:59
  • 1296

如何才能成为一名优秀的架构师

对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。那么程序员如何才能晋升为优秀的高薪架构师? 优秀架构师需要具备怎样的素质 ...
  • shuyun123456789
  • shuyun123456789
  • 2017-01-12 19:31:45
  • 1871

如何让自己成为一个优秀的Java架构师,而不是码农

如何让自己成为一个优秀的Java架构师,而不是码农 和大家介绍下我目前所从事的工作。 我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发。我们整个系统架构采...
  • huangshulang1234
  • huangshulang1234
  • 2017-11-05 11:18:01
  • 1766

2018干货,成为架构师的四阶段资料分享。

本文分享的架构师资料会很多。写在分享前,我们今天聊一下IT职业发展的问题,篇幅较以往或许有点长,也掇中痛点,请用心看心去。我作为工作好些年的老司机,将带你洞穿你的IT技术未来之路该怎么走,同时会授予你...
  • t4i2b10X4c22nF6A
  • t4i2b10X4c22nF6A
  • 2018-01-10 00:00:00
  • 3988

一名曾在BAT待过十年的资深Java架构师的经验之谈

所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及到的东西包括了从硬件...
  • g6U8W7p06dCO99fQ3
  • g6U8W7p06dCO99fQ3
  • 2018-01-13 00:00:00
  • 1817

如何成为一名架构师,架构师成长之路

我理解的架构师需要掌握的知识 1. 业务模块切分能力.领域设计能力. 2. 类设计和编程落地能力. 能写高可读和应对变化,可维护代码. 3. 看别人代码能力,可重构点能力. 分层不合适,方法抽取, ...
  • fei33423
  • fei33423
  • 2017-03-13 22:50:34
  • 5331

成为一名架构师得学习哪些知识?

转自: http://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4MA==&mid=2650692861&idx=1&sn=8ec2a1dabdebcec96705a90...
  • theoldfuture
  • theoldfuture
  • 2018-01-07 23:18:30
  • 296
收藏助手
不良信息举报
您举报文章:前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)
举报原因:
原因补充:

(最多只允许输入30个字)