《Design Pattern》下的思考

来源:互联网 发布:国联证券员工待遇 知乎 编辑:程序博客网 时间:2024/05/18 02:36

      很早很早以前,自己开始写程序。

      大学一直在用Turbo C,写了一些算法,那时对算法没有系统的概念,只知道自己写的程序能够计算得到结果就可以。谭浩强的<<C语言程序设计>>翻阅无数,心想能自己写C编译器的是大牛也。

      研究生开始写程序赚钱,什么都用,什么都写,但是却始终觉得没有积累,而且感觉只是熟练了使用一些工具。研究生阶段有个高手是我的目标,因为他太彪悍,自由职业式程序员,清华毕业,可惜英年早逝,前年去逝了,颇为伤感,或许真是天妒英才。2004曾经聆听他的教诲,<<Design Pattern>>如此如此,你如果有一天能有这样的感触,读书的过程中你觉得你已经在用这些模式,读书只是整理知识,那么你就到了一定境界。当时虽然写了很多很杂的代码,但是我尚未理解,他只是说,写了10万行代码,你就能有感觉了。

10万行代码,成了我写程序的目标,我没有刻意的去写,只是不断的参与项目,也没有继续理会模式。我只是完成工作,满足兴趣的写代码。

      又过了些年,我研究生毕业了,我在所里工作了一年,在实验室,延续着完成了一些项目。此间,出差时间甚长,有很多时间做研究看书,因为用了C,所以强烈鄙视VB之流的语言,但是C又不能直接快速的开发行业项目,我开始用VC。因为没有人指导,很孤独,幸好有网络,开始了自学。

      成长是需要付出时间和努力的。仔细的读了潘爱明<<vc++技术内幕>>第六版,侯捷的<<深入浅出MFC>>,Bruce Eckel<<think in c++>>,<<C++ 大学教程>>。 试着自己写些VC程序,花了半年的时间看孙鑫的VC视频教程,深入的研究一些实用例子。此刻有强烈的渴望希望项目实践。因为VC的起点高,实验室不敢直接用VC开发,原因是实验室人员流动快,学生一拨一波,实力也参差不齐,如果用VC项目实施非常困难,很难延续。一般在实验室,刚来的人都是先参与项目学习,然后直接干活,三年后大部分都毕业走人了,项目没做完就甩给别人了。我的处境在于收拾别人的,开始自己的。

      2007年是转折比较大的一年。换工作,结婚。在ESRI开始了自己真正的软件底层开发。通常写程序的工作可以分为两种,针对项目的程序,和针对程序员的程序。很幸运我走上了我自己希望走的路,开发给程序员使用的组件。因为自己的专业方向是做GIS的,实验室和老师的理论水平在国内都是处于最前沿的,基础理论的系统学习,让我在此刻才深刻的感受到专业是需要用好的程序设计来发扬光大的,专业是本。如果一个人能有精深的业务知识,和深刻的程序设计思想,那就是人才。ESRI的氛围对于每个GISer来说是难得的,你可以学习,你可以思考,你可以参与。业余又读了很多C++书籍。自己列的书目,包括了所有C++大家写的书,国内只看侯捷和潘爱明翻译的书和写的书。其实最后的经验就是像侯捷所言,每个知识点,都会有那么基本好书,这些书你看完就能完全掌握这些知识,这些书是其他书籍的宗元和根本,国内这种书很少,幸好遵循侯捷的学习方式下来了,走了些学习C++的捷径。这时我关注的是C++而不是VC。

      在ESRI工作用得最多的是组件的思想,这个不是三言两语就能体会的。反复的实践和学习才能掌握。大部分二次开发的人掌握的是我知道怎么用组件,我的工作就是怎么做出这些组件。组件的核心是对专业领域的抽象,以及如何面向业务基础进行架构设计。组件开发过程中不断的被OO折磨着。此间写了很多专注行业的SDK和一些通用算法。当然此间读了几乎所有的关于COM的书籍。到了最后我理解的组件只剩下了模版和范型的一些思想。

      2009年,老婆怀孕了。我某天想到了2004年的<<Design Pattern>>,其实07年我换工作期间就买了这本书,一直没看,突然想仔细看看,我发现几乎所有的模式我都能理解了,我体会到OO才是能读懂这本书的关键。

      2010年,有宝宝乐。此前我并不关注什么UML,也用,但是觉得不自由。每次开发前我都在想这些问题,我怎么设计合理的架构来满足应用?怎么设计核心的SDK?我怎么抽象行业的需求?我的软件如何能够复用?

      现在只关注算法。想设计合理的数据结构来描述行业的模型。

经常有人问我,是做C/S还是B/S的?我只是说,我做的东西不区分这些,既能在C/S下用也能在B/S下用。

经常有人问我,你用什么语言?我只是说我能自己写解释器;我不关注语言,我只关心什么架构下采用什么语言合适。

经常有人问我,你怎么理解开发?我只是说,我关心的是业务关注的是什么。

 

 

 

      自己写了一些年的感悟,其实一句话就能总结全部:

      思考,所有灵感的来源;读书,提高思维的品质

其实我是IT行业的一个GISer。

原创粉丝点击