代码改变世界

我的软件工程之路(二)

2011-12-22 21:26  javaspring  阅读(161)  评论(0编辑  收藏  举报

引:

————————————————————————

上次写了一篇《我的软件工程之路(一)》,如果你没看过,可以先去看看,名字后面挂了一个(一),当然就意味着要继续写下去,所以这篇文章就应运而生了。

 

两个月的时间过去了,又紧锣密鼓地学习了两个月,我依然是个菜鸟,只是这个菜鸟不是菜得那么离谱了……

————————————————————————

 

看过我上一篇文章《我的软件工程之路(一)》的网友,如果你足够留心,你会在文章下面的“我的进度心情表”中发现最后的日期是11月6日,机房收费系统总结。说实在的,机房收费系统,我做了三遍,你肯定纳闷,干嘛一个系统做三遍啊?

 

其实在完成三遍之前,我也不知道一个系统做那么多遍干嘛。别着急,听我说。

 

做第一遍之前,我学习了VB6和SqlServer数据库,敲了很多小Demo,后面照着代码,敲了一个学生信息管理系统。然后仿照师兄的机房收费系统(做好的,没有源码),利用在学生信息管理系统中积累的经验,完成了第一遍机房收费系统(现在看起来,好像搭了一个鸡窝)。在这个过程中,基本上我对“系统”已经不恐惧了,不管三七二十一,反正我做的这个能跑起来了,而且对代码有了那么一点感觉,你可以管它叫做“代码亲和力”,呵呵。

 

接着,我学习了软件工程概论,UML和ROSE,C#和设计模式,分层(三层架构,MVC),VB.NET,这在上一篇“我的进度心情表”中也有体现。这个时候,我开始利用面向对象思想重构机房收费系统,也可以说是利用上面学习的这些门课的知识重构机房收费系统:写文档,画UML图,分层,套用设计模式,最后用VB.NET实现设计。第二次做机房收费系统,其实是把前面学到的知识应用到实际项目中去,查漏补缺,巩固所学并加深理解。可以说这次做机房收费系统,我的软件工程思想有了质的变化,软件工程这个大门向我敞开了。

 

完成了开发,测试,总结,然后进入了下阶段的学习,这个时候,我学习了版本控制,也就是学习SVN,搭建SVN环境,然后我们组建了4个人的小组,选出项目经理,总之就是搭建出一个与企业相类似的环境,进行机房收费系统的设计与开发,测试。这个阶段,我了解了企业中到底是怎么开发软件的,锻炼了我的合作开发能力。

 

看到这里,我想你应该有些明白我为什么做了三次了,三次做《机房收费系统》的目的不是重复,不是为了更加熟练,我们在进行项目驱动式学习,但并不是盲目地进行项目驱动式学习,我们在遵循一种学习理论:随机通达教学法(核心主张是,对同一内容的学习,要在不同时间、在重新安排的情景下、带着不同目的以及从不同的角度多次进行,以此达到高级知识获得的目标。具体来说,对同一内容的学习要有不同时间多次进行,每次的情境都是经过改组的,而且目的不同,分别着眼于问题的不同侧面。由于在各次学习的情境方面会有互不重合的方面,这种反复并非为巩固知识技能而进行的简单重复,而是把概念具体到一定实例中,并与具体情境联系起来。每个概念的教学都要涵盖充分的实例,分别用于说明不同方面的含义,各实例都可能同时涉及到其它概念。在这种学习中,学习者可以形成对概念的多角度理解,并与具体情境联系起来。形成背景性经验。这种教学有利于学习者针对情境建构用于指引问题解决的图式。)

这个过程,学习软件工程,学写文档,画UML图,再到设计模式,三层架构,最后利用所学重构个人版机房收费系统,再学习SVN,合作开发机房收费系统,说长不长,说短不短。迷茫过,快乐过,痛苦过,兴奋过。引用曾流行的一句话,叫:痛并快乐着。

 

回忆点点滴滴,曾为不会写文档而纠结,到现在机房收费系统的文档写了N个版本,不会画UML图纠结,到现在机房收费系统的版本达到了8.0,还不算前期小规模的画。不会分层,不懂MVC,自己找资料,东一榔锤西一棒槌的打出去,这是米老师(我的导师,有兴趣的网友可以在百度搜一下米新江)故意培养我们自己的去寻找食物的能力,“狼一样的学生”是这样慢慢炼成的吧。

 

很想用师兄的一段话来形容这段过程的学习,《机房收费系统》就像一块磨刀石,将我们磨的越来越锋利;同时它又是一个大消化系统,将我们需要用到的软件工程,UMl,C#,设计模式,MVC这些东西都消化了进去。

 

合作开发机房收费系统完成,意味着我的一个阶段终结。暂时告别了C/S结构系统的学习,迎来了B/S结构。

 

先不急着说,这中间,我们还做了一个很有趣的项目。

以前我们利用SNS(SocialNetworkingServices,即社会性网络服务)克服了传统学习环境的弊端,实行开放式学习,让全世界的老师变成提高班学生的老师,我们看很多公开课,看很多名校的授课视频,看很多大牛的录制的视频。

 

这次,经米老师授意,我们尝试了自己录制视频,我们称它为视频项目,从写项目计划书,日报,完善讲课内容,整理资料,录制,最后收尾,一周的时间,算是对自己这段时间学习的总结,也算是为了他人贡献自己的一点力量吧。

我们把这段时间的学习,比较有代表性的地方录成了视频。主要集中在,UML、设计模式和三层架构在机房收费系统中的应用。我负责的是三层架构在机房收费系统中的实现,一共录了9集,一集20分钟所有的样子。不管以后能不能用上,能保留下一份自己的劳动成果,还是非常开心的。当然也希望对后来者有所帮助,哪怕供师弟师妹来批判,也挺有意思的。

 

不能总停留在“机房收费系统”的时代,毕竟,那个时代,现在暂时终结了,留下来的都是些深入骨髓的东西。

 

新时代来临!

 

从这次附录的《我的进度心情表》中可以看到,我进入了B/S的学习,这里我是从牛腩老师的新闻发布系统、孙鑫老师的Html和天轰穿老师的Asp.net起步的。对于这三位,大家可以去网上搜一搜,我不过多介绍。

 

对于新闻发布系统,有以前的基础,后台代码还容易搞定,可能是刚开始接触Web开发,各方面不太熟悉,前台界面总是出这样那样的问题,折腾来折腾去,掐指数一数,整整两周才能跑起来。虽然新闻发布系统很小,真的很小,但仍然有各种不明白,各种不理解,都罗列在那了,这么做能实现,为什么这么做能实现,有没有更好地方法,这里能不能优化,那里是不是可以改进。问号挺多的。

 

孙鑫老师和天轰穿老师的教学视频看完了,也认真做了笔记,但还在对学习所得进行整理归纳之中,这里先不和大家分享了,相信后续的《我的软件工程之路》文章中会有介绍。后面还会针对asp.net,jquery,css,html,xml,javascript深入学习,学习成果还是会在后续文章中提及。

 

任重道远,恨不得赶紧把所有的东西都倒进脑子里。还是像我上一篇文章中说的,“脑子里不成一锅浆糊,永远不会豁然开朗”、“永远不要指望只学一本书,就能掌握这门课的全部”。对于暂时的问号,我是没有什么抵触的,这是学习阶段必须经历的嘛,我有信心能顺利通过。问题先挂着吧,等学完下面的几门课,估计对新闻发布系统中一些东西的理解就不可同日而语了,给自己打个气。

 

其实,我的博客,每一篇文章,都是学习过程中的点点滴滴,《我的软件工程之路》系列文章只是把那些点点滴滴进行一个汇总和提炼吧。B/S学习的方面说得很少,期待下期吧。

 

老规矩,附:《我的进度心情表》   微博裁下来的,绝对保真,哈哈,下次考虑用CSDN的迷你博客