年度回忆录(2013.01----2013.12)

看了一下上次的年度总结是从20132月份开始的,按照以往的习惯,年度回忆录是半年一写的,这次居然破例了!由于工作的原因吧(这是找借口的节奏么~),没有“年中”就直接“年终”了。这就更要好好的总结一下了,否则怎能对得起这将近一年的时间呢。这一年发生了很多事,接触了很多人,学会了很多东西……为了表示自己对年终总结给予了高度重视,决定使用自己最擅长的叙述手法——常规线性叙事(其实不是不用其他手法而是笔者只会平铺直叙)来说一说这一年的那些人,那些事。

技术

Linux

2013年过完年就投入到了LinuxUnix的学习当中了,看了几本书,基本上都是属于命令手册之类的书,当然了肯定得一边看书上对命令的解释,一边在虚拟机中敲命令。学习Linux最大的感触就是得动手,古人云“不动笔墨不读书”,对于Linux的学习也是一样的,“不动键盘不学Linux”,否则看过了、忘记了、过去了、没了……不得不说当时自己去装虚拟机,去玩Linux这件事对现在工作的帮助还是很大的,起码从心理上已经不再恐惧了(难道这还不够么?)。现在在职的公司开发环境是Linux,而且过完年之后公司有一个关于Linux的评估考试,看来还得把看过的书再过一遍,命令这个东西就是这样,越用越熟悉,不用就忘记(莫非这就是用进废退的另一个有力佐证?)。

关于Linux(准确的说是关于命令行)自己最大的感受就是这是自己了解的所有操作方式中效率最高的。因为在命令行下没有花哨的网页分散你的注意力,没有烦人的弹窗去打扰你,最重要的是“执行——回馈”这种操作方式要比window不知快多少倍,脱离鼠标绝对是走向高效的第一步。所以如果您想提高效率笔者的建议是多用键盘少用鼠标,多用命令行少用图形化界面。刚开始绝对是痛苦的,但是你涅槃之后你将迎来前所未有的痛快。

JS

当时从北京外包回来之后明显感觉自己JS方面的东西太薄弱了,以前有些看不起JS,感觉一个脚本语言有啥学的。后来发现不是这么回事,做个不恰当的比较:一本《JavaScript权威指南》(俗称“犀牛书”)900页(当然前600是内容,后300是手册),一本《Java编程思想》也是900页,可见JS当中的东西还是很多的。有了心理上重视之后就开始疯狂的在JS上下功夫了。虽然当时对自己的定位不是前端,但是作为一个专注后端的开发人员对于JS的高级应用连听都没听过多多少少有些说不过去吧。

前前后后大概看了两三本书,写了几篇博客。JS发展到今天也是相当成熟了,所以在学习的时候思路比较明确:补充基础广度,完善框架深度。其中关于JS的基础内容看的是那本大名鼎鼎的“犀牛书”关于框架方面肯定选择JQuery啦,然后选择对应的书《Jquery in Action》。看完书,代码实现完之后从心理上的自我感觉是JS没有问题了,后来竟然真的没有问题了!该知道的知道了,剩下的就是遇到具体的问题去查手册了。

然后自己就重新思考什么才是学习,以往认为的学习就是将别人脑子里的东西通过介质(书籍,视频等)传输到自己的脑子里。但是通过对JS的学习之后才发现这种传输并不是传统意义上的100%的传输,是先传送一个目录,然后在用的时候按需传输。有点类似Maven中用nexus搭建的私有仓库,起初并不需要将所有的jar包下载下来,有目录用的时候下载才是高效的。


(没有图片的博客读起来是会噎死人的)

JBPM

从上次的总结就能看出来,关于JBPM的学习整个战线拉的比较长,这里的学习内容主要就是通过做网上的实例以及阅读官方的文档来实现的。可以说JBPM是第一个完全依靠文字没有跟着视频学习的框架(也怪守宏的视频出的太慢了,据我所知到现在也没有录制完吧/偷笑)。做网上实例倒不是很麻烦,就是一个很简单的一个请假流程(绘制流程,部署,启动,各种审批,结束)。后来随着守宏的视频一集一集的录制,我也跟着一集一集的学(所谓站在巨人的肩膀上?)最后这小子录了一半就撤了,也难怪,中国的传统美就是残缺美,完美不是美。看来守宏深刻的领悟到了这一点,故意录一半,剩下的任由童鞋们去探索,现在想想原来这才是守宏的良苦用心,不愧是专家啊!

