第八章 初练之编码


本站公告

    介绍:“远辉服装财务”软件在草草设计之后就开始进入草率的编码阶段,必然遇到一堆的麻烦,让我们认真的分析季宇辉等三人的不足,引以为鉴。纠缠在细节问题上浪费了太多精力,不善于发现问题并解决问题,代码没有规划,没有好的开发框架等等。。。

  经过简单的讨论后,高远要求先做出一个原型。其实高远还不知道原型这个概念,但他模糊中有这样的一个想法,就是做编码开发前把用户操作界面做出来,界面都做好了那么代码开发就有的放矢了,另外,也容易看出前期的讨论哪里不完善。

  灵灵对Delphi的掌握是最熟练的,当仁不让由她来负责软件开发和原型制作,季宇辉边学习边配合灵灵的工作。这个原型就是按照最终用户使用的是一个什么样子的软件作出一个没有后台执行代码的壳子,单单从外表看跟最终的软件产品是一样的。不过远辉工作室的三个人是没有原型制作的经验的,虽然摸索中误打误撞用了一个不错的方法来开始,但是实践中他们就遇到了困难,最主要的问题就是原型没有办法处理业务不同的状态,比如在货物滞销和货物脱销这两种情况下,软件显示给用户的界面应该完全不同,但原型是静态的软件,没有办法表现这些状态。

  灵灵和季宇辉并没有看到这个问题,二人都痴迷于编码,在这种时候除了用编码来解决似乎没有什么好的办法,结果是可想而知的,原型的制作在开始后的两三天便进入了编码阶段。这种尴尬局面就好像让一个花匠去种庄稼,花匠自然不像一个农夫那样精通庄稼把式,当遇到问题的时候他就不知道如何解决了,就会不可避免按照养花的方式去侍弄庄稼。当然,这个花匠是个新手,如果是经验丰富的劳动者,在问题出现的时候他会很快的发现,甚至在问题出现前就发现这个风险,避免冒险尝试。

  不过对于这两个新手,我们就权且抱着宽容的态度允许他们摸索吧。对了,是两个新手,高远在开发的时候仅仅参加了一些讨论,并没有参与到项目中来。高远的性格决定他难以成为一个好的技术人,尽管在智商上,他比大多数人都聪明,但他不太喜欢手工业者的生活和工作方式。高远喜欢自由,让他每天投入十几个小时去工作,他会认为生活质量太过低下了,人就成了工作的奴隶了。这点季宇辉与他是截然不同的,季宇辉也有点看不上他的散漫,总以为高远对于生活的态度不太积极,不过高远的成就却始终在季宇辉之上,这让季宇辉明白了成功的人是清闲的。

  灵灵和季宇辉显然在原型制作的时候没有管理好原型的范围,这点俩人在几天后也发现了。灵灵说“宇辉,这个界面是不是不应该有这么多代码啊?我今天为了实现这个效果,都写了一下午代码了。”

  “是,咱们得控制一下了,开发的冲动总让我写后台的程序。”

  “调整一下,咱们得多多处理前台的界面展示。不过这里有个问题,当有多种状态的时候,不写代码我很难在一个窗口上显示出来各种效果。”

  “我们是不是用一个笨办法----多个状态咱们就做成多个窗口出来,虽然窗口多点儿,但总体工作量反倒会小很多。”

  虽然走了一点弯路,但他们能够很快的发现问题,这是难能可贵的。这要得益于团队的力量,如果是灵灵或季宇辉单独工作的话,尽管对自己写代码制作原型的方式也会有所怀疑,但很可能就会一条道跑到黑了。在软件开发中有一个结对开发工作法,两个人一起工作,发现问题并解决问题的机会要大大高于一个人工作的情况。

  不过情况也并没有好很多,一周后新的问题又出现了,需求的不清晰形成了原型制作的瓶颈。本来他们的需求提取和讨论就很不充分,现在进度终于被需求危机卡住了。但灵灵和季宇辉并没有发现问题的症结,这个问题确实很难发现,因为在模糊意识上,他们是认为已经得到了足够的需求,虽然有些细节难以确定,但小细节被深深的隐藏起来,造成他们误以为是团队技术水平限制了工作进度。

  其实,在项目执行过程中时常会遇到瓶颈的,这些瓶颈很多时候又不是由于某个突出的明显的问题造成的,而是一系列不确定的细节造成了设计者(灵灵和季宇辉当前扮演的其实是设计人员的角色)的无所适从。一个很好的工作方法是把小问题列在纸上,当纸面上密密麻麻的时候,这些小问题就浮出水面,呈现在整个团队面前。然后团队进行头脑风暴,对这些小问题各个击破,当这张纸罗列的问题全部pass的时候,团队成员就会有一种拨开云雾见天日的感觉。不过遗憾的是,远辉工作室的成员显然都还年轻,还没有掌握这样的工作方法。

  仓促的需求分析,仓促的原型制作,然后又仓促的进入了编码阶段。灵灵把原型制作受阻的情况跟高远说了之后,高远也是个二把刀,没有好的办法,三人商量后居然决定先进行编码。

  真正开始编码后,季宇辉越来越感觉自己对delphi的掌握非常不熟练,开发的代码总在他的热切期盼中崩溃,灵灵那里的情况比他也好不到哪儿去,这两位都还是新手啊。莫说delphi这个开发工具的诸多特点,就是对于编程的很多通用性的概念他们也很陌生。

  不过新手的执着是很值得钦佩的,同时新手也并不缺少智商,他们仅仅缺少经验和必要的知识。在摸索中,问题被一个个的解决了,进度也一点点的推进着。两个人在煎熬中也体会着探索的快乐,每个问题的解决都让二人感到欣慰,每个新功能的发现都让他们雀跃。季宇辉的休息时间很少,经常通宵达旦的工作,他认为一个优秀的技术人是应该耐得寂寞的,也是应该学会以自己编写的代码来奖励自己的,除了自己的工作成果,其他的东西都不足以让季宇辉更开心。

  孙建武打算五一用上这套系统,但进度显然要推后了。虽然主要功能已经实现,但经过测试和试用后,发现还有不少问题。高远跟孙建武做了解释,说需求还有一些细节需要确认,并表示尽快完善软件,抓紧时间上线。孙建武本来对于软件不是很懂,跟这些学生一直以来又处得很融洽,便没有说太多,只是要求尽快上线。

  远辉工作室召开了少有的项目会议,就“服装财务软件”项目遇到的问题展开讨论。这个碰头会已经推迟了1个多月了,本来应该在原型制作后期进行的。这时候,三个人一讨论,发现了一堆的问题点,集中表现在对于需求细节的困惑上。经过讨论,高远拿到了一个表单,密密麻麻列了几十条细节问题。当天高远就跑去跟孙建武做了确认,回来后,灵灵和季宇辉开始就各问题进行修改。

  五一放了三天假,季宇辉几乎没有休息,不是在宿舍就是在7号楼。最近季宇辉根据高远带回来的新需求进行代码修改,这一修改可要了季宇辉和灵灵的命了,之前写的代码都是一边学一边写,经常是事件处理方法、业务逻辑代码、数据库操作代码搅和在一起写的,混乱的不得了,自己都有点儿读不懂;还有的类似功能的代码在不同窗口中写了好多遍,一个问题的修改造成多处代码的修改;另外有些代码封装成函数后,居然业务出现了分支,函数不再适用,要分开成几个函数来实现;甚至有些代码的业务逻辑过于复杂,在一个函数里面连绵不断的写了几百行。这让季宇辉深感厌烦,编码再也不是一件美好的事情,而是一件看似简单,却非常繁琐的工作。这工作就好像是梳理一团乱麻,说简单就是找到线头,然后慢慢拽出来,说复杂就复杂到极点,工作重复而且繁琐,简直是不可能任务。

  假期的最后一天,季宇辉和灵灵在7号楼工作了一个下午,这段时间俩人的合作非常愉快,季宇辉对于灵灵也能够应付如此大的工作量而深感钦佩。放了三天假,俩人把大部分问题都改的差不多了,这让俩人感到一些安慰。编码的时候,时间就好像刀子一样快,一下午就匆匆从指尖溜走了。季宇辉看看快7点了,对灵灵说“你饿了嘛?咱们出去吃点东西吧,犒劳一下自己。这段时间太累了。”

  “嗯,好啊,做完这点儿。我也累了,晚上喝酒放松一下。”

  俩人找了一个安静的饭店,点了几个菜,还要了啤酒。喝着酒吃着菜聊着天,享受着久违的安逸。

  “灵灵,你觉得Delphi怎么样?好用嘛?”

  “挺别扭的,掌握的还是不太娴熟。”

  “很多地方都觉得别扭,虽然说在通用界面开发上,delphi的开发效率非常高,但只要有个性化的要求,需要进行界面开发,就感觉特别扭。”

  宇辉想了想“还是对windows的开发模式不了解,这方面如果能够与sdk相结合来应用就会方便的多。虽然在技术上咱俩遇到了很多困难,但我感觉最大的困难是缺少好的工作方法,咱们的经验太少了,抓不住主要矛盾,问题多的时候总不知道应该如何突破出去。”

  “是啊。还是高远舒服,天天玩儿游戏。”

  “呵呵,他就不喜欢编程,别强求他了。高远对自己的定位就不是做个技术人,他就是做老板的料。做开发太累了,说出来你都不信,有天晚上我干到2点的时候,有个问题我怎么也解决不了,已经搞了3小时了。我突然感到一阵悲凉,我觉得自己特委屈,甚至有点儿想哭。做开发就要耐得住寂寞。”

  灵灵呵呵一笑“别想那些了,今天咱俩好好喝一顿,姐姐我陪你。”灵灵属于比较乐观的女孩儿,在任何情况下都保持微笑,其实她内心挺细腻的,很多事情都深深的藏着。

  跟女孩子喝酒总不可能喝的太尽兴,俩人随便唠着,喝了两瓶啤酒就散了。58xs8.com