Skip to content

Latest commit

 

History

History
124 lines (95 loc) · 4.61 KB

ToolsAndCodeStyle.md

File metadata and controls

124 lines (95 loc) · 4.61 KB

www.yuanfudao.com

基本工具和代码规范


先修要求

  • 了解Java语言,有一定的编程经验
  • 对于Git/Maven/UNIX/Shell脚本有基本的使用经验

学习目标

  • 理解Git工作模型,能够处理复杂的分支管理
  • 理解Maven核心概念和规则,熟悉常用命令
  • 了解Shell脚本的基本规则,熟悉常用工具
  • 熟悉代码规范

阅读资料


讨论大纲


Git

  • Git如何存储数据
    • Snapshot vs Diff
    • 如何存储目录?
    • 如何保证数据完整性
  • 文件状态
    • 三个区域
      • 工作区 working directory
      • 暂存区 staging area
      • 仓库 repo
    • git reset的不同类型

Git Workflow

  • branch和commit的关系
  • 在gerrit上提交一个review,工作流程是怎么样的
    • 如果把分支A提到了分支B,会发生什么
  • rebase和merge的机制和适用场景
  • github的工作流程*
  • 版本管理工具的变迁*

Maven

  • 作为项目的对象模型
    • 坐标与版本
    • SNAPSHOT版本的意义
  • Maven的生命周期
    • 每个生命周期是一组有序的阶段
    • 解释mvn clean package的意义
  • Maven依赖管理
    • 仓库的概念
    • 依赖范围
    • 如何确定依赖的版本
  • Maven常用命令

Shell脚本

  • Shell基础
    • 变量
    • 运算符
    • 控制流
  • Shell脚本的适用场景
  • Shell脚本如何实现后台运行、重定向、并发等功能
  • 常用文本处理工具

UNIX 设计原则

  • Controlling complexity is the essence of computer programming.
  • Keep It Simple, Stupid!

代码规范

  • 代码规范的原则和意义
    • Programs must be written for people to read, and only incidentally for machines to execute. - SICP
    • 保持代码风格的一致性比起追求最好的风格更加重要
    • 重构是保持代码质量的重要手段

练习

  • 在lab中的http-request.log日志文件中
    • 计算各个url的调用超过10毫秒的次数,从大到小排序
    • 写一个shell脚本,找到调用请求次数最多的url,并展示这个url每小时的访问次数
  • 打开lab中spring-boot-sample项目
    • 用mvn spring-boot:run命令来运行项目
    • 查看依赖树,找到各个依赖的版本是定义在什么地方的
    • 用IntelliJ打开这个项目,利用重构功能把HelloService类重构成接口+实现两个类,并把HelloService.Constant子类重构到一个独立的文件。不要手动修改任何代码!

深入学习