杏花村开发日记

类别:软件工程 点击:0 评论:0 推荐:

  作者按:这是去年我第一次参加商业开发的经历,闲着没事干的我就把它写成了日记。一直到现在这个项目才可以说是到了尾声。回头看看我的这些日记,仍然有些许感觉,所以特地为原来登在我主页上的这些文字作了注(以红色字体为准),冀以之搏诸位看官一笑尔。

  2003年的11-12月间,我参与设计开发了“山西杏花村汾酒厂股份有限公司技术中心管理信息示范项目”,这也是我生平第一次参与商业开发。以下所记录的,就是我这一个多月以来的经历……

2003.11.2 星期日 晴
  早上起得很早,起来灌水。
  中午没有睡觉,下午上机直犯困。于是心一横,模电重修不去了。
  回寝室用Delphi重写July,刚把界面做出来就已经500多K了,令我很郁闷。Object PASCAL用得很不顺手,搞到6点也没学会使用VCL的Tree View。(我本是个VC的菜鸟,但是要和Delphi相比,VC还算是我的强项。)
  晚上去修马经,整个教室加上老师才十个人。钢笔写了几句就没水儿了(为什么我灌水的时候有用不完的水?),只能找前边的MM借了根自动铅笔,世间最尴尬的事情莫过于此了。如果上天能给我一个再来一次的机会,我要给钢笔灌满水。
  很想用SDK写一个splitter(后来我办到了,见《SDK实现分隔条》《SDK实现分隔条(续)》),看来真得研究TSplitter和CSplitterWnd的源代码了。

2003.11.3 星期一 晴
  今天由于要交重修费,所以头两节课逃了——虽然我知道这不能算什么理由,然而逃课是一定需要借口的,这才能减轻自己的负罪感。跑到财务处一看,通知栏上赫然写着“4号5号收重修费,今天不收”字样。郁闷无极限。
  中午又没有睡觉,于是下午很困,再次毅然决定逃课,反正是VB。看了一部《名侦探柯南》的剧场版《贝克街的亡灵》,真的不错,青山刚昌的确有一手。不过还是没有睡觉。他们下课回来吓唬我点名了,我麻木……
  晚上跑过去做系统组成的实验,做了半天就一个感觉:我连线的水平还是挺纯熟的。够了,我还是当好我的程序员吧。(后来期末考试我这一科挂了,以此看来我今生注定不能成为一个硬件程序员。)
  回寝室后本来打算熬夜补完复变函数的作业(组成挂了,这一科自然也难逃法网。特别要指出的是,组成补考过了,这一科仍然没过。),但是五分钟之后立即被自己推翻,因为相比之下还是睡觉重要。

2003.11.4 星期二 晴
  下了头两节课去交重修费,人山人海。我可以说算是最郁闷的一个了,交钱的时候会计们听说我挂了马经都眉开眼笑,这让我明白了一个道理:以后挂科可千万不能挂冷门的。
  今天本来是要做计算方法上机实验的,但是机房里的人简直可以和交重修费的人相媲美了,所以我选择回寝室上机实验。下午还有汇编的上机,这一天理论上机时间达到了6个小时,堪与标准程序员一拼。(直到后来我客串了一把标准程序员之后,我才认识到6个小时简直就是小意思洒洒水。)
  室友们上机的时候选择了灌水,我也一样。虽然速度很慢,但是玩得很痛快。
  晚上老板对我做的界面进行了肯定,同时要求我使用Delphi 5,看来又有的装了。
  我倒是冒出个想法:如果VCL能出一个C++版本,也许C++ Builder就会成为我的首选了。

2003.11.5 星期三 阴
  闹腾。今天一天纯粹是闹腾。
  Delphi 5在我的机器上安装不成功。
  给老板装Win2K Pro。
  过生日还有人喝多了。(不是我过生日,倘是我就不可能自己走着回来了。)
  ……

