徐昊 · TDD 项目实战 70 讲(pdf+mp3+md)

课程信息

课程来至于 徐昊 · TDD 项目实战 70 讲(pdf+mp3+md)

课程目录

01|TDD演示(1):任务分解法与整体工作流程.md
01|TDD演示(1):任务分解法与整体工作流程.mp3
01|TDD演示(1):任务分解法与整体工作流程.pdf
02|TDD演示(2):识别坏味道与代码重构.md
02|TDD演示(2):识别坏味道与代码重构.mp3
02|TDD演示(2):识别坏味道与代码重构.pdf
03|TDD演示(3):按测试策略重组测试.md
03|TDD演示(3):按测试策略重组测试.mp3
03|TDD演示(3):按测试策略重组测试.pdf
04|TDD演示(4):实现对于列表参数的支持.md
04|TDD演示(4):实现对于列表参数的支持.mp3
04|TDD演示(4):实现对于列表参数的支持.pdf
05|TDD中的测试(1):状态验证为什么是主要的使用方式?.md
05|TDD中的测试(1):状态验证为什么是主要的使用方式?.mp3
05|TDD中的测试(1):状态验证为什么是主要的使用方式?.pdf
06|TDD中的测试(2):行为验证为什么应该尽量避免使用?.md
06|TDD中的测试(2):行为验证为什么应该尽量避免使用?.mp3
06|TDD中的测试(2):行为验证为什么应该尽量避免使用?.pdf
07|TDD中的测试(3):集成测试还是单元测试?.md
07|TDD中的测试(3):集成测试还是单元测试?.mp3
07|TDD中的测试(3):集成测试还是单元测试?.pdf
08|TDD中的驱动(1):驱动的极限是什么?.md
08|TDD中的驱动(1):驱动的极限是什么?.mp3
08|TDD中的驱动(1):驱动的极限是什么?.pdf
09|TDD中的驱动(2):重构发挥了什么作用?.md
09|TDD中的驱动(2):重构发挥了什么作用?.mp3
09|TDD中的驱动(2):重构发挥了什么作用?.pdf
10|TDD中的驱动(3):何为经典学派?何为伦敦学派?.md
10|TDD中的驱动(3):何为经典学派?何为伦敦学派?.mp3
10|TDD中的驱动(3):何为经典学派?何为伦敦学派?.pdf
11|作为工程化方法的TDD:更低的成本与更高的效能.md
11|作为工程化方法的TDD:更低的成本与更高的效能.mp3
11|作为工程化方法的TDD:更低的成本与更高的效能.pdf
12|实战中的TDD:RESTfulAPI的开发框架.md
12|实战中的TDD:RESTfulAPI的开发框架.mp3
12|实战中的TDD:RESTfulAPI的开发框架.pdf
13|DIContainer(1):如何实现基本的DI容器结构?.md
13|DIContainer(1):如何实现基本的DI容器结构?.mp3
13|DIContainer(1):如何实现基本的DI容器结构?.pdf
14|DIContainer(2):如何通过SadPath为容器增加功能?.md
14|DIContainer(2):如何通过SadPath为容器增加功能?.mp3
14|DIContainer(2):如何通过SadPath为容器增加功能?.pdf
15|DIContainer(3):如何重构已有的代码?.md
15|DIContainer(3):如何重构已有的代码?.mp3
15|DIContainer(3):如何重构已有的代码?.pdf
16|DIContainer(4):如何实现对循环依赖的处理?.md
16|DIContainer(4):如何实现对循环依赖的处理?.mp3
16|DIContainer(4):如何实现对循环依赖的处理?.pdf
17|DIContainer(5):API接口该怎么设计?.md
17|DIContainer(5):API接口该怎么设计?.mp3
17|DIContainer(5):API接口该怎么设计?.pdf
18|DIContainer(6):如何实现循环依赖的检查?.md
18|DIContainer(6):如何实现循环依赖的检查?.mp3
18|DIContainer(6):如何实现循环依赖的检查?.pdf
19|DIContainer(7):如何实现FieldInjection部分的功能?.md
19|DIContainer(7):如何实现FieldInjection部分的功能?.mp3
19|DIContainer(7):如何实现FieldInjection部分的功能?.pdf
20|DIContainer(8):如何实现MethodInjection部分的功能?.md
20|DIContainer(8):如何实现MethodInjection部分的功能?.mp3
20|DIContainer(8):如何实现MethodInjection部分的功能?.pdf
21|DIContainer(9):怎样重构测试代码?.md
21|DIContainer(9):怎样重构测试代码?.mp3
21|DIContainer(9):怎样重构测试代码?.pdf
22|DIContainer(10):怎样将大粒度的测试重构为等效的小粒度测试代码?.md
22|DIContainer(10):怎样将大粒度的测试重构为等效的小粒度测试代码?.mp3
22|DIContainer(10):怎样将大粒度的测试重构为等效的小粒度测试代码?.pdf
23|DIContainer(11):如何对ContainerTest进行文档化改造?.md
23|DIContainer(11):如何对ContainerTest进行文档化改造?.mp3
23|DIContainer(11):如何对ContainerTest进行文档化改造?.pdf
24|DIContainer(12):如何增补功能?.md
24|DIContainer(12):如何增补功能?.mp3
24|DIContainer(12):如何增补功能?.pdf
25|DIContainer(13):任务上的遗漏该怎么处理?.md
25|DIContainer(13):任务上的遗漏该怎么处理?.mp3
25|DIContainer(13):任务上的遗漏该怎么处理?.pdf
26|DIContainer(14):如何重构对Type类型判断的逻辑?.md
26|DIContainer(14):如何重构对Type类型判断的逻辑?.mp3
26|DIContainer(14):如何重构对Type类型判断的逻辑?.pdf
27|DIContainer(15):如何封装类型判断逻辑?.md
27|DIContainer(15):如何封装类型判断逻辑?.mp3
27|DIContainer(15):如何封装类型判断逻辑?.pdf
28|DIContainer(16):行为封装会对测试产生什么影响?.md
28|DIContainer(16):行为封装会对测试产生什么影响?.mp3
28|DIContainer(16):行为封装会对测试产生什么影响?.pdf
29|DIContainer(17):如何重构ContextConfig内部的实现?.md
29|DIContainer(17):如何重构ContextConfig内部的实现?.mp3
29|DIContainer(17):如何重构ContextConfig内部的实现?.pdf
30|DIContainer(18):如何增补依赖缺失和循环依赖的测试?.md
30|DIContainer(18):如何增补依赖缺失和循环依赖的测试?.mp3
30|DIContainer(18):如何增补依赖缺失和循环依赖的测试?.pdf
31|DIContainer(19):Qualifier部分的功能要如何完成?.md
31|DIContainer(19):Qualifier部分的功能要如何完成?.mp3
31|DIContainer(19):Qualifier部分的功能要如何完成?.pdf
32|DIContainer(20):如何对代码和测试进行重构?.md
32|DIContainer(20):如何对代码和测试进行重构?.mp3
32|DIContainer(20):如何对代码和测试进行重构?.pdf
33|DIContainer(21):如何处理Singleton生命周期部分的功能?.md
33|DIContainer(21):如何处理Singleton生命周期部分的功能?.mp3
33|DIContainer(21):如何处理Singleton生命周期部分的功能?.pdf
34|DIContainer(22):如何对Bind的逻辑进行重构?.md
34|DIContainer(22):如何对Bind的逻辑进行重构?.mp3
34|DIContainer(22):如何对Bind的逻辑进行重构?.pdf
35|DIContainer(23):项目回顾与总结.md
35|DIContainer(23):项目回顾与总结.mp3
35|DIContainer(23):项目回顾与总结.pdf
36|实战中的TDD:RESTfulWebServices.md
36|实战中的TDD:RESTfulWebServices.mp3
36|实战中的TDD:RESTfulWebServices.pdf
37|RESTfulWebServices(1):明确架构愿景与架构组件间的交互.md
37|RESTfulWebServices(1):明确架构愿景与架构组件间的交互.mp3
37|RESTfulWebServices(1):明确架构愿景与架构组件间的交互.pdf
38|RESTfulWebServices(2):根据Spike的结果,要如何调整架构愿景?.md
38|RESTfulWebServices(2):根据Spike的结果,要如何调整架构愿景?.mp3
38|RESTfulWebServices(2):根据Spike的结果,要如何调整架构愿景?.pdf
39|RESTfulWebServices(3):明确架构愿景与调用栈顺序.md
39|RESTfulWebServices(3):明确架构愿景与调用栈顺序.mp3
39|RESTfulWebServices(3):明确架构愿景与调用栈顺序.pdf
40|RESTfulWebServices(4):在当前架构愿景下,要如何分解任务?.md
40|RESTfulWebServices(4):在当前架构愿景下,要如何分解任务?.mp3
40|RESTfulWebServices(4):在当前架构愿景下,要如何分解任务?.pdf
41|RESTfulWebServices(5):如何通过对数据测试的管理来凸显意图?.md
41|RESTfulWebServices(5):如何通过对数据测试的管理来凸显意图?.mp3
41|RESTfulWebServices(5):如何通过对数据测试的管理来凸显意图?.pdf
42|RESTfulWebServices(6):如何处理JAX-RS定义的异常类?.md
42|RESTfulWebServices(6):如何处理JAX-RS定义的异常类?.mp3
42|RESTfulWebServices(6):如何处理JAX-RS定义的异常类?.pdf
43|RESTfulWebServices(7):剩下两个SadPath场景该如何处理?.md
43|RESTfulWebServices(7):剩下两个SadPath场景该如何处理?.mp3
43|RESTfulWebServices(7):剩下两个SadPath场景该如何处理?.pdf
44|RESTfulWebServices(8):如何在现有代码的基础上构造测试?.md
44|RESTfulWebServices(8):如何在现有代码的基础上构造测试?.mp3
44|RESTfulWebServices(8):如何在现有代码的基础上构造测试?.pdf
45|RESTfulWebServices(9):通过伦敦学派得到的测试风格是什么样的?.md
45|RESTfulWebServices(9):通过伦敦学派得到的测试风格是什么样的?.mp3
45|RESTfulWebServices(9):通过伦敦学派得到的测试风格是什么样的?.pdf
46|RESTfulWebServices(10):伦敦学派与经典学派的测试节奏有何不同?.md
46|RESTfulWebServices(10):伦敦学派与经典学派的测试节奏有何不同?.mp3
46|RESTfulWebServices(10):伦敦学派与经典学派的测试节奏有何不同?.pdf
47|RESTfulWebServices(11):如何通过Spike来验证架构愿景?.md
47|RESTfulWebServices(11):如何通过Spike来验证架构愿景?.mp3
47|RESTfulWebServices(11):如何通过Spike来验证架构愿景?.pdf
48|RESTfulWebServices(12):如何调整接口和架构愿景?.md
48|RESTfulWebServices(12):如何调整接口和架构愿景?.mp3
48|RESTfulWebServices(12):如何调整接口和架构愿景?.pdf
49|RESTfulWebService(13):如何SpikeSub-ResourceLocator?.md
49|RESTfulWebService(13):如何SpikeSub-ResourceLocator?.mp3
49|RESTfulWebService(13):如何SpikeSub-ResourceLocator?.pdf
50|RESTfulWebServices(14):分解任务与Setup测试.md
50|RESTfulWebServices(14):分解任务与Setup测试.mp3
50|RESTfulWebServices(14):分解任务与Setup测试.pdf
51|RESTfulWebServices(15):为什么选择在第一个测试之后就开始重构?.md
51|RESTfulWebServices(15):为什么选择在第一个测试之后就开始重构?.mp3
51|RESTfulWebServices(15):为什么选择在第一个测试之后就开始重构?.pdf
52|RESTfulWebServices(16):重构手法之设计方法名的名称.md
52|RESTfulWebServices(16):重构手法之设计方法名的名称.mp3
52|RESTfulWebServices(16):重构手法之设计方法名的名称.pdf
53|RESTfulWebServices(17):如何进行Spike的架构愿景细化?.md
53|RESTfulWebServices(17):如何进行Spike的架构愿景细化?.mp3
53|RESTfulWebServices(17):如何进行Spike的架构愿景细化?.pdf
54|RESTfulWebServices(18):如何实现UriTemplate的主要功能?.md
54|RESTfulWebServices(18):如何实现UriTemplate的主要功能?.mp3
54|RESTfulWebServices(18):如何实现UriTemplate的主要功能?.pdf
55|RESTfulWebServices(19):如何更有效地构造测试数据?.md
55|RESTfulWebServices(19):如何更有效地构造测试数据?.mp3
55|RESTfulWebServices(19):如何更有效地构造测试数据?.pdf
56|RESTfulWebServices(20):为什么要通过测试的方法来驱动出代码结构?.md
56|RESTfulWebServices(20):为什么要通过测试的方法来驱动出代码结构?.mp3
56|RESTfulWebServices(20):为什么要通过测试的方法来驱动出代码结构?.pdf
57|RESTfulWebServices(21):按照三角法,该如何增加新的测试案例?.md
57|RESTfulWebServices(21):按照三角法,该如何增加新的测试案例?.mp3
57|RESTfulWebServices(21):按照三角法,该如何增加新的测试案例?.pdf
58|RESTfulWebServices(22):重构还是继续完成功能?.md
58|RESTfulWebServices(22):重构还是继续完成功能?.mp3
58|RESTfulWebServices(22):重构还是继续完成功能?.pdf
59|RESTfulWebServices(23):如何构造测试数据?.md
59|RESTfulWebServices(23):如何构造测试数据?.mp3
59|RESTfulWebServices(23):如何构造测试数据?.pdf
60|RESTfulWebServices(24):RootResource的测试要如何改造?.md
60|RESTfulWebServices(24):RootResource的测试要如何改造?.mp3
60|RESTfulWebServices(24):RootResource的测试要如何改造?.pdf
1023K61|RESTfulWebServices(25):如何重构DefaultResourceRouter中的Result结构?.md
61|RESTfulWebServices(25):如何重构DefaultResourceRouter中的Result结构?.mp3
61|RESTfulWebServices(25):如何重构DefaultResourceRouter中的Result结构?.pdf
62|RESTfulWebServices(26):如何继续划分ResourceLocator的任务?.md
62|RESTfulWebServices(26):如何继续划分ResourceLocator的任务?.mp3
62|RESTfulWebServices(26):如何继续划分ResourceLocator的任务?.pdf
63|RESTfulWebServices(27):如何通过重构修改接口?.md
63|RESTfulWebServices(27):如何通过重构修改接口?.mp3
63|RESTfulWebServices(27):如何通过重构修改接口?.pdf
64|RESTfulWebServices(28):如何重构Resource、SubResource等接口与实现?.md
64|RESTfulWebServices(28):如何重构Resource、SubResource等接口与实现?.mp3
64|RESTfulWebServices(28):如何重构Resource、SubResource等接口与实现?.pdf
65|RESTfulWebServices(29):后续任务将要如何划分与实现?.md
65|RESTfulWebServices(29):后续任务将要如何划分与实现?.mp3
65|RESTfulWebServices(29):后续任务将要如何划分与实现?.pdf
66|RESTfulWebServices(30):什么情况下应该使用行为验证?.md
66|RESTfulWebServices(30):什么情况下应该使用行为验证?.mp3
66|RESTfulWebServices(30):什么情况下应该使用行为验证?.pdf
67|RESTfulWebServices(31):对于option的测试策略应该是怎样的?.md
67|RESTfulWebServices(31):对于option的测试策略应该是怎样的?.mp3
67|RESTfulWebServices(31):对于option的测试策略应该是怎样的?.pdf
68|RESTfulWebServices(32):目前代码中的一个重大Bug是什么?.md
68|RESTfulWebServices(32):目前代码中的一个重大Bug是什么?.mp3
68|RESTfulWebServices(32):目前代码中的一个重大Bug是什么?.pdf
69|RESTfulWebServices(33):如何拆分对于injection部分的需求?.md
69|RESTfulWebServices(33):如何拆分对于injection部分的需求?.mp3
69|RESTfulWebServices(33):如何拆分对于injection部分的需求?.pdf
70|RESTfulWebServices(34):在当前代码结构下,要如何进行重构?.md
70|RESTfulWebServices(34):在当前代码结构下,要如何进行重构?.mp3
70|RESTfulWebServices(34):在当前代码结构下,要如何进行重构?.pdf
71|RESTfulWebServices(35):如何将测试改为动态测试?.md
71|RESTfulWebServices(35):如何将测试改为动态测试?.mp3
71|RESTfulWebServices(35):如何将测试改为动态测试?.pdf
72|RESTfulWebServices(36):在现有结构下,如何支持转换构造函数?.md
72|RESTfulWebServices(36):在现有结构下,如何支持转换构造函数?.mp3
72|RESTfulWebServices(36):在现有结构下,如何支持转换构造函数?.pdf
73|RESTfulWebServices(37):再增加converter方法时,步骤有什么不同?.md
73|RESTfulWebServices(37):再增加converter方法时,步骤有什么不同?.mp3
73|RESTfulWebServices(37):再增加converter方法时,步骤有什么不同?.pdf
74|RESTfulWebServices(38):如何提取方法调用部分?.md
74|RESTfulWebServices(38):如何提取方法调用部分?.mp3
74|RESTfulWebServices(38):如何提取方法调用部分?.pdf
75|RESTfulWebServices(39):如何使用继承的方式来复用测试?.md
75|RESTfulWebServices(39):如何使用继承的方式来复用测试?.mp3
75|RESTfulWebServices(39):如何使用继承的方式来复用测试?.pdf
76|RESTfulWebServices(40):如何开展有效的集成测试?.md
76|RESTfulWebServices(40):如何开展有效的集成测试?.mp3
76|RESTfulWebServices(40):如何开展有效的集成测试?.pdf
77|RESTfulWebServices(41):对于资源的访问,我们需要补充哪些相关功能?.md
77|RESTfulWebServices(41):对于资源的访问,我们需要补充哪些相关功能?.mp3
77|RESTfulWebServices(41):对于资源的访问,我们需要补充哪些相关功能?.pdf
78|RESTfulWebServices(42):项目总结与回顾.md
78|RESTfulWebServices(42):项目总结与回顾.mp3
78|RESTfulWebServices(42):项目总结与回顾.pdf
79|线段编辑器:架构思路与任务拆分.md
79|线段编辑器:架构思路与任务拆分.mp3
79|线段编辑器:架构思路与任务拆分.pdf
80|LineEditor(2):如何重构生成与更新锚点控制点的逻辑?.md
80|LineEditor(2):如何重构生成与更新锚点控制点的逻辑?.mp3
80|LineEditor(2):如何重构生成与更新锚点控制点的逻辑?.pdf
1023K81|结束语:掌握TDD的那天,我才成为了可靠高效的职业程序员.md
81|结束语:掌握TDD的那天,我才成为了可靠高效的职业程序员.mp3
81|结束语:掌握TDD的那天,我才成为了可靠高效的职业程序员.pdf
代码评点01|不同语言TDD的节奏有何不同?.md
代码评点01|不同语言TDD的节奏有何不同?.mp3
代码评点01|不同语言TDD的节奏有何不同?.pdf
代码评点02|什么是合适TDD的语言和IDE?.md
代码评点02|什么是合适TDD的语言和IDE?.mp3
代码评点02|什么是合适TDD的语言和IDE?.pdf
开篇词|为什么TDD是当前最具工程效能的研发流程?.md
开篇词|为什么TDD是当前最具工程效能的研发流程?.mp3
开篇词|为什么TDD是当前最具工程效能的研发流程?.pdf
课前必读01|20年前的“老古董”技术,为什么还值得开个课?.md
课前必读01|20年前的“老古董”技术,为什么还值得开个课?.mp3
课前必读01|20年前的“老古董”技术,为什么还值得开个课?.pdf
课前必读02|程序员究竟是搞技术的,还是做工程的?.md
课前必读02|程序员究竟是搞技术的,还是做工程的?.mp3
课前必读02|程序员究竟是搞技术的,还是做工程的?.pdf
期末测试|赴一场100分之约!.md
期末测试|赴一场100分之约!.mp3
期末测试|赴一场100分之约!.pdf
用户故事01|aoe:如果把《重构》这本书拍成电视剧.md
用户故事01|aoe:如果把《重构》这本书拍成电视剧.mp3
用户故事01|aoe:如果把《重构》这本书拍成电视剧.pdf

猜你喜欢

猜你在找

版权声明:
1,本站资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。
2,积分仅用来维持网站运营,性质为用户友情赞助,并非购买课程费用(1元=1积分);
2,如本贴侵犯到您的权益,请按要求提供相应版权证明材料联系:sochaocom@qq.com,侵权投诉
潮课网 » 徐昊 · TDD 项目实战 70 讲(pdf+mp3+md)

常见问题FAQ

购买后网盘链接失效怎么办?
如遇购买后链接失效可直接联系客服QQ/微信同号:157810288获取。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
潮课网
专业分享优质高质量资源教程sochao.com

发表评论

Hi, 如果你对课程有疑问,可以跟我联系哦!

联系作者