需要注意的是现在流行的JBPM版本比较乱,自己当时研究的时候是JBPM4,后来才发现最新的版本已经到达5了,而且据官网说从设计理念上都发生了变化。看来那句“活到老学到老”至理名言是说给开发人员听的。不过无所谓了,知道了思想用什么都是一样的,就像爱岗现在自己封装工作流一样,你升级是你的事老子用你的思想自己动手做一个不就得了?之前一直感觉工作流很高深,很复杂,现在回过头来看也不过如此罢了。起初认为困难的事情只要做下去终究有一天会被你踩到脚下。

流行开源框架

读者一定以为我又要说那烦人的SSH了,恭喜你猜对了!框架这个东西吧,学会一两个其他的也就没什么了。学会了Struts1那么Struts2SpringMVC就应该做到拿过来就用,而且心中毫无畏惧感才行。学会了Hibernate就应该对Ibatis没有什么可担心的。对于框架而言熟悉了一个其他的学习曲线(熟练程度—时间)是很陡峭的(通俗点说就是短时间内可以提升到一个很高的程度)。因为学习开源框架无非就是按照文档或者官网上的配置写一写配置文件,然后根据官方的Demo就可以开始实现业务逻辑了,顶不济就是看看源码然后自己动手改造一下。突然想到了网上面试宝典中说的那样。Java面试90%的技术问题都可以用“引几个Jar包,然后配置一下配置文件就行了”这句话来回答。当然这句话是没错的,但是这仅仅是停留在使用的水平,准确的说是停留在看文档使用的水平,如果脱离文档(变态才脱离文档)对于新手来说就有些难度了。

EJB

当时学SSH的时候看到那本李刚的《轻量级……》就知道他还有一本写Java重量级开发的书《经典……》于是就顺手翻了翻,其实当时的想法很简单就是想了解一下除了开源的SSH,企业级的开发用到了那些技术。然后就把这本关于重量级开发的书放一边了,直到要开始做GXPT的时候才重新翻出来寻求解决方案。说实话,在这两本书上花费了不少时间,基本上书和代码都过了一遍,在此期间还写了几篇博客。对以往的知识有了进一步的认识,不得不承认专家的那句话还是很对的“学习就是一个过程”同样的知识点不同的时间去看,去学习感受就是不一样,学习不单单是一个过程还是一个需要反复的过程!

如今公司用的主要技术就是EJBJPA包括其中),所以说当时在这上面的投入还是很值得的。知识永远没有说学到头,学完了,尤其是干IT这行的,你这学着,新的东西也在不断的涌现。所以自己对EJB的理解、学习也会随着工作中接触的东西而逐渐深入。

在用EJB的时候也在思考为什么外企会考虑使用EJB而国内的企业大部分都是SSH呢?自己想的是第一对于新鲜事物外国人是兴奋的,而中国的传统思想是守旧的,不肯改变是中国人的一贯做法。第二就是国内的系统真的没有特别大的,能将就就将就了。第三就是新鲜的东西是国外人研究出来的,想学习英语是一个不得不考虑的瓶颈,所以和搜索引擎的道理一样,筛选条件越多导致结果越少,于是研究前沿的技术就成了中国人普遍的难题。

JSF

因为是公司View层的主要技术,所以从网上找了很多资料来看,准确的说应该是边学边做,因为对于JSF以往只是听过它和Net很类似但是好多年不做Net难免对于这种基于组件的前端展示层的框架有些棘手,不过好在很快就熟悉了(具体的熟悉过程请参照上段内容)。现在对JSF的感觉和当时对Net的感觉是一样的,这种基于控件的View层的东西开发起来真的能提高效率,因为别人都给封装好了只需要拿过来按照别人定的规矩用就可以了。这个优点也是其自身最大的缺点,既然别人定好规矩了,那么你只能按照别人的思虑走,自己不能发挥自己的想象力。比如现在公司在用PrimeFaces这个基于JSF封装好的框架,效率是特别的高,但是想自己控制一些东西就特别不方便,而且这种框架的升级也是问题多多,轻易不敢升级哇。至于说性能方面目前在View层已经初露端倪了,部分开发人员把JSF中的ManageBean当做普通的类使用,所以就会造成一个初始化方法加载多次导致性能比较低下。可见任何一个工具只有深入的了解,懂的里面是怎么运作的才能真正高效的使用。

对于JSF自己还有更加宏伟的计划,在找资料的时候发现关JSF的中文资料很有限,希望自己有机会能弥补上这块空白。

ESBMule