2003.11.6 星期四 小雨夹雪,晚间有冰雹
  上午为了装Delphi 5,我重装了3遍系统,包括Win98、WinXP和Win2K,皆不如愿。这个重装过程可以算作对微软产品的一次检阅了。
  去上3、4节课,跑到教室发现饿了,就出去买饼吃。当卖饼的阿姨把饼交到我手里的时候,我看了一眼手机,发现已经上课了,就决定先去图书超市看会儿书,然后去上第4节课。可惜看书上瘾,当想起来的时候第4节课已经开始了,这便成了我最郁闷的逃课经历。
  回寝室又装系统,装了4遍(98 * 2、XP * 2),我几乎崩溃。好在都能用了,今天没有白费功夫。
  晚上下起了冰雹,细小的冰粒还是砸得耳朵生疼,我还是去上课了。不过没有听,原因是为了复习计算方法。晚上又顶着冰雹回了寝室,回来后脑袋上结满了果子。

2003.11.7 星期五 阴
  上午上毛概本来想去好好复习计算方法,没想到讲课的同学(老师懒得讲而让学生讲,岂不咄咄怪事?见怪不怪也。)讲得太生动,导致我聊瘾发作大侃了两节课。
  回寝室后上网灌水,没想到一伙人等我半天了,叫我去爬山。于是去了,冻得不能行。
  下午学生会主席通知我班长开会,我答应了。在和团支书讨论之后达成共识:造反。于是我一觉睡到五点半。
  晚上干了点正事,就是和老板详细探讨了有关软件的信息,他让我三天之内把基本的酿酒名录做出来,我个人认为这没什么难度,主要的难度就在于对SQL一无所知的我练习SQL语句的使用,这一方面是我唯一的关卡。

2003.11.8 星期六 阴
  早上8点钟就起来修改我的软件界面,然后跑出去和合作伙伴交流软件。今天真冷啊。
  SQL不能用,所以我又装了三遍系统。最后到2000的时候终于能用了。我也累了,不打算再重装了,就2000吧。
  明天“疯狂英语”的创始人李阳先生来我校演说,所以系里发动所有班长去领资料,我如约来到系学生办公室,但是人家不让进。妈的,老子不伺候了,扭头就走。其实听与不听是个人自由,我所鄙视的正是这种抓壮丁的做法,怎么着,拿老子当大一的好欺负啊?我不想听就是不想听,即使他是李阳,是名人,只要他不讲我想听的,我就不去。
  晚上又参与了室友生日的酒宴,感觉自己身体的状况在回升。

2003.11.9 星期日 阴,夜间有零星小雪
  今天李阳先生来了,我如愿以偿地没去,并留下一句经典留言:李马来了我都不去,就别说他李羊了。
  又帮老板装系统,很郁闷。老板让我快做,我答应了。
  SQL环境的设置实在让我郁闷了一把,这可怎么才能快做?
  今天的大脑工作一天了,晕~不是在论坛上的晕,是真晕啊。
  任务很紧。

2003.11.10 星期一 阴
  毛概有人逃课!
  这个逃课的人是老师,郁闷!!
  我在教室跟傻子一样坐了一节课。最后忍不住了,开溜之。
  用Delphi操作SQL的确感觉不错,只不过是数据的约束有点强了,尤其是Table、DataSource、DBGrid之间的联系让我觉得有点莫名其妙。
  看了很多书,不过还是了解的不是太多,得加油看,老板催着交工呢。
  华工金虎超市去了一趟,感觉不错,尤其是那两瓶三十年陈酿的青花瓷汾酒。

2003.11.11 星期二 阴
  总的来说今天学会了很多东西,对Delphi中数据库的操作有了更深的了解。但是随着学习的进行,也就发现了自己更多的不足。Delphi中各种数据库组件是有机的结合在一起的,只有对它们有了充分的了解,才能够将它们随心所欲地把玩在手掌之中。
  可以说今天全国酿酒行业名录模块的开发已经要告一段落了,其中的问题也有很多,不过这些东西可以去问老板,只要老板这次能给我讲清楚,那么我想以后的进度将会是飞速的。
  明天下午没有课,我想打篮球。

