技术⽅案本质上需要回答两个问题:
- 其⼀,为什么该⽅案可⾏?
- 其⼆,在已有资源限制下,为什么该⽅案是最优的?
为了回答第⼀个问题,我们需要在技术⽅案⾥补充架构图、接⼝设计和时间⼈⼒估算。
⽽要回答第⼆个问题,需要我们在关键点或争议处提供⼆到三种⽅案,并给出建议⽅案,这样才有说服⼒。
通常情况下,我们会花费很多的时间准备第⼀个问题,⽽忽略第⼆个问题。
其实,回答好第⼆个问题很重要,⼤型项⽬的设计已经复杂到没⼈能够⼀次就想到最佳⽅案,⼀个仅仅“可⾏”的⽅案,可能会给系统增加额外的复杂性。
说到 SpringBoot 自动装配的原理,可能有的人就要开始 @EnableAutoConfiguration 的长篇大论了,感觉在背源码一样,那么 自动装配
的含义你是真的了解吗?它是如何与 Spring 相结合的,又是如何被 Spring 管理的?接下来我将告诉你 自动装配
原理的真正打开方式。
日常开发中使用Map时经常会遇到很多复杂的处理场景,例如:多个键的Map、不仅可以根据键获取值也可以根据值获取键且不用遍历、重复键的Map、数字等范围内映射相同的值、内存中缓存对象等,Guava提供了以上场景的解决方案。