引用
第一天 测试驱动
一个iteration , 一定要产生 PSP, 客户可提交产品, 增量
腾讯统计 :人均150行/日代码
一个小时 敲代码 , 7个小时无效时间
随身听的例子, 有提升空间
Design Coding
Coding testing
最佳设计的点, 比如需求方和开发自己相像的出入会有重心不一样。
Time , Scope , quality 三方面的均衡,甲方会考虑scope 功能比较多, 而质量会被忽略。
Feedback Cycle : 延迟反馈 很纠结 浪费时间了
Code Test Login
Compile Deploy restart
所以agail的卖点在于把浪费的时间都节省下来回馈公司,有效工作时间。
敏捷项目管理来进行交付
测试驱动
1. 想功能的输入输出
2. 测试类里,包含各种情况的测试。
If 重复 用while
参数变化用变量
累加变化,用for
测试用例
1. 先写失败测试 : 把需求确定, 确定api设计(自己用了),自然提高了可测性,低耦合的代码。
2. 让测试通过 : 无节操,不可能产生过度设计,不会有无用的代码,简单代码,代码覆盖率,任何时候只有一个失败,焦点集中,知道当下的问题,会有进展。
3. 重构
解决设计不足,重构之前一定是绿的。
设定目标达成提升质量 再设定目标再达成再提升质量 再设定目标。。。
4点认知:
1. Instant feedback 实时反馈 : feedback orient design
2. Refactorable medium 演进式设计: 把不能重构的技术部分如sql,变成能重构的,比如自动生成脚本, generate non-refactorable medium from refactorable medium, executable Model (code as design), clean code(代替详细设计).
3. Revertible Medium。 Dockerfile , jenkinsfile , git(本地回滚), ratcheting effect(机轮效应) 项目进度 只进不退 。
4. Dependancy as Code . maven docker embedded jetty/tomcat , h2 db(内存数据库)
User stories
网球场地预约系统
Moment interval
Ppt
Party place thing
Movenment interval 与 ppt有交互关系
四色建模法:
# User Stories
## As a tennis player I want to make reservation online, so that I can start playing when I arrive.
## As a tennis player I want to find the nearest court around my area, so that I can save time.
## As a premium member I can set up recurring reservations for practices so that I don't need to set up repeatedly.
## As a tennis player I want to send the reservation information to my partner, so that he/she can arrive on time.
## As a court manager, I want to publish the available hours and fee rates of my courts, so that my customers can make reservation.
## As a court manager, I want to collect reservation fee.
# Environment & Tools
## JDK 8
## IntelliJ
## git
## Maven
#DoD
End to end testing
Pass all junit test
Check in
#Team Agreement
TDD
Pair
Switch Pair
# Sprint 0
Fix failed test
Story break down
Scanner Stdin Stdout
Walking skeleton
#Sprint 1
根据一个story 来做一个case