代码改变世界

《当程序员的那些狗日日子》(十五)首次接单

2011-05-13 16:28  java ee spring  阅读(440)  评论(0编辑  收藏  举报

过了一个愁闷无聊的“五一”假期后,我收拾心情,继续回到公司上班。

两个星期后,我已将公司网站类库项目的程序代码全部重组完,当我在VS2003上对这些新的类库项目进行编译时,全部编译成功,这表明我所重组的程序代码全部都准确无误。虽然结果早已在预料之中,但我心里还是变得无比激动,这就像经过苦苦追求终于打动了自己心爱的女人一样,那种激动和兴奋的心情无法言表。

接着我再对引用了新类库项目后而重新生成的网站进行测试,测试结果表明网站功能一切正常。终于大功告成,这表明我已对公司网站程序有了一个全面的了解和把握,我随时可以对公司网站的程序和核心功能进行改动了。

此时公司网站改版的事情早已被搁浅多时,而且公司业绩持续变差,小李总再没有重提此事之意,所以虽然我已可以对公司网站的程序和核心功能进行改动,但此时我也不需要做什么,而是只对网站进行一些简单的维护。虽然我的工作变得悠闲起来,但我宁愿小李总可以一声令下说网站要改版,然后我可以将我已得到很大提高的技术水平发挥出来,为公司效一把力,即使因此而变得很忙都没有关系。

小京终于要休产假了,由于公司业绩不好,而且少了各种大型演出项目,公司网站上需更新的产品信息少了很多,所以小京原先所负责的美工设计的工作便暂时交由我来兼做,公司并没有重新招人来做。虽然是这样,但我的技术水平已得到了很大的提高,所以即使是程序开发和美工设计兼做,我都可以完全应付得来。

在这个时候,一方面,我上班时工作上的事情并不算太多,所以并不是很忙,我可以轻松应付;另一方面,先后买的两本ASP.NET的书我都学完了,而前一次买的另一本ASP.NET的书,都是介绍一些小项目的开发的,并没有特别介绍ASP.NET的知识点或编程的要点和技巧,此时那些小项目对我来说已变得没有太大的参考价值,所以我也不用再去学这本书,因此下班后回到住处及周末休息时我便只是根据需要去学习当初买的那本VB.NET的书,以加强对VB.NET语法的掌握。所以这时在工作和学习上我算是轻松了许多,这也可以说是我在两年的辛苦付出后的“苦尽甘来”。

经过两年的辛苦付出,从ASP到ASP.NET,我算是真正走上了程序开发的道路了,这时我的底气已足了很多,不再因技术水平太低而在工作上不够自信。所谓“付出总有回报”,此时回报给我的就是,我有了更多的底气和自信。

在这个时候,继续做着票务业务的程大哥私下里找到了我,像大概一年前恩跟我说起的那样,他也想做一个跟公司网站类似的票务网站,问我能不能帮他做。

自从在公司和程大哥认识后,我和他就很谈得来,我觉得他人很直爽,他就像兄长般的一位同事和朋友,对我很好,此时我和他的关系已变得很好。与玫、宁、恩等人比起来,程大哥的业绩要差很多,这是因为他做票务业务的时间不是很长,积累的客户不多。虽然业绩不算好,但是程大哥却很乐观,而且已决定会一直在演出票务行业做下去。他的决心让我佩服。

程大哥说,我没有电脑,他可以给我提供,而且他也很相信我,说有关网站开发的所有事情都可以由我自己来决定,我只管放手去做,因为他觉得有关票务网站上的东西我是专业人士,我比他了解,他信得过我。

这么长时间以来我自己一直没有电脑,平时在住处需要用到电脑时都是用老乡的,但是如果是要做开发,自己就必须要有专用的电脑才行,程大哥能给我提供电脑,可以帮我解决这一问题;而且最为关键的一点是,他信任我,这点很重要,也正是因为他信任我,不久后我可以尽我所能帮他做出了一个我自认为还不错的票务网站。

如果说大概一年前恩想我帮他做票务网站而我没有答应他,除了是因为保密的问题,还因为技术上我不太胜任的话,那么此时我在技术上则完全有信心和有把握了。所以此时我唯一需要考虑的是保密的问题。

这让我第一次有了试一试的冲动,我想将我所掌握到的技术,尤其是ASP.NET的技术,真正地运用起来。考虑一番后,我最终说服了自己,认为这跟保密的问题没有冲突,因为我只是在运用我所掌握到的技术而已,我并没有泄露公司网站的客户数据。

于是我便答应了程大哥,我可以帮他做这个票务网站,而且我们也谈好了价钱──数额不多,只有几千块钱。有时有很多事情并不是只以金钱来衡量的,比如当中我和程大哥的交情,他慷慨地为我提供电脑,他对我的信任,我可以以此作为“练手”以强化自己的技术水平,等等。

于是我便接起了我从学习网站开发技术以来的“第一单”。但是我并没有在公司做这件事情,一是因为在公司不方便,二是因为我觉得在公司做个人的事情,不是很好,所以我只在下班后回到住处时及在周末才动手去做。

由于程大哥是租用虚拟空间来存放网站的,考虑到他日后因变更虚拟空间而需迁移网站的问题,而且考虑到网站的访问量和数据量也不会很大,和他商量后,我决定采用Access 2000数据库作为他这个票务网站的数据库。

Access 2000与SQL Server 2000相比,还是有很大的不同,这可以说是两个几乎完全不同的数据库,所以我必须先对Access 2000作一番了解后才能使用它。

Access 2000要比SQL Server 2000简单得多,借助搜索引擎网站的强大的搜索功能,我找到了有关Access 2000的使用说明,并花了几个晚上的时间来学习。有了SQL Server 2000的基础,Access 2000学习起来可以说是轻而易举,我很快就学上手了。此外对于防止Access数据库被下载的问题,我也作了一番详细的了解。

准备就绪后,我便正式开始这个票务网站的开发工作了。我“依瓢画葫芦”,根据公司网站的SQL Server 2000数据库,创建了这个票务网站的Access 2000数据库。这项工作并不难,关键是要将SQL Server 2000数据库中的表和视图转成Access 2000数据库中的表和查询。

然后是设计网站首页。我参考另一家本行业内有名的票务公司的网站首页,加上自己的创意,用了几个晚上的时间设计出了这个票务网站的首页效果图。这可以说是我在Photoshop的运用、对色彩的把握和设计创意上发挥得最好的另一次,所设计出来的效果不但我自己满意,程大哥也很满意,而且我认为我的设计比之前万网公司设计人员的设计好多了,如果将我此时设计出来的这个网站首页效果图交给小李总,我想他一定会觉得满意的。在这个设计过程中也体现出了我是个做事认真细心的人,在一些细节问题上我会要求很严格,比如在首页中各元素对齐的问题上,我会将度量单位精确到像素。

我将首页效果图制作成HTML网页后,接下来就是正式的编码工作了。我在VS2003上创建了一个新的VS解决方案,再在其中创建了网站项目及有关的类库项目后,这个票务网站的程序架构就被搭建起来了。接着就可以开始正式的编码工作了。

有了网站首页页面作参考,其他页面就可以在编码的过程中同步设计和制作。这个票务网站的定位是要跟公司网站类似,所以其程序和功能都可以参照公司网站的程序和功能来做。经过我之前对程序代码重组后,此时公司网站程序的源代码全部都有了,但最大的问题却是,公司网站用的是SQL Server 2000数据库,程序中涉及数据增删改等与数据库交互的地方都是用存储过程来实现的,但Access数据库并没有存储过程的功能,所以这些地方统统需要作修改,改为直接用SQL语句来实现。公司网站程序可以说就是与数据库紧密交互的一套程序,所以几乎所有地方都要作修改,这是一项工作量很大的工作,我需要一定的时日才能完成。

从数据库的创建到网站首页的设计和制作,再到正式的编码工作,我下班后回到住处的时间及周末休息的时间又开始忙碌起来了。编码的过程没有太大的难度,但也不是很简单,原来只需一个存储过程就可以实现的事情,此时则需要写成好几个SQL语句,然后再在ASP.NET程序中分开执行各个SQL语句,才能得以实现。尤其是那个票品产品发布功能,原来是在存储过程中用三层嵌套的循环来处理数据的写入的,在ASP.NET程序中只需执行一次此存储过程,就可以实现一场演出的多场次、多票价的数据写入,但此时则需要将存储过程中的三层嵌套循环转换成ASP.NET程序中的三层嵌套循环,以此来执行每一层的SQL语句,这样处理后虽然可以达到同样的结果,但程序执行的效率肯定要差很多,而且数据在写入过程中出错的几率要大很多。当然,执行的效率和出错的几率都是从十分严谨的角度来考虑的,但事实上这样处理后对网站的运行并不会有很大的影响。

选择Access 2000数据库,虽然使我多做了很多工作,但在这个编码的过程中,却使我更深刻地理解了Access 2000和SQL Server 2000两者的异同,从而使我在存储过程的编写和应用方面有了更深的认识,以及获得了更多的ASP.NET程序开发方面的实践经验,更深入地掌握了ASP.NET编程的方法。这些对我来说是很有意义的。

无疑,这次“接单”对我来说是一次新的尝试,这可以让我在网站开发技术的路上尤其是ASP.NET上走得更远。