一对一小课堂
    李余回到宿舍躺在床上时,还觉得自己的脑袋有点胀。

    舍友们还在闲聊,她打开枕边的电脑,一翻身,下巴抵在枕头上,趴着看消息。

    钟步青把之前画好的表发了过来,也把代码传了上去——

    临走前她教了李余 git 的基本作用和流程,说以后写完代码可以直接传到 GitHub 上,也可以看到她传的代码。

    现在还好,将来如果写大型的项目这样统一管理很有必要。

    ——————————

    “UML表主要是用来写清楚继承关系和互动逻辑的,你可以把它理解成咱们开始写之前的计划图。”

    之前在空教室,钟步青从继承关系开始给李余讲起。

    她一开始是在平板上写写画画地讲,讲着讲着可能觉得不尽兴,拉着李余往教室前排走去。

    她把李余按在第一排,拿起粉笔就开写。

    李余觉得她真像个老师,实际上,她比大部分老师都讲得好,毕竟她没有陈年幻灯片可以照着念。

    钟步青怕自己讲得太快,时不时停下来问她有没有理解,有时还会设一两个小问题看她有没有理解。

    李余看着对面的人笑盈盈地等着她的回答,无意识地摸了两下自己的手腕,跟着一起思考。

    钟步青的手全是粉笔灰,她有时候拍手想把它们打落,遗留的粉末挂在皮肤表面纹理的缝隙上,像是被抹匀的白色薄膜。

    有时候她讲到一半写错了,也不拿黑板擦,直接蜷起手掌用小鱼际的侧面胡乱抹几下。

    连带着她袖口都沾上了粉笔灰,几抹白在黑色卫衣上显得格外显眼。

    她也不在意,一直兴致高昂地在讲。

    李余很少像这样长时间注视一个人。

    钟步青的眼睛不算大,但很亮,很有精气神。

    她有时候会手舞足蹈地比划,连带着她细碎的短发四处甩动,试图更清楚地演示思路,仿佛在讲一个不为人所知的稀奇故事。

    她讲的时候一直笑眯眯的,但给人的第一感觉不是高兴——更多的是自信,对自己所掌握的知识的自信。

    钟步青不只是在讲知识点,她很喜欢讲动机,为什么这么设计,为什么这样有用。

    她也会讲一些自己的心得,有不少总结性发言,以及各种冷门小知识。

    “据说最开始设计语言时,那群人觉得定义一个结构后直接创造它的实例会很酷,就像这样——”

    struct pair {

    int a;

    int b;

    } p1, p2;

    “相当于就是你先定义了pair这个结构,然后创造了p1,p2这两个类型是pair的实例,而不用另外单独再去写 ''''struct pair p1;'''',方便吧?”

    "但实际上很少有人这么做,毕竟咱们大部分情况下结构的定义都是单独拎出来写的。"

    “这就是为什么定义结构的时候末尾一定要加分号。”

    李余不知道钟步青从哪里听来的起源小知识,但钟步青讲着,她就听着。

    钟步青一口气讲了三个多小时,她就一口气听了三个多小时。

    “哎哟对不起,我这一讲起来都忘了时间了。”

    李余听到钟步青的道歉,后知后觉地发现钟步青的独特之处——

    她真的很热爱在学的东西,热爱到忍不住把它当作宝物去分享。

    ...跟自己真不一样。

    ——————————

    舍友们陆陆续续要去洗漱,李余对着UML表,一点点地去翻钟步青写的代码。

    她想起钟步青的一段总结。

    “我觉得学 OOP 最重要的是去思考设计,为什么别人这么去设计,为什么经典的设计模式是这样的,甚至于,为什么我们要关心这些。”

    “重要的是讲究一个‘可持续发展’,不光是现在你想去实现的功能,同样重要的是如果你将来想加一些新的东西,能不能在不改动以前代码的基础上搞定。”

    “就比如咱们写的这个游戏,你将来想加个新的怪;或者咱们现在展示出来的还是字符跟色块,你将来想改成更高级的贴图之类的。”

    “这就是为什么管它叫 OOP,面对对象嘛,就是尽可能把你的每个类都封装好,让它们尽可能独立,互动也尽可能减少依赖。

    这样才能像拼图一样,想加什么直接往上面垒。”

    “这里面还有个能见度的问题,谁能看到你里面的函数跟内嵌的结构,谁不能;

    谁能改变你的数据,谁不能。”

    ......

    钟步青之前说没有时间实现额外的功能,但实际上在规划的时候预留出了很多拓展的余地。

本章未完,请点击下一页继续阅读>>