总结
今天早上主要学习了Maven和Idea的Docker插件,遇到了一些坑,对于Idea的Docker插件,不能下载,然后我去访问Idea插件官网,发现被墙了,只要开个VPN就好。下午主要是张总经理给我们介绍了部门的项目,主要是猪齿鱼项目,对于这个项目主要是继承K8s容器,整合DevOps的平台。然后是软件工程开发的方法,介绍了敏捷编程和极限编程,主要讲了敏捷开发原则,尽早持续交付项目和沟通和合作等,敏捷编程的角色,Product Owner,Scrum Master,Scrum Team三大角色,敏捷编程的过程,冲刺规划会,Scrum站立会等内容,还推荐了Scrum敏捷软件开发,凤凰项目,看板实践,DevOps hand book等几本书籍。
Maven与SpingBootDocker化
Maven
- 统一Java工程目录结构
- 统一管理har包
- 保证本地与线上环境一致
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了,使用教程
- 新建项目
- view->tools windows->docker->使用
平台及开发方式
平台
技术平台要求:
DevOps:形成共同责任,激励,工具,过程,文化。
持续交付,微服务,容器(开发运维一体化)
容器方面k8s已经很成熟了,软件焦点转到应用级,例如Service Mesh(Istio)。
敏捷开发
传统瀑布式:需求不清晰;需求在变化;项目时间长;没有时间测试
敏捷项目,结构化项目,混乱项目
martin fowler
敏捷宣言:
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
尽管右项右价值,但更重视左边价值
敏捷原则:
尽早持续交付项目
沟通和合作
Scrum:自组织和集体承诺
三要素:角色(Product Owner,Scrum Master,Scrum Team),形式,产出
产品所有者:
- 定义特性
- 特性优先级排序
- 挑选发布日期
- 提供反馈
- 管理利益相关者
- 接受和拒绝产出结果
开发团队:
- 定义任务
- 预估工作量
- 开发产品
- 确保质量
- 演化流程
Scrum Master:
- 服务型领导
- 团队保护者
- 障碍解决者
- Scrum指导
产品Backlog,细项是用户故事(作为一个[用户],想要什么[功能],有什么[好处])
sprint(冲刺)backlog
冲刺规划会1
- 面对面沟通
- 从用户观点出发
- 优先级排列,选择特性
- 讨论验收标准
0.5-1小时/冲刺/周
冲刺规划会2
- 估算冲刺backlog条目
- 使用以往速率
0.5-1小时/冲刺/周
Scrum站立会(每天举行15分钟以内)
- 昨天做了什么?
- 今天准备做什么?
- 有无障碍?
注意事项:
- 只有团队成员讲话
- 不是向Scrum Master汇报
- 不解决问题
- 站着开会
sprint burndown(冲刺燃尽图)
冲刺评审会
- 不需要ppt
- 可以邀请感兴趣的人
1-2小时/冲刺/周
冲刺回顾会
- 开始做什么
- 停止做什么
- 继续做什么
敏捷缺点
- 不断修改代码
- 不断引入新bug
- 代码库脆弱
- 软件不稳定
极限编程(XP)
1周一迭代
结对编程
持续集成,测试
测试驱动开发(TDD)
代码异味
- 拒绝继承
- 过度使用字面值
- 超长超短标志符
技术债
代码重构
持续集成(CI):尽早发现合并错误,(每天提交2-3代码)
持续部署(CD):自动化部署
DevOps:开发运维一体化
Scrum关注项目管理,极限编程关注软件开发
- Scrum敏捷软件开发
- 凤凰项目
- 看板实践
- 精益IT(Lean IT)