20140309技术交流活动总结
本次是我一个人主讲的活动,来参加本次活动的朋友人数上没有冷场,
整个反馈会场气氛也很活跃,非常感谢大家的强力支持。
我今天主要讲了三个话题:
1,IOC原理,此话题是我结合了spring和guice的源代码实现思路来讲解;
只是借鉴了其思路,而没有在现场给大家分析其代码实现,
现在关于spring代码实现原理的书籍并不少见,相关博客文章也很多;
而我在活动里面一向都是很霸道地要用自己的理解语言来讲解,
极度不喜欢完全引用别人的,当然我的主题涉及的点很多都是从网上找的,
但是对其理解一定有自己的语言,自己的体会。
多年前曾经碰到过一位面试官,要求我详细讲解spring内核实现,
粒度控制到代码级别,我脑子不好用,不喜欢记忆那些类名,那么多框架代码都需要我记住,
我脑子不够用啊,我个人只是记忆我理解后的思路就够了。
此话题我分了五个点:
1,怎么生成对象
2,生成对象模式有哪些
3,怎么管理对象
4,各种注入方式的区别
5,怎么解决互相依赖
1-4 这四个点其实很难讲出新意来,当然也都是我自己的理解,
比如在生成对象方面我强调了除了那种反射机制外谈到了还可以用Objenesis;
第5点是我认为实现比较精妙的一个点,我自己通过琢磨想来了一个“悟空给唐僧找白马”的例子 来说明如何解决循环依赖的复杂思路,
此思路实现的代码(带行号)我打印在白纸上发给每位朋友,然后我现场给大家念行号来解释每句的作用。
2,拦截器:代理方式和Struts2中的拦截器
此两种实现方式的拦截器我做了对比,
关于Struts2中的拦截器实现我也给大家准备了代码,一起把代码通了一遍,
这个代码相对简单,比之前解决循环依赖的简单很多,能看懂java的基本都能看懂。
3,Springside4为代表的各种技术框架
此话题里面我没演示springside的用法,其官方网站上方写的都很详细,
而且对技术框架以及选型都做了很多的解释,所以我就没必要现场给大家来念一遍;
我把Springside4里面的涉及到的大部分框架都贴了出来,
从头到尾的给大家谈了对每个框架的理解,而且还会对每个同类中的框架做了简单的对比;
后来我很明确地讲了这些框架看起来很多,实际上学一遍api根本不是难事,
最好能理解其实现思想,并且分享了自己当初学习的方式。
有待提高的点:
1,注意语气停顿,不要连续地说,虽然本次语速有了控制,但是中间停顿太少。
2,给大家打印出来关于循环依赖的核心代码,两个类代码顺序放的不恰当,
这个我当时确实欠考虑了,只是感觉自己读的都顺眼了,没再进一步考虑。
3,思维跳跃太快,这个很值得检讨
结合的技术框架:spring + guice ,电子书:Manning – Dependency Injection.pdf
最后感谢大家的热情支持,该提高的地方一定努力!