开发

2021/08/04

开发

参考资料

一、职业规划

1.1 技术路线

  • 技术路线:初级开发工程师 ==> 中级开发工程师 ==> 高级开发工程师 ==> 资深开发工程师/架构师 ==> 技术专家
  • 技术考证:软件设计师 ==> 系统架构设计师(扎实理论基础、承接项目资质) 、PMP?信息系统项目管理师?
  • 技 术 栈:前端/移动端了解; 主后端/运维、扎实基础; 紧跟技术趋势(分布式、微服务、大数据、云原生)

1.2 技术管理

  • 岗位:TL、技术总监、CTO
  • 职责:技术发展战略、团队管理、研发管理、项目管理、产品管理

1.3 技术积累

  • 1.技术知识体系(收集):
    • 云盘:网课视频(架构直通车[分布式、微服务、云原生]、十项全能、大数据)
    • 云盘:经典书籍pdf
    • 系列博客:
    • 官网文档:
  • 2.工程能力git(实践):
    • project-ability
    • Leecode算法实例: 数据结构 + 算法
    • 设计模式实例:
    • common整理:基础、工具类、main验证
    • springboot组件集成:示例
    • spring-cloud-ability:微服务开发示例
    • bigdata-ability:大数据开发示例
  • 3.技术博客git(输出):
    • 开发:计算机基础(数据结构、算法、数据库、网络、操作系统) + JAVA基础 + 多线程 + JVM + 设计模式 + 组件 + 框架
    • 架构:分布式 + 微服务 + DevOps + 云原生 + 系统设计 + 大数据
    • 运维:服务器、网络、中间件、云资源、CICD、自动化
    • 管理:研发管理 + 项目管理 + 产品管理 + 团队管理 + 文档管理

二、规范开发工作流程

  • 设计相关
    • 总体(架构)设计:文档
    • 概要设计:文档
    • 详细设计:文档
    • 设计(技术)评审:会议、邮件
  • 开发相关
    • 技术标准、开发规范:(包结构规范、数据库设计规范、表结构维护、Java、JS、Sql规范、接口规范)
    • Sql规范、加压开发、SQL分析
    • 代码检查:编码规范:(Sonar、Alibaba Java Coding Guidelines、p3c、Findbugs、Checkstyle)/人工
    • GitFlow代码管理:Gitlab、GitFlow(master/release/develop/feature/hotfix)
    • Jenkins自动构建:Jenkins、Maven
    • 接口维护,前后端联调:swagger、Yapi
    • 冒烟自测:
    • 系统对接联调记录:xls
    • 初版:全量脚本、配置、实施文档
    • 增量发版:增量脚本、配置、实施文档
    • 开发环境维护:xls

三、开发技术栈

3.1.数据结构:

  • 数组、链表、栈、堆、队列、B+树、红黑树、图…
  • HashMap、HashTree、ConcurentHashMap、ArrayList…

3.2.算法:

  • 搜索、排序、Hash算法、动态规划、递归、分治、贪心算法、回溯 ==> 刷题

3.3.Java基础核心:

  • java8特性、
  • JVM内存模型、运行时内存区域、垃圾回收算法/机制、类加载机制、
  • 并发基础、JUC、多线程、线程池、锁机制、线程通信、
  • IO/NIO、网络编程、集合、泛型、反射、
  • 类关系、设计原则、设计模式

3.4.数据库:

  • Mysql、事务、索引、sql调优、执行计划、
  • 分区/分库/分表、Mycat、读写分离、主从复制

3.5.组件:

  • 安全、加密:AES DES RSA DSA签名 SM1-SM4…
  • 身份认证-授权:shiro、security、OAuth2、JWT、SSO
  • 组织机构-用户-角色-权限:RBAC基于角色的权限认证
  • 日志:log4j、slf4j、logback
  • 缓存:redis、memcache、ehcache
  • 消息:rocketmq、kafka
  • Nosql:MongoDB、
  • 检索:ES、
  • 存储:Fastdfs/oss、
  • 事务:LCN、
  • 通信:Netty
  • 工作流: Acticity
  • 任务调度:jdk定时任务、spring定时任务、Quartz
  • 报表服务:echarts、poi
  • 规则引擎:QLExpress:https://github.com/alibaba/QLExpress
  • 邮件服务:JavaMail
  • 接口API:Restful
  • 数据库连接池:druid
  • 注册发现:Zookeeper、euraka
  • 服务调用:Feign、Dubbo
  • 负载均衡:Nginx、Ribbon
  • 网关:Zuul、Gateway
  • 服务器中间件:tomcat、jetty

