两年来的读书小总结(2011-2013)

时间:2022-05-07 16:44:08

前些天,老婆问我为什么不学习一下,怎么一点上进心都没有,心里咯噔一下,我感觉自己这两年一直在看书学习啊,只不过在家学习的时间很少,老婆反问,你学的东西有化作别人看得到的能力么,很郁闷,自己先整理整理这两年涉猎的内容。

-PMBook
  上一家公司快离职的时候找了些PMP的资料,也有想法朝项目经理方向上发展,学习的感觉是很有用,在方法学上来说,有点提纲挈领的感觉。后来公司现有形势发生大的变化,主要精力都放在设计的细节上,阅读搁浅。

-Thinking in UML(大象)
  仔细阅读的一部关于UML,需求分析,软件开发流程的书,我专业课中没学过软件工程学,感觉这本书里的内容应该属于软件工程学。很好的一部书,有些例子介绍很符合实际场景,能解决概念理解上的疑惑,但部分实例感觉有点太重量级,粒度太细,可能现实项目从实现起来成本太高。

-人月神话
  当故事看完,感触有一些,但不是太大,可能当时看的时候还没有项目在身上,以后需要重新再看看,相信能有不同的理解。

-Writing Effective Use Cases
  这是在学习需求分析,乃至系统分析上给我最大的一本书,其对用例的粒度,等级的定义,如云朵,海平面,黑盒等概念的抽象通俗易懂,然我这种能力的人也能够快速理解,并掌握应用,极好!

-Microsoft.Press.Software.Requirements.Second
  比较正统的关于需求分析的书,自己中英文版本都看过,看了过后关于Use case的疑问还是在上面一本书籍中才获得真正的理解,感觉书要反反复复的看才能深刻啊。

-Patterns of Enterprise Application Architecture
  Martin Fowler的书,总结得极有价值,我是对照着以前商业MES系统的架构,部分开源企业级项目的源码一起来看,边看边做,觉得这帮人还真是牛。

-Domain-Driven Design/Addison Wesley(Addison Wesley)/领域驱动设计精简版
  三本关于DDD的数据,从了解到熟悉,结合Martin Fowler的书一起看才能深入的理解,造成困扰的地方是因为目前实际很多项目中对一些概念的变通,因为有些实际运用起来对人员要求较高。

-Java Design Pattern
  有两本关于设计模式的,一本是阎宏的,一本是Head First系列的,作为了解一下,免得自己走弯路,我也就是浏览全部,关注其中主要的几种模式。个人认为如果软件代码写得连我都很难理解的话,就是属于5%系列中的高精尖了,需要特别对待。

-IEEE Standard For Software XXX
  这个系列中的有好几个模板,我本质上是个保守派,认为大家辛苦整理,总结出来的东西必然不会太差,使用这种模板的风险将会更低,最起码方向上不会出太大的偏差。这些标准在我们两眼一抹黑的时候帮助极大。 

-Java 系列丛书(Enterprise.JavaBeans.3.0.5th.Edition,HibernateInAction2,OReilly.Java.Enterprise.in.a.Nutshell,Think in Java等)
  上一份工作用的是JavaBean 2,但是也主要做的是在既有系统中添加新功能,底层,架构方面考虑得极少,只知道我应该这么做,这么做的好处是什么,但对于为什么用其他方法做,其他方法与这个方法有什么区别则考虑甚少,比如DTO,我们当时客户端服务传输对象就是用这种方式,我只知道用DTO能减少数据传输,封装等,但不会考虑到为什么不用Entity,用Entity会有什么不利的地方。

-编译原理中文版
  很久一直想看的书,在大学期间这门课程也像软件工程一样不见(可见学校老师的水平很重要),直到重看Think in Java中Static变量/方法,可重入,并发概念时,给搞得焦头烂额,写代码写得越写越怕,老是担心同步问题,Google了N次,后来找到这本书,豁然开朗,一些疑惑从根本上就解决的。

-JSF2, Seam, Vaadin, Primefaces
  因为自己业余时间也在做实验项目,对一些框架进行了研究,通过一系列的对比,选型,深入的学习和练习了Seam,Vaadin,在我等待Seam 3的稳定版的时候,它转向了DeltaSpike,到Releas又需要很多的时间,但学习它的时候了解了更多的Java前沿技术,Vaadin是个巧妙的设计,试用了6.7, 7.1,研究了下它的JPA Container,还有其他衍生的Addin,里面的API看起来很友好,适合于企业的快速应用开发。Primefaces+JSF2自己也做了一些初步的应用,很强大,但我实在精力有限,Web前端的技术目前停留在简单的CRUD阶段,更复杂的是N年以前用ASP.net做的东西,都忘记得差不多了。

-Maven
  原来一直抵触,后来做Vaadin研究的时候花了2天时间做了一个整体的了解,算是达到自己能用的程度,好感倍增,但在自己家里更新仓库的时候是要命的慢,用公司的VPN还可以。

-代码生成技术
  有一段时间非常迷恋代码生成,像Spring的, Openava,后来觉得不是自己的强项,放弃了。

-Hibernate
  自己一直在学习Hibernate,后来公司用C#,又得看看Nhibernate,感觉都差不多,但是生态系统中其他的配套使用就有点坑爹了,很少的文档,很少的帮助,生态系统中的第三方,甚至官方的应用代码质量都不咋样,你让我如何用。

-MSBuild, CruiseControl.net
  这也是被逼的,原来让一个工程师弄了N久,老是搞不定,最后没干完离职,自己为了省点懒,花了1周的时间将他们成功集成,每日打包,也将MSBuild的概念学习了一般,用到了官方,社区的扩展,很爽!

-脚本引擎(cs-script)及编辑环境(ScintillaNET)
  是cs-Script不是Script cs,前者是一个成熟的,运行了更久的项目,后者貌似才出来,自己用cs-script构造出一个Runtime container,运行时将服务器端c#代码抓取到本地实时运行,优点是实时运行,升级简单,变更快速,缺点是编程还得用Visual Studio来,尤其是运行多个Winform的程序,简单的程序可以用ScintillaNET构造脚本编辑器,试运行,但是不能调试。

-C#的委托,Lambada
  临时接触C#的时候,写写简单的程序没问题,到真正自己构建企业级框架的时候才发现有的东西实在绕不过去,只能硬着头皮去啃了,委托与Lambada的东西有时候过于灵活,微软这是要干嘛,有些API用着是爽了,但是我感觉很多人是糊里糊涂的在用。

-工作流引擎及流程编辑器
  对比了web的几种,好像Java的没有,都是Javascript及Flex的。可以考虑用Primeface的Mindmap类实现。以后再说吧。

-其他(管理实践,卓有成效的管理者)
  老婆给我买的书,看了觉得很好,第一本让你对公司的一些概念有本质上的认识,所谓开了眼界,第二本个人觉得是修身,真的能在你被项目工作打懵了的时候给予帮助的。以后一定温习温习。

自己写着写着就发现自己原来从把握项目最后慢慢演变成了把握函数了。自己做过不少项目,也写过不少代码,总有一个梦,可以慢慢的构建自己业务知识范围内的一个部分可重用的开源系统,然以后做这方面研究的人可以少走弯路,有些借鉴的地方。觉得这两年自己学习思考的东西其实蛮多的,以后的两年何去何从也好好思考一下。