关于ESB之前也接触过,对于ESB的理解自己感觉也还可以。之前在做GXPT的时候想把ESB用上,但是后面由于时间的原因吧,最终流产了。但是前期对概念的准备以及一些Demo的熟悉还是很有用的。起初在GXPT上想用的是JBoss的实现,后来由于项目的搁浅就不了了之了。对于ESB来说由于不同的ESB实现不同,所以具体到做的层次就会有那么一点点的不同,但是总体的思路(消息路由,消息格式转换等等)是相似的。值得高兴的是GXPT的后续版本中已经将ESB应用了进去,真的是振奋人心。长江后浪推前浪,前浪死在沙滩上这句话果然不假。

目前公司的ESB实现用的是mule,这个网上号称最流行的ESB实现资料却出奇的少。幸亏是开源的不然就真的不好做了。在用的时候有些地方不能满足要求就不得不去看源码,然后想办法去解决业务问题。在看看源码的过程中发现框架就是和自己平时写的代码果然不一样(废话),看来自己还需要继续努力哇。在看框架源码的时候深刻的体会到,成熟的软件就应该是允许用户灵活使用的,甚至是可以让用户自己动手定制的。微软的Office不就是这样么,把常用的功能做了一个遍,就这还嫌不够还要加上VBA让用户发挥自己的想象力定制更适合自己的功能。

敏捷开发

这种开发模式对自己来说算是全新的一种开发模式,在适应了敏捷开发之后我发现自己已经深深的爱上了这种开发模式。目前自己对这种开发模式最大体会有以下几点:效率高,系统可以成长,工作压力小。

目前正在尝试使用敏捷开发的模式重新开发GXPT,希望能有所突。遇到了很多问题,有思想方面的,有技术方面的也有政治方面的。再次膜拜自己的一句话“任何技术归根结底都是条件反射,都需要通过重复来提高;任何活动归根结底都是人与人的活动,都需要通过沟通来解决问题。”总的来说吧,从现在的效果来看还是很不错的,大家已经进入正轨。尽管前一段时间大家有些不适应,但是我有信心过不了多久他们也会深深的爱上这个开发模式的。

从开发模式来看不能说以往的瀑布模型完全不对,只不过对比而言感觉敏捷开发更加具有可控制性,效率更高。当然在用敏捷模式开发GXPT期间也出现了一些问题,比如对于新事物尤其是管理方面大家的畏难情绪,比如大家的积极性不够,比如用瀑布和敏捷混合的方式进行开发导致组员非常疲劳等问题。这都是情理之中的,如果每个人都能够顺利从“瀑布模型”过渡到“敏捷”国内的软件开发也不至于是现在这个样子。

到这个阶段了就不想再画图了,因为前面的学习是有章可循且按部就班的,而后面的学习就是自己根据自身情况挑选学习的方向及内容了,所谓量体裁衣就是这个道理吧。

英语

过完年之后的英语学习一直是以走遍美国为主,其实就是没事了就听一听看一看,没感觉有啥明显的提升效果,想开口说但是感觉自己的发音有问题,而且平时积累的词汇量以及固定搭配很欠缺,于是就开始了音标以及日常用语的学习。四月份的时候一次偶然的机会和外国人聊了几句,这便一发不可收拾,从此开始从网上和老外聊天。在此过程中进行了录音,基本上聊天的内容就是我教对方中文对方教我英文,美其名曰Language Exchange。效果不错,尤其是聊天的过程中把声音录下来,然后平时没事的时候可以听一听,就像古人说的“以铜为镜可以正衣冠”有了录音就知道自己哪里不足哪里需要改进了。找到了不足后面就是更加努力的提升自己的发音以及自己的词汇量,感觉和外国人聊天的过程中最大的进步就是可以听懂对方的说话并且能将自己的想法用简单的语言说出来,尽管说的时候有些是不准确的,甚至是词不达意的,但使我吃惊的是这竟然不妨碍对方去理解。这更加坚定了自己后面没羞没臊的和老外扯皮的信心了。


(跑的姿势再难看总比站在那里嘲笑别人强)

突破了听的这个障碍之后自己又对网上的英文教程进行了学习,当然了都是一些基础的教程(Lynda),感觉没有丝毫压力,都可以听得懂。当时问老师不知道是自己计算机水平帮助我理解了英文的计算机视频,还是我的英文让我理解了计算机的英文视频。老师的答案是知识相互作用的,这个东西就和鸡和蛋哪个先哪个后一样。顿时恍然大悟,原来是自己想多了,继续学就对了。

再后来就开始想在自己的遣词造句上下功夫,然后我又拿起了被我扔了N多次的新概念,开始读上面的文章。当时的想法(现在也是这么想的)就是读文章都读不顺那是因为没有把整个句子当成一个整体,或者自己对英文句子的练习还是不够多。

