平衡的艺术——从菜鸟到架构师.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平衡的艺术——从菜鸟到架构师

平衡的艺术——从菜鸟到架构师 2009-05-08 00:00?15231人阅读?评论(158)?收藏?举报 语言编程strutsibatis框架mfc ? 作为一个不是科班出身、没有正规学习过计算机知识的架构师,想在这里把我这几年学习的经历体验和大家分享一下,谈谈自己对架构师成长之路的一些感想。 奠定扎实的理论基础 千里之行,始于足下!技术不是一蹴而就的事情,而是长时间积累的成果。扎实的基本功是做好所有事情的开始。到现在我还记得对我影响非常大的几本书: ■《C++编程思想》 ■《深入浅出MFC》 ■《Windows?核心编程》 ■《数据结构》《编译原理》 我学习计算机正是按照这几本书的顺序,之前学习C的经历就不必说了,而转折点正是《C++?编程思想》——它让我感觉到程序和语言竟然这么有意思,至今仍对虚表的概念记忆犹新,尤其指针的用法,对我以后学习Java语言有很大的帮助,对多态和语言的特性也有了很高的认识。 《深入浅出MFC》这本书,记忆最深刻的还是其中强大无比的宏定义和对象层次设计。然而学习MFC的过程中,我遇到的最大问题就是:很多东西都是黑盒的,这引发了我刨根问底的欲望。所以后来我学习了《Windows核心编程》,这本书给我的最大收获,就是了解了很多操作系统底层的知识,操作系统是如何运行的。不过遗憾的是,如果当时从Linux?或者Unix?开始学习,应该会了解得更系统一些。 之后我深入学习了《数据结构》和《编译原理》。这是我经过了很多实践以后,又回过头来重新学习。拿《编译原理》来说,以前对这门学科的了解非常有限,后来为了实现一个东西,要用到脚本语言,找来找去找到了Velocity(后来想想使用Groovy?应该更好一点),用了以后觉得很好。以前修改程序逻辑,是需要重新编译或者修改配置重新发布才能OK,而现在只需要编辑然后保存一下,就能得到自己想要的结果。这令我着迷,于是想知道它是如何实现的,翻看源代码才晓得原来还有?JavaCC这个东西。就这样,我从解释语言入手,逐渐开始了疯狂学习编译原理的过程,越发觉得编程语言非常有意思。 回头想想以前和现在学习的语言,感觉程序语言就是在不断抽象:从汇编、C、C++, 再到Java、C#,再到更动态一点的语言如Perl、Python、Ruby?等等。不管它再怎么变、再怎么抽象,还是编译原理应用的产物。 讲了这么多,就是想强调理论基础知识的重要性!虽然我们现在使用的框架如此之多,但是如果你有了扎实的基础理论知识,这些东西就跟玩具一样。基础就是一个无招胜有招的杀手工具。 培养完善的抽象思维 抽象的能力也是作为一名好的程序员必须具备的能力。我们在考虑问题的时候可能会遇到错综复杂的场景,从这些迷雾中找到一条明路是我们做好程序员的关键。这些年来学习了很多框架,回过头来想想自己都有点后怕,这也令很多初学者望而生畏。但认真想想,真的有那么可怕吗? 让我们从语言层面逐渐剖析这个问题,应该很容易做出解释。程序语言就是我们在某种场景下交流的工具,汇编是机器语言;C和C++?是编译型语言,它们是一种针对汇编的高级抽象;而Java?和?C#?就是更高级的抽象了,甚至于抽象了一层虚拟机出来(这个产生的影响就是,之后的很多高级语言评判标准,都是“是否支持虚拟机”),再到后面的许多动态语言,那就是更抽象了。说到这里你会问到,讲这么多语言类的东西和学习框架有什么联系?让我慢慢道来。 我们使用一种语言就是用它的语法进行编程,而学习一个框架实际也是为了用这个框架所提供的语言来写程序:Struts——我们使用很多配置还有?Action?和Form?;Spring——我们使用Bean?模型,这是它的最基本模型(现在?Spring?已经庞大得让很多人无法学习了);iBatis——我是用它的XML-SQL?模型;JBPM——使用它所谓的GOP模型(面向图元的编程);Web flow——是在使用它的页面流模型。这样的例子我可以举出很多(这也是DSL现在如此流行的原因)。 很多人会说:学习这么多我已经晕掉了!不妨想想,为什么会有这么多东西存在??Struts?是为了解决Web编程的困扰;iBatis、Hibernate?是为了解决在数据库编程时的麻烦;原有的Web页面编程都是独立的具体单元,Web flow能够让这些页面形成流的形式,让开发更顺其自然;从JBPM的GOP可以看出,JBoss?的开发人员对抽象的理解度很深。我举这么多例子,实际是让大家不要害怕现有的这些框架,有了扎实的基础,抽象的概念是很容易理解的!缺乏抽象的能力,你就不能更快更好地解决问题。 实际抽象能力衍生出来的一点就是,需要我们对已学过的知识定期进行梳理。这样能让你巩固已有的知识,为以后的学习做好准备。知识就好比一棵生物进化树,最终目标都是一样的,关键是看如何选择

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档