3.6.框架:

  • Spring、SpringMvc、AOP/IOC、动态代理CGLIB
  • SpringBoot、
  • SpringCloud、
  • Mybatis、JPA

3.7.架构:

  • 分布式:CAP/BASE/事务、一致性、锁、高并发、高可用、高性能、集群、负载均衡、配置中心、监控、容错、熔断、限流、异地多活、容灾
  • 微服务:SpringCloud(负载Ribbon、网关Zuul、服务调用Feign、熔断Hystrix、注册发现Eureka、配置中心config、链路追踪Sleuth、服务监控actuator)
  • service Mesh:Istio
  • 云原生(cloud native):云环境 + 微服务 + Docker容器化 + k8s容器编排 + CICD (从设计初即考虑云环境、微服务、持续部署,弹性)

3.8.性能调优:

  • JAVA性能调优、
  • 数据库/sql调优、
  • JVM调优、
  • Tomcat调优、
  • Web调优、
  • Linux服务器调优

3.9.项目工程化(DevOps):

  • Maven、Git、Jenkins、Sonar、IDEA/Myeclipse、JIRA、Docker、k8s、YApi、ELK、Grafana、Prometheus

3.10.操作系统:

  • 磁盘、cpu、内存、网络

3.11.网络:

  • http、TCP/IP、三次握手、七层网络、四层网络

3.12.前端:

  • HTML、CSS、JS、Jquery、VUE.JS、H5小程序

3.13.大数据:

  • Hadoop框架、Hdfs存储、Mapreduce离线计算、Hbase数据库、Hive脚本分析计算、Sqoop导入导出、Flume采集、Spark内存计算、Flink实时计算、Stom实时框架

3.14.云计算:

  • 基于云服务器资源,进行分布式存储、计算 ==> 处理大数据
  • 云服务(平台) = 云服务器 + 云存储能力 + 云计算能力(本质是大量服务器式集群,构建出的强大分布存储计算能力)

3.15.物联网知识:

  • 芯片、模组、操作系统、硬件设备
  • 网络2G/4G/5G、通信、链接
  • 平台、应用、解决方案、行业方案

3.16.人工智能、机器学习、大模型:

3.17.区块链、以太坊:

3.18.AR(Augmented Reality增强现实)、VR(Virtual Reality虚拟现实)

四、研发例会

  • 1.项目进展与建议
    • 项目进度、计划
    • 开发流程
    • 技术选型
    • 发现问题、商议方案
  • 2.问题求助、思路分享
    • 有难点、无思路
    • 已实现、场景可复用推广
  • 3.code review经典案例分析
    • 代码复查
  • 4.技术预研、培训计划
    • 培训计划
    • 技术氛围
    • 技术栈、由浅入深、原理、实战
  • 5.技术复用、能力沉淀
    • 服务http调用
    • 组件jar依赖复用
    • 功能package
    • 工具类class

五、个人技术博客网站搭建

六、开发技能图谱

6.1 后端工程技能

img2

6.2 前端工程技能

img3

6.3 常见名词理解

  • IaaS:基础设施服务,Infrastructure-as-a-service
  • PaaS:平台服务,Platform-as-a-service
  • SaaS:软件服务,Software-as-a-service

base64后-图1

图床链接-图2

SPA(single page web application):单页Web应用

顾名思义,就是只有一张Web页面的应用。浏览器一开始会加载必需的HTML、CSS和JavaScript,之后所有的操作都在这张页面上完成,这一切都由JavaScript来控制。因此,单页Web应用会包含大量的JavaScript代码,复杂度可想而知,模块化开发和设计的重要性不言而喻。随着单页Web应用的崛起,各种框架也不断涌现,如Backbone.js、Ember.js、Angular.js等,还有RequireJS等模块化加载库。

OLTP(on-line transaction processing):联机事务处理

当今的数据处理大致可以分成两大类:

1.联机事务处理OLTP(on-line transaction processing)

2.联机分析处理OLAP(On-Line Analytical Processing)。

OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果.

SOAP(Simple Object Access Protocol):简单对象访问协议

是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。 简单对象访问协议

SOA :(Service-Oriented Architecture):面向服务的体系结构

面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

Post Directory

扫码关注公众号:暂无公众号
发送 290992
即可立即永久解锁本站全部文章