目前感觉自己的英语已经到达一个疲惫期,就是能进行基本的交流但是这种交流不是专业的,更像小孩子的一种交流,一直在思考(同时也在实践着)下一步的英语学习,先放设法让自己的英语更加professional,让自己更加的接近native speaker……

其他

GCT

GCT的学习已经拉开序幕了,本来说的是今年我们去保定做开题报告,但是由于种种原因没有去成,但是这并不妨碍我们对GCT学习的热情。看了看GCT发的课程列表,感觉每门课都很好,自己都挺喜欢的。老师也为我们定下了目标,要求每个同学都要在知名杂志上发表技术文章,与其说这是一种督促的方式还不如说这是一个目标更是一种让自己提升价值的机会。

职场

看了几本关于职场的书籍,自己对职场的理解就是:如果你把自己当做公司的主人你总有一天会成为主人,如果你只是做一天和尚撞一天钟,那么公司迟早会抛弃你。只有全心全意的为公司着想、为老板着想,公司(老板)才会有可能去重视你,给你机会。

关于Excel的那本书让自己认识到有了思想什么工具都能熠熠生辉,这里没有诋毁Excel的意思,就平常人使用Excel的水平来说,不是他们的智商不够而是他们的思想不够,是他们爱的程度不够,爱人的程度不够,爱上司的程度不够,爱公司的程度不够。杜拉拉升职记也是说的同一件事情,你让领导满意、让客户满意、让公司满意,最后你爹生活才会让你满意。

项目

GXPT

本来是我在负责这个平台的架构搭建,没办法水平有限吧,最终在秋的带领下我们正式开始干活了。在这个开发的过程中最大的收获就是和EJB有了近距离的接触,让以往的纸上谈兵变成了真刀真枪的实战。在整个过程中对JavaEE的规范有了更深入的理解,对Java这门语言有了更深入的理解。对“伟大的公司做标准,一流的公司做产品,二流的公司做……”这句话有了新的认识。

什么是标准?标准就是活中有死,死中有活。标准是死的但是在这标准之中可以尽情的发挥。Sun公司提出了标准让混乱的Java世界顿时有了“法律”每个提供商都要去遵从这个“法律”但是在符合法律的条件上每个提供商又可以有自己的灵活实现,这就让标准活了起来。标准是兼容并包的,JPAHibernate的关系就印证了这一点也就是说当不符合标准的东西数量级达到一定程度就成为了标准,店大欺客,客大欺店是一个道理。

在刚开始做GXPT的时候自己总是认为要做成一个类似服务器的东西,比如Tomcat或者Jboss。然后自己就疯狂的找资料,甚至把Oracle官方的Tutorial翻了一遍。结果是也没有找到如何做Tomcat或者Jboss的方法,但是自己却意外的了解到很多东西,比如JSFJAAS等等。后来系统做完之后自己就在想到底是哪里出问题,导致自己在前期“浪费”了这么多时间。

最终这个答案在学习“敏捷开发”的时候找到了。第一:在做系统的时候尤其是商业化的系统,最快速的拿出一个东西让客户得以确认才是王道,用“敏捷开发”当中的术语说就是“拿出一个Demo让客户确认然后立刻进入下一个迭代”。第二:无论客户当时描绘的这个系统是多么的优良,一定要从实际出发根据自己已有的资源去实现,因为系统是可以一步一步改良的,不要被自己的或者被客户的思维给束缚住。要时刻提醒自己温习科学家和农民的故事啊。

LFP

换工作可以说是今年的一个大事,算了算上次离开北京之后回去利用做GXPT的时间休整了半年。之后重新来到了北京,然后找到了自己还比较满意的工作吧。819号入职,这个日子我想我一辈子都会记得,那天的天气前所未有的好,当然了心情也是,三个月之后顺利通过试用期,心中那暗流涌动的话啊,一直没有写,现在利用年终总结就一股脑的倒出来吧。

在新公司工作的情况也还算顺利,试用期期间我的工作量完成的还说的过去,用组长的话说是“你虽然是新员工,但是和老员工在工作量上没有什么差别,但是在质量上还需要进一步努力”(其实一直很佩服组长的说话方式,这里请注意两个语义上转折)。我知道这可能和之前的编程习惯有关系,之前做东西的时候实现是第一位的,但是新公司做的是产品,所以复用,性能等取代了实现。也就是说宁愿不做这个功能也不能给系统添加不稳定因素。

