`
jishublog
  • 浏览: 871501 次
文章分类
社区版块
存档分类
最新评论

编程与生活

 
阅读更多
我不去想是否能够成功,既然选择的前方,便只顾风雨兼程;我不去想是否能够赢得爱情,既然钟情于玫瑰,就勇敢地吐露真情;我不去想身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影;我不去想未来式平坦还是泥泞,只要热爱生命,一切都在意料之中。


汪国真——《热爱生命》

2013年2月到2013年9月总结

在动笔写这篇总结博客之前,翻看了一遍过来的半年多在CSDN所写的博客,切身感觉到这一年的时光真是过的太快了。只有强制自己停下来做一下总结,才不会觉得时间一晃而过,才不会觉得自己着一年是虚度的。

不知道从什么时候起,我的生活里就只有编程了,自己关注的论坛也大都是IT这个圈子的事儿,就连看个笑话,也是关于程序员的:用GIF图片来告诉大家程序猿的真实生活多一些。

下面进入正题。还是老规矩,分阶段进行总结:


DRP项目——学习Java的第一个项目


DRP(Distribution Resource Planning)是学习Java以来的第一个项目。不得不说,这是一个非常经典的项目。从Donet过渡到Java,虽然都是从事编程,但是感觉突然就多了很多东西。在Donet中(以C#为例),每个aspx文件对应一个cs文件,在使用VS的时候,你有没有想过:为什么每个aspx网页后面会对应一个cs文件呢,为什么你在aspx里面拖一个button,在cs的方法里面能够找到这个button?

与Java对比后不难发现,微软其实在aspx文件与cs文件之间封装了一个控制器,这个控制器相当于struts1中的ActionServlet;aspx文件相当于Java中的View视图,可以是jsp、可以使HTML或者别的页面。在VS里面不管什么视图,都同一叫做aspx。cs文件相当于Java中的Action(想想struts1),通过一定手段,能够获取aspx页面信息。

Java中页面需要跳来跳去,页面中大多需要用到上一个页面的数据。怎么将上一个页面中的数据传递到下一页面?同一页面,提交后怎样保留查询条件?什么时候使用隐含域,什么时候传递参数适合一些?为什么要有get/post提交两种方式,为什么在form的method里面设置了get属性,就能调到Servlet的get方法方法?button的onclick提交和submit提交有哪些差异?

由于Java封装的不如Donet封装做得好,那么在Java中需要做的东西当然要多一些。不过,使用Java依然能够做到不学基础,一问三不知的傻瓜式开发,不过你要面对的就是每天都会有新知识,永远也学不完的新知识。

另外,在DRP项目中,还学到了MVC。我还是非常想在这里提一提这一意义重大的架构模式。我想后续的Java中的许多开源框架,都是基于MVC的基础开发出来的。MVC从宏观上进行了职责的分离,使得JavaWeb开发更加便利。关于MVC的总结,请看MVC与三层架构多角度看Model1和Model2两篇总结。


纷繁的开源框架中的经典——SSH框架完美组合


学习SSH之后,才会发现,原来知识中也有配合这样默契、关系如此铁的三兄弟。上面drp项目分享的过程中,提到了Java开发中需要自己手动进行页面转向,那么如何转向呢?这在无形中就增加了开发人员无谓的工作量。

要么就类似于donet(注意是类似),每个请求对应于一个action,或者每个叶面对应一个action,那么action将会多如牛毛;要么手写ActionServlet,写一大堆ifelse判断语句,去决定向哪个页面转。

Struts

Struts框架就很好的解决了这个问题。struts1和struts2虽然略有不同,但是都对这个问题进行了不同程度的封装。我认为,struts这一web层框架最大的作用就是封装了控制器,通过配置,就能够完成页面转向。当然struts中还有其他的很多内容。比如:与JSTL对应的struts自己的标签、国际化问题、struts框架的对异常的处理问题等问题。

Spring

Spring框架真正的精华在于它的Ioc模式实现的BeanFactory和AOP,它自己在这个基础上延伸的功能却有些画蛇添足的嫌疑。不过Spring的优点远远大于它的瑕疵,一言以蔽之:美丽的太过耀眼,就盖过了丑陋。

Ioc模式是什么呢?你在编程时,只要写被调用的接口代码,具体子类实例可以通过配置实现。有了Ioc,生成对象不用再使用new了,只要在配置文件里面配置一下,就能轻松完成注入。

其实,配置编程也是有利有弊的。他是能够让你更专注的编写业务上的程序,让类的更加瘦身,少了那么容易的代码。但是,编写本来可通过开发工具或编译器检查错误,由于过分依赖配置,就会经常出现因为粗心导致的小错误,我想大家都会有这样的情况:在配置后调试代码,由于自己的手贱,配置文件中的小写字母写成大写字母诸如此类的问题,不知道你做何感想?

AOP即为面向切面编程。AOP的出现,使称霸世界的面向对象更加对象化,他将类中不可或缺却又不伦不类的部分拿出来,而是对象更加专的注的对象化。具体大家可以参见我的博客:闲扯AOP与OOP

关于Spring,大家也可以来此探寻Spring的真相:探讨Spring框架的真相

Hibernate

Hibernate则是持久化层框架,它通过各种映射关系,完成对数据库的各种操作。它主张使用面向对象的思维来对数据库进行操作。


三大框架各有优势,结合起来使用更会显现大大简化开发人员的工作量,无论开发阶段还是后期维护阶段,他们都是非常好的辅助工具。一言以蔽之:三大框架结合使用,是对三层架构之美的更好的诠释。


提高班平凡的生活也有暴风雨


其实说实话,提高班的日子是无聊的,平淡的只有三点一线,原来始终如一的做一件事,是这么难。有时候实在是无聊。然后就自己打游戏,打的满头大汗之后,才会发现自己还是有知觉的,自己还是活在这个世界上的,提高班的日子,上学的日子,安逸的让我忘记了外面世界的复杂与喧嚣,忘记了自己身上的责任。

不过,大多是时光,还是过得非常快乐的。编程上取得的一点点成就,甚至是对待编程态度的一点点想法或者感想,都会让自己高兴上一阵子。在提高班,我们坚信:一滴水就可以折射出太阳的光辉。米老师的《让自己成为太阳》中更加诠释了要去照耀别人的真谛。

可以说,提高班的日子是痛并快乐着吧。生活中的平淡对于我来说,是一种痛;别人的假期,我们的桃源生活也算是一种痛;学习上的小坎坷也算是一件件小痛事。不过这些鱼那些失业的大学毕业生的痛比起来,与我们美好的未来比起来,就显得微不足道了。

另外,提高班平淡的日子也不是永久的,还记得暑假期间的暴风雨吗?下面就是我冒着大雨前来上课的高大身影:



挥之不去的自学考试


我这学期进行的自学考试科目是C++,这里有我写过的连篇总结:C++虚函数与纯虚函数C++虚基类解决二义性问题及执行结果分析。接触过C的指针,一直在学面向对象的我们,C++还是比较好入手的,成为高手不简单,但是应付考试足够了。学习C++的过程中,让我对面向对象又有了进一步的认识。

另外,再次强调下自学考试的重要性:前些天,守宏专家回来了一次。在与他聊天的时候我问了他一个问题:像自考、研究生考试,你觉得对你现在来说用处大吗?他说很有用,如果没有本事,什么证有用呢?证有用吗?这证件是否有用,作用的大小,也是分人来看的。如果你有能力,有本事,这证当然有用,忽悠人的时候脸不红心不跳。


如影随形SB英语


这学期的英语学习,主要是围绕说进行的。在这里,我要感谢网友:“成长是美丽的痛”同学,不管我说的多烂,她都耐心的为我纠正。英语的进行其实一直挺艰难的,没有那份置之死地而后生的信念,很难弄出来点模样来。在网上看过马云在美国大学的精彩演讲,也看过一些中国屌丝与外国美眉弄出的一些搞笑节目,真心感觉到,掌握英语,确实非常重要。

就像上面提到的,会说英语就能给世界上那些会讲英语的沟通,就能向他们学习借鉴;会说英语就能拍到会将英语的洋妞。你还在等什么,少年!

另外,我真心感觉:要想学好英语,一定要张嘴。这就是学好英语的秘诀。尽管你说的非常难听,你也要并且更要张口说出来,就像《中国合伙人》中佟大为说的:你英语讲的难听,难受的是你身边的人,你怕什么啊!

我毕业了!


不得已而为之,我毕业了。毕业真是一件痛苦的事情,家里乡亲的都催你找工作啊,结婚生子啊,房子车子多会买啊……你要是一个把持不住,就得被他们的唾沫星子喷着往前走。不过说实话,都毕业了,仍然留在提高班这座避风港学习,还算是蛮幸运的。在这里:每个人都坚信自己有一个美好的未来,大家这一份份自信,让我对自己的未来也充满着期待。

那个,毕业论文就不给大家看了,内容也不向大家透漏半点了,隐不隐私是一方面,嫌寒蝉拿不出手也是一方面。不过,在大学期间,令我庆幸的是:我不仅来了提高班学习,还结识了一群志趣相投的朋友。与这些朋友相处的日子,是我大学玩的最爽,坏事儿做的最多的时候。



然后,就总结这么多吧。最近机房网不好(从十期屋搬过来我那就上不了网了),这还是我偷偷跑到青峰的位置这里写的这篇总结。留在学校、留在提高班的日子就剩下一年了,七期的毕业,对我们来说一种动力,让我们更加坚信自己的未来,同时也是一种压力。自己身上还有很多很多缺点,很多很多不好的习惯。

使人疲惫的不是远方的高山,而是你鞋里的一粒沙子。良好的行为习惯和思维习惯能够让我们的学习工作都事半功倍。对于学习,自己始终没有达到“衣带渐宽终不悔,为伊消得人憔悴”的学习境界。现在的自己还是太嫩,还有好多好多没有完成。那让我们带着沉甸甸的希望,向远方迈进吧。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics