【步兵 经验篇】代码中的文件夹

    xiaoxiao2021-03-25  72

    【步兵 经验篇】代码中的文件夹 by EOS.

    【新建文件夹】是使用电脑是最常见的操作,可以让我们的方便管理自己的数据、文档或者电影相片。 当我查找的时候就会分层次的进行筛选,在众多的数据文件中,一层一层的找到我们想要的东西。 其实代码也是一样,当代码量特别大的时候,光是找到或者定位到你想要的地方,也可能会变得异常艰难, 特别是好长一段时间不碰,然后出bug再回看代码,那感觉简直太棒了~

    当两件事情具有共同特点的时候,或许我们可以试试用同样方法处理试试,正所谓“以此类推”=、=


    先来个“根目录”

    当然还是用我最熟悉的游戏来举例,稍微复杂点游戏中必然会有很多子系统,可能实现起来是相对独立, 但是我们依然可以把这些功能模块,放到一个“根目录”下。

    local sm = {} --SystemModels function GameScene:init() sm.bag = ... sm.equip = ... sm.mail = ... sm.active = ... sm.rank = ... sm.skill = ... sm.team = ... end

    这样做的好处是什么呢,那就是一览无余,清晰可见,和我们的文件列表格式很相似。 当我们需要进行某些功能操作的时候,就可以“进入子文件夹”,比如:

    sm.team.getKickOutByIndex(idx) if sm.bag.getNumByResId(resId) > needNum then sm.skill.upgradeSkill(skId) end if def.item.getLevel(equip) <= lv and def.item.getProfession(equip) == profeesion then sm.equip.wear(equip) end

    习惯这种方式后,肯能会进一步提高自己的归纳能力,让你的代码管理起来更方便。 或许有一天你想看看自己做了多少个功能模块,那么直接一个pairs print(key)就可以了。 又或许某天来了个新同事,问你这个什么什么功能,写在什么地方,你可以很快的告诉他。 你很快的张口说出”xx.xx.xx.xx就在这个位置”,连想都不用想,代码都不用看一眼。 代码管理也是编程的一部分,让代码更舒服,自己写着也轻松些,何乐而不为呢。


    其他的“文件夹”

    其实能用到这种模式的地方有很多,这其实就和枚举一样,当你把一些东西,罗列归并到一起的时候, 他就已经出现了,只不过刻意一些,可能会更整洁。比如:

    scene.layer.getTopLayer() scene.player.hideOtherPlayers() scene.monster.killAll() scene.tx.clear() player.pt.hp = 0 player.buff.add(buffList) player.show.ChangeFashion(fashion) layer.ui.btn_OK --简单的 layer.ui.label.coins --复杂的 def.layer.addMask() def.layer.actions.FadeInOut = { ["onEnter"] = function... ["onExit"] = function... }

    只是列举了一些,常用的,有没有一些感触呢=、= 上边一些代码涉及到组件模式。不出意外下周会单独补一篇组件模式的。


    不妨试试

    做界面的时候,一般会先解析控件,不妨试试下边的方法:

    local TestLayer = {} function TestLayer:init() --... self.ui = {--先把空间用字符+分隔符的格式表示出来 btn_back = "topPanel/btn_back", btn_go = "bottomPanel/btn_go", label = { title = "...", desc = "...", leftNum = "...", expendNum = "...", levelLimit = "...", } } --然后直接转换为可用的控件,覆盖掉原有字符串 csb.initUIConvert(csb, self.ui) end

    是不是感觉把这些东西都整合到一起看起来特别舒服呢,至于转换函数,也没什么难点, 一个递归+一个for循环再覆盖掉[k]对应的值就可以了。


    总结

    虽然不能说这种方式最好,毕竟万事皆有利弊,比如有的人就是喜欢把所有东西全都丢到桌面上 (ps:我好像得了一种怪病,叫做“晕美术的桌面”),但应该也不差。~ 主要还是思维方式的转变,代码的一个个功能模块当作一个个文件,然后就行归类划分, 我认为还是可行的,用起来也很舒服,喜欢可以试试,说不定格外的适合你~

    See Again~ 之前 真爱无价,欢迎打赏~

    转载请注明原文地址: https://ju.6miu.com/read-37858.html

    最新回复(0)