总结

今天早上主要学习了Maven和Idea的Docker插件,遇到了一些坑,对于Idea的Docker插件,不能下载,然后我去访问Idea插件官网,发现被墙了,只要开个VPN就好。下午主要是张总经理给我们介绍了部门的项目,主要是猪齿鱼项目,对于这个项目主要是继承K8s容器,整合DevOps的平台。然后是软件工程开发的方法,介绍了敏捷编程和极限编程,主要讲了敏捷开发原则,尽早持续交付项目和沟通和合作等,敏捷编程的角色,Product Owner,Scrum Master,Scrum Team三大角色,敏捷编程的过程,冲刺规划会,Scrum站立会等内容,还推荐了Scrum敏捷软件开发,凤凰项目,看板实践,DevOps hand book等几本书籍。

Maven与SpingBootDocker化

Maven

  1. 统一Java工程目录结构
  2. 统一管理har包
  3. 保证本地与线上环境一致

Maven Setting文件

localRepository #本地仓库的路径
servers #配置服务端(私库账号密码)
mirrors #下载镜像列表
profiles #覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile

Maven pom.xml文件

Idea Docker

mysql volumes配置

/var/lib/mysql:数据

/etc/mysql/conf.d:mysql配置文件

kafka

docker integration插件下载

Idea Docker插件无法下载

用vpn,Idea中的http proxy设置代理端口,成功下载

idea docker配置

idea Docker 部署image

invalid volume specification: 'C:\\Users\\DYQ\\tranning\\vagrant\\data\\mysql\\db:/var/lib/mysql:rw'"

报诸如此类的错误

把映射改成

/D/docker/data/mysql/db(不要用D:/之类的)

docker-toolbox-windows-invalid-volume-specification

Idea Docker使用

如果已经配置过Docker了,使用教程

  1. 新建项目
  2. view->tools windows->docker->使用

平台及开发方式

平台

技术平台要求:

DevOps:形成共同责任,激励,工具,过程,文化。

持续交付,微服务,容器(开发运维一体化)

容器方面k8s已经很成熟了,软件焦点转到应用级,例如Service Mesh(Istio)。

敏捷开发

传统瀑布式:需求不清晰;需求在变化;项目时间长;没有时间测试

敏捷项目,结构化项目,混乱项目

martin fowler

敏捷宣言:

  1. 个体和互动 高于 流程和工具
  2. 工作的软件 高于 详尽的文档
  3. 客户合作 高于 合同谈判
  4. 响应变化 高于 遵循计划

尽管右项右价值,但更重视左边价值

敏捷原则:

尽早持续交付项目

沟通和合作

Scrum:自组织和集体承诺

三要素:角色(Product Owner,Scrum Master,Scrum Team),形式,产出

产品所有者:

  1. 定义特性
  2. 特性优先级排序
  3. 挑选发布日期
  4. 提供反馈
  5. 管理利益相关者
  6. 接受和拒绝产出结果

开发团队:

  1. 定义任务
  2. 预估工作量
  3. 开发产品
  4. 确保质量
  5. 演化流程

Scrum Master:

  1. 服务型领导
  2. 团队保护者
  3. 障碍解决者
  4. Scrum指导

产品Backlog,细项是用户故事(作为一个[用户],想要什么[功能],有什么[好处])

sprint(冲刺)backlog

冲刺规划会1

  1. 面对面沟通
  2. 从用户观点出发
  3. 优先级排列,选择特性
  4. 讨论验收标准

0.5-1小时/冲刺/周

冲刺规划会2

  1. 估算冲刺backlog条目
  2. 使用以往速率

0.5-1小时/冲刺/周

Scrum站立会(每天举行15分钟以内)

  1. 昨天做了什么?
  2. 今天准备做什么?
  3. 有无障碍?

注意事项:

  1. 只有团队成员讲话
  2. 不是向Scrum Master汇报
  3. 不解决问题
  4. 站着开会

sprint burndown(冲刺燃尽图)

冲刺评审会

  1. 不需要ppt
  2. 可以邀请感兴趣的人

1-2小时/冲刺/周

冲刺回顾会

  1. 开始做什么
  2. 停止做什么
  3. 继续做什么

敏捷缺点

  1. 不断修改代码
  2. 不断引入新bug
  3. 代码库脆弱
  4. 软件不稳定

极限编程(XP)

1周一迭代

结对编程

持续集成,测试

测试驱动开发(TDD)

代码异味

  1. 拒绝继承
  2. 过度使用字面值
  3. 超长超短标志符

技术债

代码重构

持续集成(CI):尽早发现合并错误,(每天提交2-3代码)

持续部署(CD):自动化部署

DevOps:开发运维一体化

Scrum关注项目管理,极限编程关注软件开发

  1. Scrum敏捷软件开发
  2. 凤凰项目
  3. 看板实践
  4. 精益IT(Lean IT)
05-26 01:05