前谷歌高级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技术,想跟技术大牛一对一交流的可以交我的群:582100479。群里每天晚上八点会有大牛直播讲解最新的

技术,并且群里有免费的视频学习资源

为了帮助大家摆脱这种中年危机,走上升职加薪的道路。

本次给大家推荐一个免费的学习群,里面概括Java分布式、高并发、JVM、高性能、微服务、区块链、大数据等技术,以及面试资源等。

成就大神不是梦,还是要看你加不加

原文发布于微信公众号 - java一日一条(mjx_java)

原文发表时间:2018-05-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ThoughtWorks

从三明治到六边形|洞见

软件项目的套路 如果你平时的工作是做各种项目(而不是产品),而且你工作的时间足够长,那么自然见识过很多不同类型的项目。在切换过多次上下文之后,作为程序员的你,自...

3344
来自专栏企鹅号快讯

谁说 Java 要过时?2017年Java 大事件一览及未来前瞻

在过去的一年中,Java 历经了许多变化。在今年年初,Java EE 处于一个不确定的状态,Java 9 版本也推迟了它的发布日期。在 2016 年的 Java...

2057
来自专栏张善友的专栏

SOA十大设计原则

介绍了面向服务架构(SOA)的基本原则。 这些原则并不是绝对的真理,而是作为一个参考。 一、明确的边界 通过跨越定义明确的边界进行显式消息传递,服务得以彼此交互...

2135
来自专栏程序你好

微服务体系架构的10个最佳实践

切换到微服务体系结构将解决所有软件体系结构问题,对吧?好吧,它不会。但微服务的实施确实也有很大的价值。

1423
来自专栏一个会写诗的程序员的博客

服务网格 Pattern: Service Mesh

自从几十年前首次引入以来,我们了解到分布式系统能够实现我们之前甚至无法思考的用例,但它们也会引入各种新问题。

1102
来自专栏王亚昌的专栏

如何对产品运营情况进行监控

http://groups.google.com/group/dev4server/browse_thread/thread/8a86bb49a561f312

1292
来自专栏企鹅号快讯

大话云存储

1、云存储的官方定义 云存储是一个以数据存储和管理为核心的云计算系统 即是指通过集群应用、网格技术或分布式文机房集中监控系统件系统等功能,将网络中大量各种不同类...

4576
来自专栏眯眯眼猫头鹰的小树杈

猫头鹰的深夜翻译:Pattern: Service Mesh

在十几年前,我们无法想象一个分布式系统会是什么样子。它给我们带来了全新的架构思路,但同时也引入了一些问题。 当时这些系统非常少有而且架构简单,工程师们通过尽可能...

1662
来自专栏美团技术团队

美团外卖iOS多端复用的推动、支撑与思考

美团外卖2013年11月开始起步,随后高速发展,不断刷新多项行业记录。截止至2018年5月19日,日订单量峰值已超过2000万,是全球规模最大的外卖平台。业务的...

1293
来自专栏大宽宽的碎碎念

谈谈自己的大数据迁移经历背景问题规模数据迁移要考虑的问题最后

56713

扫码关注云+社区

领取腾讯云代金券