27|DI Container(15):如何封装类型判断逻辑?

2022-05-10 徐昊
《徐昊 · TDD 项目实战 70 讲》
课程介绍


讲述:李辰洋

时长:大小1.12M


你好,我是徐昊。今天我们继续使用 TDD 的方式来实现注入依赖容器。

回顾代码与任务列表

到目前为止,我们的代码是这样的:
InjectProvider.java:package geektime.tdd.di;import jakarta.inject.Inject;import java.lang.reflect.*;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.function.BiFunction;import java.util.stream.Stream;import static java.util.Arrays.stream;import static java.util.stream.Stream.concat;class InjectionProvider<T> impleme...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • 人间四月天
    2022-05-11
    我都是看了2遍,然后再敲一遍,感受一下TDD威力,其实,还能学学重构,很多时候,不敢对烂代码下手。 重构除掉坏味道,重构到设计,重构到模式。
    
    1
  • 枫中的刀剑
    2022-05-28
    这节老师最后提到的一个细节就是对于API的优化,应该要让API的使用尽可能的友好。这点好像在平时中很少注意,但往往就在这些细微之处才是专业的体现。
    
    
  • aoe
    2022-05-20
    1. 经常使用 inLine、extra修改代码 2. 感觉 Idea 的重构快捷键功能比 Copilot 插件更强大,写代码更开心了 3. 在工作中使用 TDD 整体开发效率提高了很多(再也不用在一堆日志中找 Bug 了) 4. 当需求变更或者有更好的想法时可以放心的重构代码,实现了《代码整洁之道》中提到的“最好的重构时机就是:即时重构” 5. 发现了自己对如何写出易维护、易使用的代码几乎没有经验,正在通过 2 种方式努力:一、跟着老师敲代码,在大师的熏陶下成长;二、通过阅读书籍,了解一下基础知识 已读:《代码整洁之道》、《测试驱动开发的艺术》、《Java 测试驱动开发》 在读:《修改代码的艺术》、《领域特定语言》 待读:《重构与模式》、《重构:改善既有代码的设计》、《Google软件测试之道》、《分析模式》、《领域驱动设计精粹》、《实现领域驱动设计》 我收集的书单 https://wyyl1.com/post/3/1
    展开
    
    
  • tdd学徒
    2022-05-20
    照着写的时候,错把Ref构造函数里面的 this.container = container.getRawType(); 写成了 this.container = container; 一运行出错了,顿时有点慌,但是因为有测试,立马回退,然后加一行,跑一下测试,很快就发现问题了
    
    
  • Numbpad1
    2022-05-11
    1. 学会了很多重构的小技巧,IDE的快捷键,理解了为啥重构和测试是紧密相连的。 2. 读了很多关于测试的书,里面讲到测试的抗重构性,行为验证不如状态验证,抗重构性高,学到27讲算是体会到了。
    
    
  • 张铁林
    2022-05-11
    以前看的很多tdd都是kata一类的,就是逻辑比较短,还体会不到太多的TDD的好处,以及它的威力。通过老师这个项目的学习,学到了很多。本节代码已经跟着敲完了,有需要参考https://github.com/vfbiby/tdd-di-container/tree/master
    
    