Apache?Apache!!
说到Apache,软件领域的人都很熟悉,Apache基金会,Apache开源协议。说到Apache的开源项目,很多都是大名鼎鼎,如雷贯耳,如占领全世界 站份额近一半的HTTP服务器,应用应用广泛的Tomcat,当前最为火爆的大数据框架Hadoop和Spark,每一个拿出来都是重量级的。
这些与我们不同阶段的技能修炼有何关系呢?下面我们来聊一聊。
先来思考一个问题,有谁去数过Apache上到底有多少个开源项目,这些项目涉及了哪些领域?
拓宽视野
如果你细心关注Apache,你会发现它上面的项目涵盖了整个软件行业的大多数关键领域。它的Incubator项目或多或少会展现出未来一段时间内的技术趋势。
跟踪分析Apache顶级项目和Incubator项目都涉及哪些领域,哪些项目活跃,哪些项目逐渐失去更新,可以让你看清当前软件行业的体系及热点。结合开源中国的项目分类,也可以让初入行的新手对软件世界的体系有个概观的认知(只看项目分类意义不大)。
学习经验
Apache的这些顶级项目,有的设计的很是宏大,有的设计的非常小巧精炼,选取自己感兴趣的,或者与自己当前工作有关联的,精读一两个项目的代码。初学者能够学习代码风格和组织结构,有经验者可以掌握项目的脉络,学习大牛们的设计思想,在工作中加以改造实践和消化吸收。
以项目构建工具Maven为例,它是Java构建体系中的事实标准。可是有几个人真正能够掌握好Maven的最佳实践?其实是有捷径的,看一下Apache上比较复杂的项目,特别是多模块的项目,仔细研究一下这些项目里的目录结构设计和POM定义,你就可以发现一个复杂的项目如何通过目录结构,POM定义来简化项目组织的复杂性,从中学到最佳实践。
深耕基础
初学者更应该选取一个项目进行突破。以Tomcat为例,通过阅读其代码,看看它的代码结构是如何组织的,Package是如何命名的,接口和实现类文件是怎么归类放置的,都可以从中获取经验。以此为基础,与阅读的其他项目代码进行对比,建立起自己的风格。
下面列举Tomcat相关的三个问题,都不算复杂,可是你绕了多少弯路才知道答案的呢?
1、一个Tomcat里面为什么能够部署多个Web应用?
2、运行在Tomcat里的一个Spring MVC应用,当 络请求到达服务器端,最后作为参数进入Controller内部的某个业务方法时,数据经过了哪些环节,做了哪些变换?
3、Tomcat涉及了哪些技术,这些技术各自对应什么标准或规范,有没有其它对应的实现?
以一个项目为突破口,深入下去,探究这个项目领域所涉及的技术体系,确定该体系所涉及的标准和规范,然后再以这些标准规范去探求其他的实现,进行对比。相信你的经验水平会有长足的提高。
总结
Apache就是一个技术人员的试炼森林,围绕Apache不断地探索,你就可以在软件领域修炼的路上少走很多弯路。一个Apache其实就值得你在整个职业生涯中对其投入持续的关注。
开源推动了技术的传播与发展,让世界变得更美好。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!