2003.11.12 星期三 阴
  中午无意之中使用海洋顶端网的ASP木马获得了一些意外的收获,令我实实在在的感觉到了某些免费ASP空间潜在的危险性。不由得打了个冷战,因为我是菜鸟。
  下午去打篮球了,当拖着疲惫的身体回到寝室后,我觉得运动的感觉真好。程序员的本钱一是大脑,二是身体。没有一个好的身体,这个程序员迟早是要垮掉的。
  晚上学会了很多,了解了用SQL语句操作数据库的一些基本方法,我想这以后的进展应该会是更顺利的了。

2003.11.13 星期四 晴
  上午跑出去上了两个小时自习,学会了很多没有必要学会的东西。郁闷。
  中午一觉睡到三点半,而且起来之后浑身没劲,我怀疑自己是不是太缺乏休息了。
  晚上学了学SQL语言,感觉上这东西的确不错,要不为什么那么多人要用它。
  看了采访广外女生小组的记录,对木马有些动摇。现在的想法是寒假回家之后研究研究Win32的核心编程,以及COM技术。

2003.11.14 星期五 阴
  考试一天天的逼近,我也渐渐坦然起来,毕竟自己学的东西已经足以应付之了。
  学校的寒泉BBS新增加了一个用telnet登陆的论坛,乍一看有点像水木清华,我故名之为“水木寒泉”。
  今天干了很多事情,不过就是没有接触到项目本身。毕竟是要考试了,先给自己放放假,省得精神那么紧张。

2003.11.15 星期六 阴
  想起高中同学的一句话:“大考大玩,小考小玩,不考不玩。”明天至少不是不考,所以我今天玩了。
  老板给打来了电话,看来是还想让我开工,不过我的确是明天才考,所以老板嘱咐我好好复习。不错的老板。
  下午想去上重修课,不过那个教室成了考场,郁闷,好不容易想上回课吧,还这样对待我。

2003.11.16 星期日 晴
  今天考试,上午被郁闷了,下午35分钟交了卷。
  老板又是一阵子修改了界面,我觉得有点得不偿失了。
  是不是又要封校了?这是不是以非典为借口来镇压“西安事变”?

2003.11.17 星期一 晴
  今天是终于正式开工了。我发现我明明添加的日期(后来才知道添加日期也得像添加字符串一样加引号,够笨)是当天,但是它添加上去就成了1905年(青岛啤酒?!)。算了,明天问老板吧。

2003.11.18 星期二 白天阴有零星小雨,夜间大雪
  疯狂工作的一天!
  今天一天几乎都是在play games with Tree View,不过好赖是解决了。
  我的界面得到了老板的肯定,如此说来我的工夫没有白费。
  晚上下起了大雪,回来以后满头全是白的,实在是狼狈。真不知道中国的文人们哪来的那么多兴致赏雪。
  哦对,在无雪处赏雪,雪自然值得一赏;倘在雪中,尤其是如是之大雪,便不消赏了——兴致毕竟不是建立在发烧感冒之上的。

2003.11.19 星期三 阴
  在寝室憋了一天没出去,终于把酿酒行业名录的模块搞定了。这以后就方便了,因为很多模块是类似的。

2003.11.20 星期四 晴
  今天又做了很多的开发。TADOQuery有个错误,上CSDN一问原来是Delphi 5的bug,郁闷。
  的确,现在我有点明白面向对象的好处了,以及为什么要尽量利用局部变量了。考虑以下代码段:
  procedure SomeProcedure;
  var
    qry: TADOQuery;
  begin
    qry := TADOQuery.Create(self);
    // 利用这个TADOQuery进行查询……
    qry.Free;
  end;
  OK,这样在使用qry结束之后,这点内存就会被释放。如果换个角度,把qry定义为全局变量,这样撇开代码安全性(全局变量就意味着在什么地方都能更改它)不谈,最起码这个qry在多数时间是不需要使用的,但是它不得不常驻内存,这就造成了浪费。

2003.11.21 星期五 晴
  今天怠工了,什么都没干,只是去打篮球了。
  我没什么错,因为身体是革命的本钱嘛。

