刚刚又翻看了一下去年写过的年终总结《2013 年度回忆录》,感触颇深。2013年,由一个刚学VB的少年,经历了作品展、数据库学习、学生信息管理系统、机房收费系统、软件工程等阶段的洗礼,已经慢慢成长起来。紧张而有序的一年又过去了,看看自己在这一年里都收获了什么?
技术篇
设计模式
学习设计模式的时候主要学的是程杰老师的《大话设计模式》。前后一共学习了两遍,第一遍是当做故事书一样通读,同时实现例子;第二遍思考和总结第一遍中遇到的问题,总结设计模式中的原则,各个模式之间的相同点与区别。
我想看过这本书的肯定都会爱死它了!其中的小例子各个贴近生活,各个经典幽默,完全把面向对象与及其代码的可维护性、可拓展性、可复用性和灵活性与生活紧密结合起来。
记得去年的这个时候,正在学UML,那时候进度不快,为了赶进度,当时学的不怎么踏实,好在在后面的设计模式的学习、机房收费系统重构版和机房收费系统合作版的项目中有所实践,才弥补了一下前面所缺的踏实。
VB.NET
学习VB.NET主要是为了下面进行机房收费系统的重构做准备(虽然听说也有同学用的C#~~whatever~~),这个阶段学习的资料是曹主圣老师,因为是台湾的老师,所以教程中也满满的都是台湾的IT名词,like“物件导向”、“介面”……本来对OO的理解就没多少,更给自己头上蒙了一层大雾。当时多亏了水哥哥这个有心的孩纸。。。。,在这里替他打个广告→_→(水哥哥的博客《大陆与台湾的编程术语对照》),也希望对有需要的童鞋有所帮助。
三层架构
同VB.NET一样,学习三层架构的初衷也是为了后面的机房收费系统的重构做铺垫。之前做的两个系统,都是“界面与数据同在”,即整个系统不分层,界面除了界面应有的控件,还要连同业务逻辑、数据连接等操作都“一锅煮了”。
记得学习三层那时,看过的一个例子把三层的思想解释的很好:顾客——服务员——厨师——采购员:
顾客相当于我们所开发系统的客户,服务员相当于U层,厨师相当于B层,最终的原料来自于采购员(相当于数据来自于D层)。这样,各有各的职责,在后期维护时,不用为了改一处地方而不需要修改整个系统的代码。
机房收费系统重构版
现在一想到机房收费系统的重构,脑子里立马会浮现出这张架构图:
机房收费系统的重构,是对前面所学知识的实践,以软件工程和三层架构的思想为基础,以C#或Vb.net为工具,在原来VB版机房收费系统的基础上,进行优化。
这个阶段对我来说是个很大的坎儿,因为之前学习的都只是理论,一点实战经验也没有,所以做的时候也是憋了好长时间没什么进展,后来先按照三层架构的思想做,做了一半,对三层的思想理解的更深刻了,又重新给D层加接口,B层和D层接口之间加抽象工厂模式,U层和B层之间加上外观模式,最终修成正果。
新闻发布系统
有可能是做C/S的时间太长了,所以一直期待着赶快学B/S。除了13年用JSP来练手做的留言板系统,新闻发布系统是接触的第二个B/S系统,当然,这个系统要比之前那个正规的多,架构为标准的三层架构,还有重构机房收费系统时用到的SQLHelper、泛型等,前端用了JQuery、Ajax等当时感觉比较高大上的东西,实现了一些常用的功能如MD5加密技术、获取IP地址、统计访问人数、在线编辑器(比如第三方控件FreeTextBox)等。
做这个系统主要还是为了系统地学习B/S做个引子,先熟悉一下B/S中都用到了哪些基础知识,有一个全局观。然后在后期学习的时候有一个合理的规划。
除了上面所说,之前的JSP系统是在Tomcat上发布的,所以在这里令一个比较大的收获就是学会了在IIS上发布网站。
由于BS知识之前学的不好,做出来的效果很丑,这里就不上图了→_→
BS基础知识——HTML、ASP.NET、XML、JavaScript、CSS、JQuery、AJAX
这些知识中,HTML、XML、CSS、JavaScript之前都稍微接触过,虽然深度不够,但学起来还是比较轻松,教程里的例子基本上都实现了;学ASP.NET的时候,按照老师给的例子,一个一个实现,同时这些例子的实现也给了自己很大的兴趣和成就感;
这个阶段的学习,还是用那句话来总结:Practice makes perfect!
机房收费系统合作版
机房收费系统的合作版中,收获最大的有两点:
对版本管理工具SVN有所熟悉,了解了SVN管理版本的原理,上传下载的注意事项、报错解决方法等。
真正体会了“团队”的意义,于个人来说,团队成员之间需要互相帮助、支持理解,身为团队中的一员,最重要的就是责任心与态度,要时刻提醒自己自己的任何举动会给集体带来什么样的影响(比如代码规范和注释、提交代码前想想提交代码的规范,自己提交代码后会给整个系统造成什么样的影响等等)等;于团队来说,一个优秀的团队少不了每一位成员的积极贡献。
校园网站系统
做这个系统是为了去石家庄参加一个比赛,刚好也正在学B/S的知识,正好练练手。有了理论知识就是不一样,瞧这个网站做的多漂亮!
架构跟前面的新闻发布系统的架构没什么区别,三层架构、SQLHelper、EntityHelper。功能上实现了附件、图片的上传于下载,IP地址检测,邮件发送(多联系人、多附件)等,其中很大一部分都是借鉴与前面所学知识。与前面不同的是,后台管理的界面采用了Easy UI。
刚开始挺不愿意去参加这个比赛的,不过后来还挺感谢这个系统,刚好在学习B/S的这段时间,锻炼了自己的代码量。
高校云平台
到目前接触的所有项目中,这应该算是最“高大上”的系统了,相比较之前接触的东西来说,技术高大上(架构用到了EF、WCF、MVC等,还涉及了分布式缓存、容器、事务、AOP池、日志、权限、工作流等技术),系统规模大(参与人员五六十人,开发了近三个月,才进化到了如今的2.0版本),代码版本控制主要还是用的SVN,项目管理用的是禅道。
我所在的子系统是基础系统,主要为其他系统如考试系统、平角系统提供基础数据的查询和基础数据的管理。
除了在基础系统中负责的模块,最大的收获就是跟鹏哥学习工作流。如今虽然已经可以实现给其他子系统需要的模块添加工作流,不过还没有达到成型工作流系统的规模,只是人家哪个模块需要用到工作流,我们就去人家系统里给加上,而且工作流流程也是现用现画,然后打成dll,加到人家系统里,完全没做到即用即配(做成这样都不好意思继续说了)。还有个问题就是,网上一查工作流的资料,怎么都是Java的呢,.net这方面的很少诶。。。。哎!继续研究吧。
这个项目的感受就是,工期紧,用到的都是新技术,很多地方完成了就匆匆地过去了,没能好好抽时间来沉淀和总结。
J2SE
2014年下半年因为某种原因没能参加软考,现在有点小后悔,2015年上半年必须得考啦,所以前段时间,白天做项目,利用晚上的时间学了J2SE,为J2EE的学习开了个头。学习J2SE时,感觉就跟学习前面几种语言是差不多的,基本知识都是一样的,数据类型、数组、三大结构、异常、IO等,这里感受最大的就是,感觉从J2SE的学习中对“底层”的理解更加深刻了,比如对变量的内存分析,学IO时与前面学到的字节、二进制等结合起来等等。
对了,软考中还有Java的一些东西,刚刚好。。。。哈哈~
2015注定又是丰收的一年,加油!
生命不息,奋斗不止!