当前位置: 首页 > Linux

java职业新人技能树

时间:2023-04-06 06:52:32 Linux

本文以互联网公司常见的敏捷开发方式为例,简单说明一个需求迭代过程中需要具备的各种能力。第一阶段:了解程序设计开发需求文档(抓住重点,主要关注数据的流向,从哪里来到哪里去?)现有项目代码整理,快速定位代码位置(数据流向)htmlpage/app(http接口)-->chrome开发者工具/抓包工具-->http协议-->nginx-->Java的Controller-->dbuml图绘制:流程图、用例图、时序图等(非必须)服务间的交互方式选择、适用场景及各种交互方式的优缺点(rpc、http、mq等)数据存储:数据库和建表规范、数据存储选择(db、redis缓存、内存缓存)第二阶段:代码开发&自测git常用操作:分支管理、代码提交更新、代码合并、冲突解决、标签概念等,提交记录查看等;代码开发:编码规范、异常处理、日志打印规范、文档注释规范、关键指标监控埋点、常量选择(代码硬编码、配置文件配置、动态配置)maven的使用:maven生命周期、依赖原则、版本冲突解决,profile切换等数据库操作:增删改查sql,自测调试:单元/集成测试(非必须),本地调试技巧第三阶段:联调测试联调(前后台)-end联调,微服务间联调):使用mock数据接口测试工具postman测试linux开发机ssh登录并配置linux下业务日志查看,开启远程调试端口,本地ide连接到远程机调试Phase3:提交试卷在联调测试中,最终将代码提交给QA同学进行测试。期间需要关注QA同学提供的bug,解决第4阶段:linux下增删改查文件,vim简单使用,进程线程查看,机器信息查看(cpu,memory,networkstatus,diskspace),jvm常用参数的含义熟悉tomcat/springboot的部署流程,查看启动日志,识别启动成功/失败(healthcheck)第四阶段:线上问题处理linux下业务日志查看linux下pid查看,查看进程/线程信息linux下常用jdk工具:jinfo、jmap、jstack非侵入式调试工具(btrace、Arthas)、性能分析工具async-prOfile,gc原理和gc日志查看,内存分析工具mat的使用等。另外,除了上述技术硬实力外,工作中还有很多软实力,比如如何合理拒绝临时pm需求/需求变更以及如何配合qa关系好,少提bug,个人时间管理,与团队协调配合,共同推动项目如期上线