2003.11.22 星期六 晴
  早晨9点起来编程,又完成了一个模块。
  晚上据说要考马经,结果被老师放了鸽子。老师说,等系里通知。
  更郁闷的就是当我把那个bug告诉老板之后,老板让我们不再使用TADOQuery + TADOConnection的数据库登录/查询方式,改成使用ODBC的TDatabase + TQuery方式,郁闷。不过还好,做了几个全文替换就搞定了。
  一切技术都不再是问题了,代码狂人李马开始发狂了。

2003.11.23 星期日 晴
  细细数了一下,我现在已经做完了我负责部分的4/13,那么估计12月2号可以交差吧。
  不过必须很快做。

2003.11.24 星期一 晴
  今天逃课被逮,据说老师暴怒。不过我心情异常平静,原因我不大清楚,许是见怪不怪,抑或是早已心如止水。
  明天开始,就开始项目管理的部分了。这之前倒是一切顺利,希望以后也一样。

2003.11.25 星期二 阴,夜间小雨
  收到了老爸的E-mail,感慨万千。
  据说下午上机要点名,所以去了,但是机房压根儿就没给我们安排,所以白跑一趟。
  老板打来电话,说汾酒集团那边催着12月10号交程序,所以叫我快点做。于是中午没去完球,挺羡慕他们的。
  现在已经基本熟悉了数据库的操作,这也就意味着我现在的工作就是代码的堆砌,不但很烦,而且这样的工作是最容易出现错误的,所以现在的阶段是很重要的。

2003.11.26 星期三 雾
  现在我的代码编写到了最后的阶段,老板说让周日交工,看来我得加把劲了。
  我不是神,精力是有限的,所以必须早日结束这种工作。

2003.11.27 星期四 阴
  今天咬着牙把图书管理的部分做得差不多了,虽然依旧是既有代码的copy & paste,但是我总有种不安的感觉,生怕我的代码中出现bug。
  晚上宿舍区停电,直到九点半才来电,很郁闷。
  前阵子临汾据说大地震,今天晚上上课的时候竟然感觉到了震感,不过在太原呆了两年多,都习惯了。
  因为自己多少有了点成就,所以给初中老师写了一封信,感觉挺好的。

2003.11.28 星期五 晴
  中午去玩球了,感觉这才几天没玩啊,身体就不听使唤了,想做什么动作都做不出来了。
  从下午做到晚上,把人员管理的模块做完了,中间放了点水,因为查询模块实在有些冗长,而老板那边催得又紧,我有点忙。

2003.11.29 星期六 阴
  终于,我所有的代码编写工作完成了。算了算,所写的代码一共有一万零六百多行。
  很想松口气歇一歇,因为这些日子太累了,实在是太累了。可是不行,因为编写的工作只是前期,后边还有程序模块的汇总、调试,这些也许都是我一个人做。
  这还并不能算是什么尾声,尾声是指我亲眼看到我的客户接到我的软件的时候。
  呵呵,还要加把劲喽。
  由于编写完毕,所以出去喝酒,得新诗一首《冬夜饮酒》:

  一个冬天的夜里
  我去喝酒了
  甘冽的汾酒流入了我的胃里

  当整个世界开始旋转
  当我胃中的火焰开始翻腾
  当我的思想像野马一样脱缰
  我感到了
  这就是酒精给予我的财富

  深深呼出一口气
  白色的蒸气
  它夹杂着酒精的味道
  像一口锋利的白玉长剑
  斩断我所有的懦弱、愁绪
  以及那种泛滥无用的情感

  人说 借酒消愁愁更愁
  其实我认为
  所谓更愁
  是因为酒醒之后
  不能忘却自己的愁

  而我
  无论喝醉与否
  都是那个我
  那个不以物喜
  不以己悲的我

2003.11.30 星期日 阴
  今天可以说得到了一定的休息,不过晚上老板来验收,提出项目管理模块中有几个Edit得改成Memo。很郁闷,因为我也能猜出来在数据库中操作Memo是很难的。
  我喜欢这样的新东西,不过我不喜欢限时,尤其是这么短的时间。

2003.12.1 星期一 阴
  今天休息。

2003.12.2 星期二 阴
  今天把好几个字段的部分改成了Memo的,不过还算顺利。
  老板又下了命令,让做个登录画面。这个简单,明天一上午搞定,中午又可以玩球了。

