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

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

技术深度

  • 有没有看过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

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

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

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

成为架构师需要时间的积累的,不但要知其然还要知其所以然。平时的一点一滴你感觉不到特别用处,但某天你会发现所有东西都没有白学的。

据不完全统计,截至目前(2017.07)为止,中国Java程序员的数量已经超过了1000万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。为了帮助大家少走弯路,我们总结出一个Java程序员的工作2-5年成长路线图。

作为一名合格的架构师,必须懂各种网络产品及特性,懂各种中间件,能够知道坑在哪儿,深谙各种技术方案的优缺点,懂整合各种资源并达到最优…了解各种技术及应用场景,有足够的工作经验解决集成中遇到的各种奇葩问题。

​我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,希望能帮助这个阶段的Java程序员。很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以关注我,私信回复“架构资料”获取架构进阶学习资料。

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

  1. 北京java研发平均工资_各地java开发工程师平均工资 北京高级java开发工程师工资2万多...

    原标题:各地java开发工程师平均工资 北京高级java开发工程师工资2万多 java开发工程师工资水平一直都是程序员们比较关注的话题,毕竟java是最热门的编程的语言.每个城市的由于经济水平的差距, ...

  2. java核心面试_前100多个核心Java面试问题

    java核心面试 Core Java interview questions help you in preparing for java based interviews. Whether you ...

  3. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  4. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  5. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  6. java logger使用_这才是JAVA中打印日志的正确姿势

    作者:lrwin 原文链接:http://t.cn/E9BkD7a 使用slf4j 1. 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 2. 实现方式统一使用: Logback框架 打 ...

  7. java笔试题_一道简单的 Java 笔试题,但值得很多人反思

    专注于Java领域优质技术,欢迎关注 作者:匿蟒 前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问 ...

  8. java 编译器原理_作业5:Java编译原理

    零.编译 1.编译器 (1)前端编译器:.java文件转变为.class文件Sun的javacEclipse JDT中的增量编译器(ECJ) (2)后端编译器:.class文件转变为机器码HotSpo ...

  9. java 课程地位_“致敬经典 一往无前”JAVA大咖论坛解读!——长沙课工场实力...

    原标题:"致敬经典 一往无前"JAVA大咖论坛解读!--长沙课工场实力 2020年8月24日,高薪工作,匠心课程,创新服务--课工场2020年夏季课程发布系列的第4场"致 ...

最新文章

  1. Windows2003 IIS6.0启用Gzip功能
  2. eclipse远程连接hadoop_Hadoop之HDFS基本操作实验
  3. swift 注意事项 (十六) —— 可选链
  4. VTK:选择像素用法实战
  5. Spartan-II 应用指南 转载
  6. php pacs,DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class – 只要踏出一步,路就在前方——zssure – CSDN博客...
  7. Git 笔记——如何处理分支合并冲突
  8. Manchester Reunited 网站设计报告 // 当初的课程论文,纯怀念了=v=
  9. MES系统在注塑行业中的应用
  10. 网站优化:测试网站速度的8款免费工具推荐
  11. 组件测试 软件,测试AUTOSAR软件组件的测试方法及系统专利_专利查询 - 天眼查
  12. Pandas高级教程之:自定义选项
  13. 【送书啦】Python操作Mysql(连接、数据探查、写Excel)
  14. 关于如何用vscode使用Competitive Programming Helper (cph)插件以及网页插件competitive-companion实现高效刷题
  15. 【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构
  16. 英语论文写作词汇积累20161101
  17. 推荐几款炫酷的 MySQL 可视化管理工具!好用到爆!!
  18. virtualbox安装时发生致命错误的解决方法
  19. Mysql导出数据的几种方式
  20. 一位友人做足这些准备,终于拿到了FaceBook的offer

热门文章

  1. 多模态理论张德禄_结构动力学中的模态分析(3) —— 模态参数及实验模态分析...
  2. 【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
  3. wps电脑版_使用好这几个功能,让你手机里的wps变身神器。
  4. 【如何利用idea提交本地代码到git远程仓库,史上最详细教程,建议收藏!】
  5. nginx负载均衡的五种方式
  6. Spring Boot——[Disconnected from the target VM, address: IP:端口, transport: #39socket#39]解决方案
  7. Windows——Windows 10 加装 Windoes 7 制作双系统时,Windoes 7 启动卡在正在启动界面,并且重启无效解决方案
  8. 企业级 WEB 报表工具——FineReport
  9. Polycarp Restores Permutation
  10. 【练习】2021下半年数据结构刷题笔记和总结 (三)栈 队列 链表 枚举算法