面向对象编程
面向对象编程(OOP) 包括:
- 抽象
- 封装
- 多态性
- 继承
- 预定义类型
- 用户定义的类型
- 各类操作
设计原则
对 Java 开发人员来说重要的关键设计原则是:
- 单一职责原则 (SRP)
- 开闭原则 (OCP)
- 里氏替换原则 (LSP)
- 接口隔离原则(ISP)
- 依赖倒置原则(DIP)
- DRY原则(Don’t Repeat Yourself)
- KISS原则(Keep it simple, Stupid!)
- YAGNI原则(You ain’t gonna need it)
架构模式
开发人员需要学习的架构模式是:
- 分层模式
- 客户端-服务器模式
- 主从模式
- 管道过滤器模式
- 经纪人模式
- 点对点模式
- 事件总线模式
- 模型-视图-控制器模式
- 黑板模式
- 解释器模式
微服务
Java 开发人员要掌握微服务相关技能:
开发人员需要了解 Docker 容器。Docker 用于在不同环境中创建和编译微服务应用程序。并需要了解作为微服务基础的 DURS 原则。
DURS 原则是:
- 领域驱动设计(Domain-Driven Design)
- 故障隔离(Failure Isolation)
- 持续交付(Continuous Delivery)
- 权力下放(Decentralization)
- DevOps
微服务架构领域是开发人员学习的重要领域。关键领域包括:
- 验证
- 授权
- 数据安全
- 网络安全
- 部署
开发运营工具
Java 开发人员需要具备持续集成和持续部署的 DevOps 技能。开发人员需要了解编程最佳实践、创建基础架构环境、构建脚本和指南。
CI/CD:
开发人员需要了解以下工具:
- Jenkins
- Ansible
- Nagios
- Docker
- Git
- Gradle
- Raygun
- Puppet
- Phantom
CI/CD——特性:
开发人员需要了解 CI/CD 工具的以下特性:
- 构建自动化
- 集成测试
- 源头控制管理
- 版本管理
- 部署自动化
- 报告
DevOps 流行的软件工具:
下表显示了开发人员需要了解的关键 DevOps 工具。
工艺步骤 | 工具 |
持续发展 | Git、SVN、Mercurial、CVS、Jira |
持续集成 | Jenkins, Bamboo, Hudson |
持续交付 | Nexus、Archiva、Tomcat |
持续部署 | Puppet, Chef, Docker |
持续监控 | Splunk、ELK Stack、Nagios |
持续测试 | Selenium, Katalon Studio |
DevOps 原则
开发人员必须了解的 DevOps 关键原则是:
- 持续部署
- 基础设施即代码
- 自动化
- 监控
- 安全
- 以客户为中心
- 端到端的责任
- 持续提升
- 自动化
- 注重团队效能
- 强大的监控
- 注重测试覆盖率
DevOps 自动化工具
- Nagios
- OpenNMS
- Splunk
- Icinga 2
- Wireshark
DevOps 工具的功能
- 仪表板
- 资料库
- 流水线
- 测试计划
- 组件
- DevOps 生命周期阶段:开发、测试、集成、部署、监控
- 迭代发布
- 增量发布
- 团队协作
- 测试自动化
JUnit 和 Mockito
Java 开发人员需要了解 JUnit 和 Mockito 等单元测试框架。
JUnit
开发人员需要为代码创建单元测试。JUnit 用于 Java 代码单元测试。Xunit 是 JUnit 的父框架。通过执行单元测试套件来确保项目中的单元测试覆盖率。单元测试是手动执行的,并使用自动化方法。
JUnit 基于“先测试后编码”的原则。这与“测试一点,编码一点”的原则相同。JUnit 有助于提高开发人员的质量和效率。这个开源软件框架具有与以下相关的功能:
- 注释
- 断言
- 测试运行器
- 自动测试套件执行
- 测试套件
- 测试进度
- 固定装置
单元测试有一个测试用例,用于检查类中程序或方法的功能。给定输入和结果,编写一个测试用例来检查输入和结果。输入的先决条件检查完成后,继续完成结果的后置条件检查。对于每个测试用例,都可以进行单一的正向和反向测试。这些测试可以与 IDE 和工具(如 Eclipse、Ant 和 Maven)集成。
Mockito
Mockito 是一个基于模拟的单元测试框架。模拟基于隔离程序并对其进行测试。模拟接口是在模拟期间创建的。模拟接口具有用于单元测试的虚拟方法。可以为服务创建模拟对象,并返回服务方法的模拟数据。Mockito 是基于创建模拟对象和执行模拟方法的反射原则。
Mockito 具有以下特点:
- 支持输出值
- 异常处理
- 支持方法调用顺序
- 丰富的注解
Spring Boot
每个 Java 开发人员都需要了解Spring Boot来开发 REST 服务。Spring框架内部采用了依赖注入原理,基于模型视图控制器模式。
Spring Boot 基于 Spring 框架。适用于使用敏捷方法开发 Web 应用程序。Spring Boot 具有以下特点:
- 易于项目开发
- 入门项目向导
- 初始化器
- 命令行界面
- 丰富的注解
- 依赖管理
- 丰富的Starter
- Actuator
- JPA
- JDBC
- 事务管理
- 对象关系管理
可以使用 STS IDE 和 Spring Initializr 来使用 Spring Boot 应用程序。
Spring Boot框架在Spring中有多个相关的框架。这些框架如下所列:
- Spring Data
- Spring Batch
- Spring Security
- Spring Social
- Spring Integration
Spring Boot 支持将 Web 应用程序部署为 jar 文件。Web 应用程序可以部署在 Tomcat、Jetty 和嵌入式 HTTP 服务器上。Spring Boot 为 Maven 构建提供了起始 POM。它还能提供指标、健康检查和外部化配置相关的功能。框架中提供了 CLI 工具,用于创建和执行 Web 应用程序。Spring Boot 框架有多个插件。有助于降低项目成本、开发时间,并提高效率和质量。
学习 API
Java 开发人员需要学习以下 API:
- JSON 处理 API
- XML 处理 API
- 日志 API
- 集合 API
- 日期和时间 API
开发人员需要了解 JSON API,例如 FastJson、Jackson、Gson、JSON-io 和 Genson。Java 标准库有一个基于 JSR 规范的 JSON-p 包。用于 XML 处理的 Java 库是 JAXB 和 Stax。Java Logging API 也是一种流行的日志 API。
集合 API 如下图所示:
设计模式
Java 开发人员需要具备设计模式的知识。需要学习的关键设计模式是:
- 创建模式
- 结构模式
- 行为模式
创建设计模式是:
- 工厂方法模式
- 抽象工厂模式
- Builder模式
- 原型模式
- 单例模式
结构设计模式如下:
- 适配器模式
- 桥接模式
- 组合模式
- 外观模式
- 享元模式
- 代理模式
行为模式是:
- 责任链模式
- 命令模式
- 迭代器模式
- 中介模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板方法
- 访问者模式
JVM 内部结构
要成为一名 Java 开发人员,了解 JVM 内部知识非常重要,这些知识包括:
- JIT
- JVM 选项
- 垃圾收集
- 性能瓶颈
- CPU 和 内存连接
- 竞争条件
- 垃圾收集器
- 并发处理
- 执行模型
你可以了解 Java 字节码的概念及如何跨平台的:
关注 Java 代码编译器错误和运行时错误。
IDE Eclipse 或 IntelliJ
对于开发人员来说,了解 Eclipse 和 IntelliJ 等 IDE 非常重要。IntelliJ 和 Eclipse 是集成开发环境工具。IntelliJ Idea 拥有一个集成的开发环境,具有不同的功能,可以更快、更高效地编码。Eclipse 有一个工作区和可扩展的插件框架来定制开发环境。
IDE 优势
1、Idea
IntelliJ Idea 是一种流行的 IDE,具有智能上下文功能。它有一个项目特定的语法树,并使用索引来分析项目。基于当前开发者的上下文,它可以提供搜索和自动完成功能。对于初学者和小型项目,Idea 是一个很好的 IDE。它在一个界面中支持不同的版本控制系统。
2、Eclipse
Eclipse 具有良好的外观和风格。这是一个设计良好的 IDE,具有良好的字体和图标。它具有项目视角,支持不同的项目结构。它有一个可以管理不同项目的工作区。Eclipse 具有在一个窗口中管理多个项目的特性。Eclipse 具有用于添加和创建插件的可扩展框架。它还支持超过 1276 个插件。对于大型和复杂的项目,Eclipse 非常适合。
IDE 缺点
1、Idea
IntelliJ Idea 使用的内存比普通 IDE 多。构建项目和使用自动构建需要更长的时间,因为它需要更多的内存。社区版是免费的,企业版需要付费。它的 UI 外观和感觉很差,而且响应速度较慢。The Idea 在市场上只有 700 个插件。
2、Eclipse
Eclipse 尽管有多个插件,但在代码自动补全方面的功能很差。它没有与从本地代码合并到源代码管理相关的良好功能。Eclipse 没有与剪贴板比较的功能。
React 或 Angular 或Vue
要想成为全栈 Java 开发人员,了解 UI 框架非常重要。国外流行的 UI 框架是 React 和 Angular,国内还有一个 Vue。
React
React 框架是由 Facebook 创建的。它是一个用于大量任务的流行框架:从创建交互式应用程序 UI 到通过 SMTP 比 Ja?va 发送电子邮件代码少得多。它还有助于开发可重用的表示层组件。开发人员可以使用 React 创建 Web 和移动应用程序 UI。它是一个流行的框架,有助于开发可重用的表示层组件。基于 Node.js,React Native 可以创建原生应用程序。通过使用单向数据流,React 中的数据绑定很容易。React 支持虚拟 DOM、客户端和服务器端组件和数据模式、JavaScript 语法扩展 (JSX)、内联模板、单向数据流和 Flux-React。
Angular
Angular 框架可用于开发 Web 应用程序。它是由 Google Angular 团队创建的。AngularJS 是 Angular 的第一个版本。其他版本使用 Angular 作为前缀。
Angular 支持多种平台。它可用于创建桌面、原生和渐进式 Web 应用程序。它提供更高的性能,并支持下列编程语言:
- Node.js
- .Net
- PHP
- Struts
- Spring
Vue
Vue(发音为 /vju?/,类似于 view)是一种流行的开源 JavaScript 框架,用于构建单页应用程序(SPA)和可重用的用户界面组件。Vue 是由华裔前 Google 工程师尤雨溪(Evan You)于2014年创建的,并在全球范围内得到了广泛的应用和支持。
Vue 的主要特点包括:
- 响应式数据绑定:Vue 提供了响应式数据绑定功能,可以自动追踪数据变化并实时更新视图。
- 组件化开发:Vue 支持组件化开发,可以将 UI 元素封装成可重用的组件,简化代码结构,提高开发效率。
- 轻量级框架:Vue 的体积很小,加载速度快,性能优良,适用于构建中小型项目和快速原型开发。
- 易学易用:Vue 提供了简单、易用的 API 和清晰的文档,使开发人员可以快速上手并使用它构建应用程序。
- 插件扩展性:Vue 提供了丰富的插件生态,可以轻松扩展其功能,包括路由、状态管理、表单验证等等。
- 支持服务端渲染:Vue 可以支持服务端渲染,可以在服务器端生成 HTML,加快页面加载速度和搜索引擎优化。
总结
开发人员还需要掌握一些软技能,包括沟通技巧、演讲技巧、团队协作能力以及优秀的职业素养。
本文暂时没有评论,来添加一个吧(●'◡'●)