时间就这么一点一滴的溜走了,转眼间就来到了星期六。
一大清早,小弦子的妈妈小鹿阿姨将他送到我们家,和爸妈寒暄了几句就开车离开了,说六叔叔最近新开发的游戏还有bug,需要多测试。
因为多了一个人,老爹用他的笔记本电脑做演示的时候就显得有些拥挤了,于是将客厅中用来看电影的投影仪拿来用上了,再然后手把手地教小弦子在他自己的笔记本上搭建C开发环境。
一切准备就绪后,课程就开始了。
「因为隔了这么多天,再加上小弦子的加入,所以我先把之前的内容给回顾一遍,有什么问题你们直接问哈。」
于是老爹花了一个多小时的时间就以前的知识回顾了一边,考虑到小弦子还没有写过代码,老爹还带着我们写了几个比较经典的案例,我和小弦子都若有所得。
「好了,在开始我们今天的内容之前,先来看看之前玥玥写的推箱子的程序。」
话音未落,投影仪上已经把我之前写的代码显示出来了。
「这个程序功能已经正常了,照道理来说应该是没有问题。但是……」
听到老爹说出「但是」两个字,我的心脏猛然收缩了一下。
「但是如果我们需要对功能进行扩展,或者是后期的维护就有些不方便了。我知道这么说你们可能觉得难以理解,特别是玥玥心里多半有些不服气。那么我现在用实际的场景来演示给你们看。
咱们首先看控制移动这部分,switch语句对于上下左右按键的逻辑处理部分的代码是不是十分相似?」
经老爹这么一说,我这才发现,原来这部分代码除了移动的方向有所区别外,其他的逻辑几乎完全一样。
「那么听仔细了,如果我们把游戏中人物图片的尺寸由原来的50x50修改为20x20,将会发生什么?」
我瞬间感觉脑瓜子嗡嗡的,看着那一团如乱麻一般的代码,其中至少有数十处用到了图片尺寸参数,我当然可以一处一处的修改,但是得费很大的劲。
「不错,从你们的表情来看,要修改起来是一件比较麻烦的事情,一处一处的修改不是什么问题,问题是要修改的地方太多了,万一漏了怎么办?这种问题还真不好排查!
而且现在的代码量只有这么几十行,那以后你们写的大项目代码可能数万行代码,要是也这么修改的话,我估计能把人给改吐血。」
数万行?听着这个数字我都有些犯晕。
「那这种问题应该怎么办呢?」
老爹抛出了他的疑问。
我和小弦子相互看了对方一眼,然后茫然的看着老爹摇摇头。
「如果我们把这些相似的代码抽离出来,用一个魔法炉子装起来,然后在需要使用这些代码的地方就把炉子放在那儿。当我们需要修改的时候只需要修改炉子里面的内容,使用炉子的地方自然而然的就跟着变化了。如此一来,需要修改的地方始终就只有一处,问题不就解决了那么?」
我和小弦子再次看了对方一眼,脸上都露出了似懂非懂的表情。
本站域名已经更换为m.adouyinxs.com 。请牢记。