和框架初学者分享我的框架学习经验
2009-12-29 13:15
197 查看
一、以类库为核心,先不要和配置文件纠缠。
初学者往往一开始就会被一大堆的配置文件/元数据搞晕。其实配置文件始终只是辅助作用,框架里的配置文件主要作用无非是两种:1,为对象的各个属性赋值;2,直接控制对象的生成(工厂模式)。因此抛开配置文件,先搞懂各个类(对象)间的关系,从类/对象的角度理清框架的流程。开始学习时只要知道对象的哪些属性是取决于配置文件即可,不必详细知道如何配置。把类库理顺后再去看如何配置就很简单了。
二、“面向接口的学习”
“面向接口编程”现在已是各种框架中始终贯穿的准则。相应地,学习也适合从接口入手。因此第一点所说的以类为核心确切地说是以接口为核心。搞懂各个接口间的关系,整个框架的原理也大概了解了。然后再去看具体的类就很容易理解了。比如我很喜欢的《 XXXX In Action 》系列,往往先用大篇幅讲解一个接口,然后再很简略地讲解下这个接口的常用实现类。因为了解了接口后,它的实现类其实就没有多少值得讲的了。
三、别急于实践
编写"Hello World"已成了多数编程书籍第一节的内容。很多框架教材也采取了这种写法,一开始就教人如何用框架搭一个类似HelloWorld的简单应用。我认为这种方法不可取,因为学框架和学一般的程序设计语言不同,用框架来做,即使是简单的helloWorld也要涉及到一大堆的配置文件、环境搭建之类的东西,把初学者搞得云里雾里,把精力分散到这些繁琐的细枝末节里去了。因此还是先不要急于实践,先按本文一二条说的弄懂基本原理后再去写HelloWord,一切就很清晰简单了。
四、功夫在框架外
框架在某种程度上来说是设计模式的具体实现和灵活运用。初学者,尤其是之前没有学过设计模式的,若能在学框架前先把下列关键词至少作个大概的了解,则对框架学习是很有帮助的。它们可以让你更容易地理解框架的实现原理和设计者的意图:
解耦、面向接口、反射、工厂、依赖注入/控制反转、代理、对象池、线程安全、策略模式、观察者模式。
初学者往往一开始就会被一大堆的配置文件/元数据搞晕。其实配置文件始终只是辅助作用,框架里的配置文件主要作用无非是两种:1,为对象的各个属性赋值;2,直接控制对象的生成(工厂模式)。因此抛开配置文件,先搞懂各个类(对象)间的关系,从类/对象的角度理清框架的流程。开始学习时只要知道对象的哪些属性是取决于配置文件即可,不必详细知道如何配置。把类库理顺后再去看如何配置就很简单了。
二、“面向接口的学习”
“面向接口编程”现在已是各种框架中始终贯穿的准则。相应地,学习也适合从接口入手。因此第一点所说的以类为核心确切地说是以接口为核心。搞懂各个接口间的关系,整个框架的原理也大概了解了。然后再去看具体的类就很容易理解了。比如我很喜欢的《 XXXX In Action 》系列,往往先用大篇幅讲解一个接口,然后再很简略地讲解下这个接口的常用实现类。因为了解了接口后,它的实现类其实就没有多少值得讲的了。
三、别急于实践
编写"Hello World"已成了多数编程书籍第一节的内容。很多框架教材也采取了这种写法,一开始就教人如何用框架搭一个类似HelloWorld的简单应用。我认为这种方法不可取,因为学框架和学一般的程序设计语言不同,用框架来做,即使是简单的helloWorld也要涉及到一大堆的配置文件、环境搭建之类的东西,把初学者搞得云里雾里,把精力分散到这些繁琐的细枝末节里去了。因此还是先不要急于实践,先按本文一二条说的弄懂基本原理后再去写HelloWord,一切就很清晰简单了。
四、功夫在框架外
框架在某种程度上来说是设计模式的具体实现和灵活运用。初学者,尤其是之前没有学过设计模式的,若能在学框架前先把下列关键词至少作个大概的了解,则对框架学习是很有帮助的。它们可以让你更容易地理解框架的实现原理和设计者的意图:
解耦、面向接口、反射、工厂、依赖注入/控制反转、代理、对象池、线程安全、策略模式、观察者模式。
相关文章推荐
- 良心长文:深度学习框架的选择和有关tensorflow编程经验的分享
- EJB学习经验分享:EJB初学者常有的十一个疑惑解答
- 和框架初学者分享我的学框架的经验
- 经验分享(十一)给学习计算机的同僚们(初学者,进阶者,包括Linux爱好者)的学习建议
- 经验分享(十一)给学习计算机的同僚们(初学者,进阶者,包括Linux爱好者)的学习建议
- WINCE学习经验总结二(希望给初学者一些建议,尽快入门)
- 个人学习和项目经验积累分享
- 【转载】分享Swing学习的一些经验
- 分享一下学习Oracle的经验
- WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF? 推荐
- dubbo学习过程、使用经验分享及实现原理简单介绍
- 扎克伯格分享:“时间管理和高效学习”的经验
- 分享记录我的Linux系统入门学习经验
- 一个老兵的linux学习和面试经验分享
- GRE双满分经验分享 我的5个月学习计划
- JSF+Seam框架十三条学习心得分享
- 一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)
- 主流机器学习模型模板代码+经验分享[xgb, lgb, Keras, LR]
- Dubbo学习过程、使用经验分享及实现原理简单介绍
- 贾扬清分享_深度学习框架caffe