一、背景
关于入职的java开发的实习生或者毕业生,可能对职场中java开发实质使用的软件及开发流程都不是很熟悉,加上周边环境比较生疏,造成入职一段时间都比较拘谨和不知道该主动去了解什么。
二、软件
设计
- processon在线工具
- ProcessOn是一款在线协作绘图平台,支持流程图、思维导图、原型图、UML图等多种图形绘制。该平台提供实时协作和共享功能,让团队成员可以在线共同设计和编辑图形,方便进行思维整理和沟通。(地址:https://www.processon.com/)
- draw.io
- Draw.io是一款强大的在线绘图工具,支持流程图、UML图、组织结构图、泳道图、E-R图、思维导图等多种图形绘制。该工具提供丰富的图形元素和符号,可以满足各种设计需求。同时,Draw.io还支持实时协作和共享功能,让团队成员可以在线共同设计和编辑图形,方便进行思维整理和沟通。(地址:https://www.draw.io/ 离线版本安装地址:https://github.com/jgraph/drawio-desktop/releases)
- 语雀笔记
- 语雀笔记是一款功能强大的在线笔记工具,可以帮助用户更好地记录和管理自己的知识和想法。语雀笔记提供多种功能,如随时记录、多端同步、高效创作、结构化知识库等,可以满足用户不同的需求。(地址:https://www.yuque.com/)
环境
- Java Development Kit (JDK)
- JDK是进行Java编程的基础工具包,包含了Java编译器(javac)、Java虚拟机(JVM)、以及其他用于开发、调试和运行Java应用程序的工具。开发者应确保安装与项目兼容的JDK版本,并配置系统环境变量。(主流版本:jdk1.8、jdk17 下载地址)
- 构建工具
- Apache Maven 或 Gradle:这两种工具主要用于自动化构建过程,包括项目的依赖管理和构建生命周期管理等。国内目前大多公司都是使用Maven。(maven 下载地址)
- 版本控制系统
- Git:Git是最常用的分布式版本控制系统,用于源代码版本控制和协同开发。(Git 下载地址)
- Redis管理工具
- Redis 图形化桌面客户端下载地址:https://github.com/lework/RedisDesktopManager-Windows/releases
- MySQ管理工具
- Navicat是一款强大的数据库管理工具,支持多种数据库,如MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB和MongoDB等。它提供了一个直观的用户界面,使得数据库的管理和操作变得更加简单和高效。(https://www.navicat.com.cn/download/direct-download)
开发
- 集成开发环境 (IDE)
- IntelliJ IDEA:拥有社区版(免费)和商业版,以其强大的智能补全、重构功能及优秀的用户体验而受到广大开发者喜爱。(下载地址)
- 在线工具
- JSON在线工具(地址:https://www.json.cn/)
- Cron表达式生成器(地址:https://tools.kalvinbg.cn/dev/cron)
- 浏览器
- 推荐谷歌浏览器
- 火狐浏览器
测试
- api请求工具
- Postman(下载地址:https://www.postman.com/downloads/)
- Apifox(地址:https://www.apifox.cn/)
- Hosts
- SwitchHosts是一个管理、快速切换Hosts的小工具,它是开源软件,支持Windows、macOS和Linux操作系统。其主要特点包括一键切换Hosts、支持Hosts文件语法高亮、支持快速注释或取消注释、支持从指定网址读取远程Hosts内容以及支持Hosts配置的导入、导出和备份等。(地址:https://oldj.github.io/SwitchHosts/#cn)
部署
- 工具
- xshell(地址:https://www.xshell.com/zh/xshell/ 需要付费)
- Tabby(原名Terminus)是一款现代、开源且跨平台的终端模拟器和SSH客户端。Tabby的界面友好且功能强大,可以作为Xshell的一个替代选项。(地址:https://tabby.sh/)
- jinkens构建工具
- Jenkins 是一款非常流行的开源持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)工具。它由Java编写,并基于Web界面提供一套用户友好的管理平台。Jenkins支持跨多种平台运行,包括但不限于Windows、Linux以及Mac OS X。
- K8S管理工具
- Rancher 是一款开源的企业级容器管理平台,它提供了一站式的Kubernetes集群部署和管理解决方案。通过 Rancher,用户可以轻松创建、配置、管理和监控 Kubernetes 集群,无论这些集群是在本地数据中心、公有云还是混合云环境中运行。
监控
- **Prometheus **
- 是一款开源的系统监控和警报工具,它由SoundCloud于2012年创建,并在2016年加入云原生计算基金会(CNCF),现在已成为CNCF毕业项目。Prometheus 采用了时序数据库设计,主要用于实时收集和存储时间序列数据,尤其适用于微服务架构下的监控场景。
- Grafana
- Grafana 是一款开源的数据可视化和分析平台,它支持多种数据源,用户可以将来自不同数据源的时间序列数据进行整合,并创建丰富的图表、仪表盘以及警报通知。
- SkyWalking
- Apache SkyWalking 是一款开源的可观测性分析平台,专为微服务、云原生和容器化架构设计。SkyWalking 提供了分布式追踪、度量指标分析、服务网格遥测以及应用性能管理(APM)等功能。
项目管理软件
- Jira
- Jira 是由澳大利亚公司 Atlassian 开发的一款项目与问题追踪管理工具,广泛应用于软件开发、敏捷开发团队以及 IT 服务管理等领域。它是一个强大的企业级项目管理和任务协作平台,支持从需求收集、计划制定、执行跟踪到结果交付的全流程管理。
- 禅道
- 禅道是一款源自中国的开源项目管理软件,它专为软件研发团队设计,覆盖了从产品规划、需求分析到开发测试、缺陷追踪、项目发布等整个软件生命周期的管理。禅道融合了敏捷开发思想,支持 Scrum 和看板等多种项目管理模式,并且集成了产品管理、项目管理、质量管理、文档管理、组织管理和事务管理等多个功能模块。
三、项目流程
项目启动与需求分析
- 确定项目目标和范围,收集并理解业务需求。
- 与客户、利益相关者沟通交流,明确功能需求和非功能需求(性能、安全性、可扩展性等)。
- 编写需求规格说明书或用户故事。
系统设计与架构设计
- 根据需求分析结果设计系统的总体架构和技术选型。
- 设计数据库模型,定义数据表结构和关系。
- 划分模块和子系统,设计接口和类图。
详细设计
- 对各个模块进行详细设计,包括类的职责划分、算法设计、界面设计等。
- 定义API接口和交互逻辑。
编码阶段
- 使用集成开发环境(IDE)如Eclipse、IntelliJ IDEA等编写Java代码。
- 遵循编程规范和团队约定,进行单元测试。
- 持续集成:使用构建工具(如Maven或Gradle)进行自动化构建,并配置持续集成服务器(如Jenkins)以实现自动编译、测试和部署。
测试阶段
- 单元测试:针对每个独立模块编写测试用例。
- 集成测试:将多个模块组合起来测试其协同工作情况。
- 系统测试:验证整个系统是否满足功能需求,以及在各种场景下的表现。
- 性能测试:检查系统性能指标是否达到预期标准。
- 用户验收测试(UAT):由最终用户或代表进行测试,确保软件符合实际业务需求。
部署与上线
- 配置生产环境,部署应用到服务器。
- 进行预发布测试,确保应用在生产环境中的稳定性和兼容性。
- 制定上线计划,执行灰度发布或者全量发布。
维护与迭代
- 在应用上线后进行监控,收集性能数据和错误日志。
- 根据用户反馈和新需求进行版本迭代更新。
- 定期维护和优化代码,修复潜在问题和已知缺陷。
文档编写
- 编写用户手册、操作指南和技术文档。
- 更新项目相关的所有技术及管理文档,以便后续维护和交接。
四、其它
公众号: java程序猿技术