试用期结束之后就算正式入职了,然后日子就很平淡了,上班下班交替进行。公司的氛围以及公司的同事们都挺好。气氛好的公司真的可以给人一种归属感。在公司中接触了很多比较牛的人,留学的,以前当老师的,在公司工作五年的,感觉各个都身怀绝技,都有值得学习的地方。I need time.择其善者而从之。

很久没有当新人了,在做GXPT的时候自己的位置是元老,如今换了位置就要换一种心态。对于自己而言新的公司什么都是新的,新的规矩、新的同事、新的老板、新的工作方式,啊~唯一不新的可能就剩技术了。

On the way……


生活

感情生活这段一直写不好,删了好几次又觉得不写感情岂不是让别人更加认为做技术的像个榆木疙瘩,于是就硬着头皮写,挠着头皮改,凑和着看吧。

工作的事情搞定之后就去了女友家,算是第一次正式的见父母吧。还算比较顺利,感觉和面试差不多:P。做任何事情都应该以终为始,你认为你应该是什么样子,找对方向然后坚持努力地做,最后你就能成为之前你想象中的样子。14年注定是喜酒不断的一年,相信周围的很多人都要忙活自己的终身大事了,自己也在努力之中和兵哥的五年之约距离成功越来越近了。都说程序员的感情生活比一般人要糟糕,但是就自己目前来看一切还算可以(其实人家梁静茹都说了“爱对了人情人节每天都过”),没有遇到什么特别大的异常,之前抛出来的异常都catch住了,并且也做了自己认为比较好的异常处理。

每次写代码的时候就感觉人生其实就是一个类,或者说每个人的人生就是一个Main函数,在有限的生命中做自己想做的事情,体味自己想体味的生活,也许这才是人生吧。代码如下:

public class Test{
	private boolean flag;
	public boolean getFlag(){
		return this.flag;
	}
	public void setFlag(boolean flag){
		this.flag=flag;
	}
	public static void main(String arg[]){
		//人生就像一个main函数,人们各自有着各自的flag,可能为true可能为false
		if(flag){//也许因为某个变量莫名其妙的进入了一个分支,从此和另外的一个分支就说byebye了.
			if(){
				//随着岁月的流逝我们会遇到更多的分支,由于每个人所拥有的变量不同所以每个人的分支也不尽相同
				/*
				 *   每个人在自己的分支里经历了很多,有快乐,有不快乐
				 *
				 */
				try{
					//有时候我们会做一些比较冒险的事情,就像程序里面的try语句
				}catch(Exception e){
					//有时候冒险的事情并不像我们想象的那样一帆风顺,但是好在出现的异常我们可以捕捉,
					//如果某一天出现了不可捕捉的异常那才是恐怖的,也许是幸福的,因为那意味着这个Main函数走到了劲头.
				}
				//  goto 有些人希望改变自己已有的分支,就像在程序中使用goto一样,不幸的是goto语句不是随便用的,
				//  需要语言的支持(需要贵人相助或者上苍的眷恋),只有这样才能从一个分支跳转到另一个分支 
				for(int i=0;i<80;i++){
					//有时候我们会进入一个比较安逸的状态,这也是大多数人会进入的一个状态,
					//就像这个循环,很多人追求一份安稳的工作不就相当于把自己放到循环中了么?
					//
					//但是我们不知道这个循环后面是什么
					//是程序的结束(生命的结束)
					//还是另一段代码的开始(退休了 搞点儿副业?)
					//
					//但是总有一些人想体味人生,于是他们会放弃这个看似安稳的循环,就像下面的这个break
                                        break;
				}
				//有人会因为放弃一个稳定的循环而后悔,但是后悔也没用,没有goto语句是无法回到上一个循环的,同样的这里的goto需要很多特定条件.
			}else if{
				for(int i=20;i++;i<60){
					//有人就在这个循环中一直干到60岁,干到自己干不动了,于是一生就这样结束了.
				}
			}
		}else if(){
			if(){

			}
		}
		//等自己生命终结的那天,回头想想哪个分支才是正确的呢?
		//
		//
		//
		//答案是:没有正确的分支,同时没有哪条分支是错误的.
		//
		//所以说 人生没有错路 只有岔路 但是只有有了岔路我们才能更多的走别人不曾走过的if分支,才能看到更多路边的美景.
	}

}


我的书单

我的书单详见豆瓣吧,明显感觉这一年在工作上的时间多于看书的时间,平时看书也是急于解决技术问题或者是为解决技术寻求方法,读书笔记基本没有哦(卖萌可耻),14年要多看书啊。

提笔于201411日凌晨,拖到(写到)2014211日,呃呃呃呃呃呃呃呃呃!

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 56
    评论
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值