最近一段时间在学习SSH框架,学习的时候笔记是写在纸上的,估计只有自己能看懂,最近看了《Struts2技术内幕》,在读到如何学习开源框架时,感觉说的很对,很好,学习方法值得我们借鉴。
如何学习开源框架
正确的学习方法不仅能够事半功倍,也能够使我们更加接近真理。在这里为大家总结了一些学习方法和最佳实践,希望对正在为学习开源框架犯愁的朋友带来一些启示。
- 阅读、仔细阅读、反复阅读每个开源框架自带的Reference
这是学习框架最为重要,也是最开始最需要做的事情。不幸的是,事实上,绝大多数程序员对此并不在意,并且总是以种种理由作为借口不仔细阅读Reference。
程序员常见的借口之一:英语水平跟不上,英文文档阅读起来太吃力。针对这样的借口,需要指出,阅读英文文档是每个程序员必须具备的基本素质之一,这就和调试程序需要耐心一样,对一个程序员来说非常重要。当然,阅读英文文档这一基本素质是一点一滴积累培养起来的,对于那些阅读起来实在吃力的朋友,建议结合中文的翻译版本一起看。国内有许多开源组织为大家做了许多有价值的翻译。但是大家必须注意,看中文文档,必须和英文文档对照,因为没有人可以确保翻译能够百分之百正确,语义的不匹配给你带来极大的误导,通过对照,才能够将误解降到最低。
程序员常见的借口之二:Reference太长,抓不住重点。在这里,建议是:耐心,耐心,还是耐心!从Reference的质量而言,其实大多数开源框架的Reference都是非常优秀的,基本包含了框架的方方面面。尤其是Struts2,由于历史原因,Struts2的Reference基本上都是一个一个的专题Wiki文章拼起来的文档,每篇文章都有一个固定的主题,不仅包含原理解析,注意事项,有的还包含源码解析和示例讲解。阅读Reference可能会非常枯燥,但是从价值的角度看,对Reference的阅读往往是对大家帮助最大的。因此,对阅读Reference的建议是,多看几遍。第一遍,你可以采取浏览的方式,目的是了解框架的整体架构的大致功能。第二遍,挑重点章节仔细阅读,并且辅以一定的代码实践,目的是彻底掌握某个分支领域的知识。第三遍,带着问题阅读,在文档中寻找答案。
之所以强烈推荐大家仔细阅读开源框架自带的Reference,主要基于以下的两个原因:
权威性
自带的Reference多数出自这些开源框架的作者或者开发人员之手。还有谁能够比他们自己更了解他们自己编写的产品呢?自己写的程序,到底有哪些优点,如何使用,自己肯定是最最清楚的,所以要说到权威性,不可能有任何文档比自带的Reference更加权威。
正确性
自带的Reference几乎很少犯错,所以不会给你带来什么误导信息。不仅如此,许多Reference已经为你总结了框架使用过程中的许多最佳实践。所以我们没有理由不直接通过这些Reference来获得第一手的资料。
- 带着问题调试(Debug)开源框架的源码
如果大家对某个开源框架的使用已经比较熟练,对其内部的原理也基本掌握,或许你就会对其中的某些设计原理和实际思想产生兴趣。这个时候,通过开源框架的源码来寻找问题的答案不失为一个很好的进一步学习的途径。
在学习开源框架的源码时,建议是程序运行在Debug模式的状态下,对源码进行调试,在Debug的过程中,查看在开源框架的内部到底运行了哪些类,他们的执行顺序是怎样的以及这些类中临时变量的执行状态。坚决反对逐个package地阅读源码,这毫无意义。因为程序本身是一个整体,程序之所以成为程序,其本质在于它是动态的、运行的。如果我们逐一去阅读源码,就相当于把一个完整的整体进行肢体分解,那么我们将永远无法看到一个完整的动态执行过程。学习源码,最重要的一点在于抓住一个程序在运行过程中某一时刻某个关键累的运行状态和最终状态,而这些都能通过调试源码来实现,这才是阅读源码的最佳实践。