2003.12.3 星期三 晴
  早上起来以后就开始忙,忙了半个上午终于完成了,也就如愿以偿的玩了球。
  晚上去合作伙伴那里取来了他的模块,准备程序的汇总。
  报表这东西学会了一部分,其实还是比较简单的。
  又重新把数据库弄了一遍,因为要把两个人的数据库和在一起。

2003.12.4 星期四 阴
  今天最为惊心动魄的事情就是早上的自习了。八点多跑去上自习,出大门口发现所有的小商贩都被学校撵走了。饿着肚子跑了老远,买了一笼包子。回来以后看系统组成,那玩意儿东西太散,死活弄不明白重点是什么,看来我注定不能成为硬件程序员(焉能不挂?)。
  下午本来计划去上汇编,但是(怎么又是“但是”?)为了学习报表输出就放弃了,反正我对汇编语言的领悟能力比较强,应该可以完全自学,所以……不过收获很大,一口气儿把几张报表搞定了。
  晚上上课点名了,不错的收获。

2003.12.5 星期五 阴
  上午完成了最后的报表以及界面的修饰,终于松了一口气。
  中午去玩球,投篮的手感相当好,打得也很兴奋,很久没有过这样的感觉了。
  程序进入了最后的调试阶段,我们这帮程序员在机械工程系的机房里完成了数据的连接和修改,我的模块在进行了几个小bug的修改之后,达到了让我满意的效果。
  回到寝室的时候,已经是深夜十一点半钟了。

2003.12.6 星期六 晴
  我是没有劲儿再写些什么了,因为今天工作了12个小时。

2003.12.7 星期日 晴
  又是一个12小时,11点回来后,为了考试又出去看书看到12点。我有种疲惫的感觉。

2003.12.8 星期一 晴
  最后的一点修饰,晚上找借口没去上班,而是跑出去上自习了,结果没有可以去的地方,就回来了。把系统换成了XP,这才有种大功告成的感觉。

2003.12.9 星期二 阴
  上午完成了对EXE的打包,下午没去上机,把Visual Studio.NET 2003装上了。嗨,做这个系统可是让我的爱姬大伤元气了。
  晚上学会了一点复变函数,看来还得努力。

2003.12.10 星期三 晴
  复习进行中……

后记

  随着软件的上交,我的开发工作也结束了。至于到时候怎么获得报酬,怎么去杏花村交工,这都是软件和代码之外的事情了,所以我觉得继续连载《杏花村开发日记》也就没有什么必要了。
  这一个多月来,我感觉到了生命中除了代码就没有别的了,而且还是纯粹的Object PASCAL代码以及SQL语句。前几天我出现了一个笔误,就是在if的条件中将=误写成了C/C++中的==。突然间,有一种想哭的感觉,无来由的。(看到这里感慨万千,前几天改程序的时候我频繁出现了“!=”、“{}”等错误,每每出现了这样的错误我就会想到我的这篇后记。我想,我也许不单单是一个程序员,而且很可能是一个偏激的对Win32 SDK/C/C++怀有深厚感情的技术偏执狂。代码界这样的人还有很多,然而这种深厚的感情是不为市场现实所容的。)
  我们的开发团队说白了,叫成代码作坊更合适一点。一伙人忽略了软件开发的必要前提——就是可行性分析以及功能的详细设计,而采用了“包产到户”的原则,这样一来后期软件的修改花去了很多时间。(一直改到了现在,这才是最郁闷的。)
  本日记前边的部分,似乎总是在努力阐述我本人学习多么多么差,多么多么不爱学习。事实上我不是什么天才,我只是说我不喜欢学校的功课,也正因为如此我才能够将我所有我可以利用的时间给了我深爱着的程序设计技术。我的成绩,也是通过我不懈的努力换来的,绝对不可能有任何取巧的可能性,这才是我真正想说的。
  别的感想没有什么了倒是,我只觉得我很累,很累。17746行代码,就是我走过的17746个脚印……(现在,也许脚印数已经涨到20000多行了吧,我也再没有统计它的兴趣了……)

李马 2003.12.11 于山西太原

本文地址:http://com.8s8s.com/it/it37225.htm