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

2024-03-14 11:18

本文主要是介绍《当程序员的那些狗日日子》(十五)首次接单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

两个星期后,我已将公司网站类库项目的程序代码全部重组完,当我在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上走得更远。

这篇关于《当程序员的那些狗日日子》(十五)首次接单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/808242

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

【重学 MySQL】十五、过滤数据

【重学 MySQL】十五、过滤数据 基本用法使用`AND`、`OR`和`NOT`使用`IN`操作符使用`BETWEEN`操作符使用`LIKE`操作符使用`IS NULL`和`IS NOT NULL` 在MySQL中,过滤数据主要通过WHERE子句来实现。WHERE子句允许你指定条件来过滤从表中检索出来的行。只有当行满足WHERE子句中的条件时,这些行才会被包含在查询结果中。

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T

黑马程序员---代理

分析代理类的作用与原理及AOP的概念 代理的概念与作用  1.已经写好一个类,现在要为这个类增加一些功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做? 现在我们写一个代理类: 保持了原来那个类的功能,又增加了你现在需要的功能。 主函数调用的时候,直接调用代理类就行了。 这就是代理类的功能。   2.编写一个与目标类具有相同接口的代理类,代理