行万里路

技术钻研

  编码能力:

         多看:多看别人的代码,从别人的代码中读出软件的架构与设计的设计思路;

         多学:掌握各种语言,不要偏执于某一技术阵型,不管java,.net,phtyon还是javascript每种语言都有其优缺点,从语言的本身学习与理解语言设计者的思想;

        多做:疯狂编码,从时间与实践中去体验与领悟,工多艺熟;

        勇敢:勇敢的重构!让代码变得优雅,易读充满你的设计思想;

  方法论:

       《设计模式》,《Java编程思想》,《eXtreme Programming》

  架构师之路:

  并发编程:

        1、并发基础:1)线程的起源、实现、优势

                                2)共享内存,缓存一致性,MESI协议

                                3)自旋锁,偏向锁,重量级锁

                                4)一致性模型

                                5)JMM内存模型

        2、线程实现:1)synchronized、volatile关键字

                                2)happens-before语义

                                3)线程实现方式

                                4)wait/notify

                                5)Thread.join

                                6)ThreadLocal

       3、并发框架:1)核心机制AQS

                               2)重入锁ReentrantLock

                               3)线程锁synchronized及Locks

                               4)并发工具类CountDownLatch

                               5)线程安全集合ConcurrentHashMap

                               6)线程池及原理

       4、其他:1)fork/join

                        2)阻塞队列

                        3)原子操作Atomic

      源码分析专题:

          1、常用设计模式

                       1)Proxy代理模式

                       2)Factory工厂模式

                       3)Singleton单例模式

                       4)Delegate委派模式

                       5)Strategy策略模式

                       6)Prototype原型模式

                       7)Template模板模式

         2、Spring5

                      1)IOC容器设计原理及高级特性

                      2)AOP设计原理

                      3)FactoryBean与BeanFactory

                      4)Spring事务处理机制

                      5)基于SpringJDBC手写ORM框架

                      6)SpringMVC九大组件

                      7)手写实现SpringMVC框架

                      8)SpringMVC与Struts2对比分析

                      9)Spring5新特性

       3、MyBatis

                      1)代码自动生成器

                      2)MyBatis关联查询、嵌套查询

                      3)缓存使用场景及选择策略

                      4)Spring集成下的SqlSession与Mapper

                      5)MyBatis的事务

                     6)分析MyBatis的动态代理的真正实现

                     7)手写实现Mini版的MyBatis

      性能优化

           1、理解性能优化:

                     1)性能基准

                      2)性能优化到底是什么

                      3)衡量维度

        2、JVM调优:

                     1)知其然,知其所以然

                     2)什么是JVM运行时数据区

                     3)什么是JVM内存模式JMM

                     4)各垃圾回收器使用场景(Throughput\CMS)

                     5)理解GC日志,从日志看端倪

                     6)实战MAT分析dump文件

      3、Tomcat调优:

                      1)How it works?探查Tomcat的运行机制及框架

                       2)分析Tomcat线程模型

                       3)Tomcat系统参数认识及调优

                       4)基准测试

       4、Mysql调优:

                    1)理解Mysql底层B+ Tree机制

                    2)SQL执行计划详解

                    3)索引优化详解

                    4)SQL语句优化

   微服务专题

        1、微框架:

                  1)与微服务之间的关系

                  2)热部署实战

                  3)核心组件:Starter、Actuator、AutoConfiguration、Cli

                  4)集成Mybatis实现多数据源路由实战、集成Dubbo实战、集成Redis缓存实战

                  5)集成Swagger2构建API管理及测试体系

                  6)实现多环境配置动态解析

        2、SpringCloud:

                 1)Eureka注册中心

                 2)Ribbon集成REST实现负载均衡

                 3)Fegion声明式服务调用

                 4)Hystrix服务熔断降级方式

                 5)Zuul实现微服务网关

                 6)Config分布式统一配置中心

                 7)Sleuth调用链路跟踪

                 8)BUS消息总线

                 9)基于Hystrix实现接口实现降级

                 10)集成SpringCloud实现统一整合方案

   3、Docker虚拟化:

                  1)Docker的镜像、仓库、容器

                  2)Dock File构建的LNMP环境部署个人博客Wordpress

                  3)Docker Compose构建LNMP环境部署个人博客Wordpress

                  4)Docker网站组成、路由互联、Openvswitch

                  5)基于Swarm构建Docker集群实战

                  6)Kubernetes简介

        4、微服务框架:

                 1)SOA架构和微服务架构之间的区别和联系

                 2)如何设计微服务及其设计原理

                 3)解惑SpringBoot流行因素及能解决什么问题

                 4)什么是SpringCloud,为什么要选SpringCloud

                 5)基于全局分析SpringCloud各个组件所解决的问题

    工程化专题

          1、maven:

                    1)生成可执行jar、理解Scope生成最精确的jar

                    2)类冲突、包依赖NoClassDefFoundError问题定位及解决

                    3)全面理解Maven的Lifecycle、Phase、Goal

                    4)Maven流行插件实战、手写自己的插件

                    5)Nexus使用、上传、配置

                    6)对比Gradle

     2、Jenkins:

             1)搭建Jenkins自动部署环境

              2)Jenkins集成Maven、git实现自动部署

              3)test\pre\production多环境发布

              4)Jenkins多环境配置、权限管理插件使用

     3、Sonar:

             1)使用Sonar进行代码质量管理

              2)关于代码检查工具FindBugs/PMD的运用

              3)SonarQube代码质量管理平台安装及使用

              4)使用Jenkins与Sonar集成对代码进行持续检测

              5)Idea与Sonar集合的使用

      4、Git:

             1)什么是Git以及Git的工作原理

              2)Git常用命令Best Practise(避坑教学)

              3)Git冲突怎么引起的,如何解决

              4)架构师职责:Git flow规范团队git使用规程

              5)团队案例分享

    分布式专题体系

           1、分布式架构原理:

                  1)分布式架构演进过程

                  2)如何把应用从单机扩展到分布式

                  3)CDN加速静态文件访问

                  4)系统监控、容灾、储存动态扩容

                  5)架构设计及业务驱动分化

                  6)CAP、Base理论及其应用

           2、分布式架构策略

                  1)分布式架构网络通信原理剖析

                  2)通信协议中的序列化和反序列化

                  3)基于框架的RPC技术Webservice/RMI/Hession

                  4)深入分析Zookeeper在disconf配置中心的应用

                  5)基于Zookeeper实现分布式服务器动态上下线感知

                  6)深入分析Zookeeper Zab协议及选举机制源码解读

                  7)Dubbo管理中心及监控平台安装部署

                  8)基于Dubbo的分布式系统架构实战

                  9)Dubbo容错机制及高扩展性分析

     3、分布式架构中间件

                 1)

             

                  

 

posted on 2019-02-21 18:56  执着生辉  阅读(183)  评论(0)    收藏  举报

导航