框架是一种复用程度很高的应用体系结构实现,掌握框架的使用,一方面可以快速构建应用程序,适应现代快速复杂软件开发的需求, 另一方面也可作为学习某种技术的入口点。 那么, 能够快速学习和掌握框架就成为软件开发人员的必备技能之一。 那么, 如何更快更好地掌握一门开发框架呢? 能否建立一套行之有效的学习模式呢 ?
开发框架是对应用中不可变部分的抽象, 首先,就要弄清楚这个框架究竟做什么,提供了怎样的抽象, 又提供了哪些实用的编程设施(常用级,可定制级)。 总之, 先观大略, 后入细节。
适宜场合:
1. 需要在项目中大量地反复地应用某一个功能和模式, 对组件的要求稳定可靠, 经过仔细严格的测试, 而没有充足时间去研究和探索,重新创造;
2. 使用框架免去了大量的探索和走弯路时间, 但学习时间仍然是不可避免的; 框架的设计和实现者也应该考虑所开发的框架对于开发人员的易用性和学习曲线。
三个问题:
1. 此框架的核心用途是什么? 它提供了哪些设施? 要求开发者以怎样的方式去使用? 【基本】
2. 它如何完成自己的工作? 【进阶】
3. 有哪些类似的框架可用? 各自的优缺点 ? 【扩展】
两个阶段:
1. 使用阶段: 侧重于使用该框架来实现开发需求,在必要的情况下会深入源码查探部分实现,有时是为了调试;
2. 深入阶段: 侧重于探索该框架的内部实现,汲取其精髓所在,以便在其它项目中能够使用。
在使用阶段主要是体会其 API 的设计 以及如何适应业务需求,而不要太注重阅读源码,
在深入阶段则更注重阅读源码, 将 API 设计与内部实现联系起来体会其精妙之处;
各个阶段有各个阶段的关注点。
学习方法:
1. 了解该框架究竟做什么,解决什么问题, 提供了哪些特色, 有什么独特之处;
2. 找到官方入门文档及一个完整而简单的 DEMO ,了解基本使用及重要概念、工作原理;
3. 下载源码及API 文档, 便于随时参考和阅读; 大致浏览下 API 文档,了解提供了哪些编程设施;
4. 找一个真实项目的源码,体会如何在真实项目中使用该框架;先读后写,可以减少很多不必要的初期摸索过程;
5. 阅读关于该开发框架的技术书籍或网络文章,参考真实项目源码,尝试自己来做;
6. 多次迭代: 更深入地使用、理解 + 阅读源码理解内部实现。
配置编程:
现代应用程序一般都会使用各种的开发框架,而开发框架为了达到编译时或运行时的更大的灵活性或可移植性,常常借助配置文件来定制其具体的行为。 由此产生了配置编程。 比如, 在真实项目中, ibatis 的配置与代码部分比重相当, 反而是配置文件似乎更加复杂一些。