- Java80
- 计算机基础67
- 数据库46
- 分布式28
- 技术文章精选集26
- AI 应用开发25
- 系统设计19
- AI 编程实战16
- 高性能15
- AI14
- 框架13
- 开发工具11
- 走近作者10
- 知识星球10
- 面试准备10
- 高可用9
- 开源项目8
- 计算机书籍7
- 学习路线6
- 走近项目5
- AI 编程技巧5
- AI 编程原理5
- 代码质量4
- AI 编程1
- 程序人生1
- Java面试指北1
Docker 是后端开发非常常见的容器化工具,常用于本地快速启动 MySQL、Redis、Kafka 等依赖服务,也常用于测试环境和部署交付。学习 Docker 时,要把核心概念和命令实践结合起来。
适合谁看
- 想快速理解 Docker 容器化基础的后端开发者。
- 需要用 Docker 搭建本地开发环境、测试环境或依赖服务的同学。
- 准备面试,需要讲清容器、镜像、数据卷、网络和容器与虚拟机区别的读者。
- 已经会复制 Docker 命令,但不清楚镜像构建、容器生命周期和数据持久化的工程师。
Docker 介绍
开始之前,先简单回顾一下 Docker。更完整的概念介绍可以看前一篇文章:Docker 核心概念总结。
什么是 Docker?
可以从下面几个角度理解 Docker:
- Docker 是常见的软件容器平台,基于 Go 语言开发实现。
- Docker 可以把应用和运行依赖打包到镜像中,减少开发、测试、部署环境不一致带来的问题。
- 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
- Docker 可以对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其他隔离进程,因此也称其为容器。
本文主要讲 Docker 的核心概念、运行模型和常见使用场景,不展开安装过程。安装、命令练习和本地服务启动可以看后面的 Docker 实战。
容器介绍
Docker 是常见的软件容器平台。想要搞懂 Docker,先要理解容器解决的到底是什么问题。
什么是容器?
先来看看容器较为官方的解释
一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。
Git 是开发者必须掌握的基础工具。学习 Git 时,不建议只背命令,更要理解版本控制模型、提交历史、分支协作和冲突处理,这样在团队协作和开源贡献中才不容易慌。
适合谁看
- 刚开始接触 Git 和 GitHub 的后端初学者。
- 经常使用 Git 命令,但对工作区、暂存区、分支和远程仓库理解不清的开发者。
- 准备面试,需要把 Git 常见问题讲清楚的同学。
- 想提升 GitHub 个人主页、项目展示和开源协作效率的读者。
学习重点
- Git 是分布式版本控制系统,核心是记录代码快照和提交历史。
- 工作区、暂存区、本地仓库、远程仓库分别对应不同阶段的代码状态。
- 分支让多人并行开发成为可能,合并和冲突处理是团队协作高频场景。
- Git 命令要结合真实流程理解,比如 clone、add、commit、branch、merge、pull、push。
- GitHub 可以用于代码托管、项目展示、开源协作、代码搜索、Actions 自动化和个人影响力建设。
版本控制
什么是版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 除了项目源代码,你可以对任何类型的文件进行版本控制。
为什么要版本控制
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
本地版本控制系统
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。
GitHub 不只是代码托管平台。对开发者来说,它同时承担了项目展示、代码阅读、开源协作、自动化构建和个人主页的作用。这篇文章整理一些比较实用的 GitHub 使用技巧。
一键生成 GitHub 简历与 GitHub 年报
通过 https://resume.github.io/ 这个网站你可以一键生成一个在线的 GitHub 简历。
不过,简历里是否放 GitHub 链接要看账号内容质量。如果账号里有完整项目、持续维护记录、清晰 README 和比较规范的提交历史,GitHub 链接会加分;如果只有空仓库或者临时练习代码,就没必要强行放。生成后的效果如下图所示。
Maven 是 Java 后端项目中最常见的构建和依赖管理工具。学习 Maven 时,不要只会复制 pom.xml,还要理解坐标、仓库、依赖传递、生命周期、插件和多模块管理这些基础概念。
适合谁看
- 正在学习 Java 项目构建和依赖管理的同学。
- 使用 Maven 写项目,但遇到依赖冲突、版本不统一、多模块管理、CI 构建时容易卡住的开发者。
- 准备面试,需要讲清 Maven 核心概念和最佳实践的读者。
- 需要维护 Spring Boot、微服务或多模块 Java 项目的工程师。
本文由 JavaGuide 翻译并完善,原文地址:https://medium.com/@AlexanderObregon/maven-best-practices-tips-and-tricks-for-java-developers-438eca03f72b 。
这部分内容主要根据 Maven 官方文档整理,做了对应的删减,主要保留比较重要的部分,不涉及实战,主要是一些重要概念的介绍。
Maven 介绍
Maven 官方文档是这样介绍的 Maven 的:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model,POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。
