怎么让代码的逻辑更清晰?

来源:互联网 发布:mac微信怎么视频 编辑:程序博客网 时间:2024/05/02 02:35
作者:Meta42
链接:https://www.zhihu.com/question/65888363/answer/236049180
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

楼上有很多朋友说先把游戏做出来再说,也没啥问题。但是。。。

就像收拾屋子一样,有的人不爱收拾,但是总能找到想要的东西,有的人喜欢收拾干净,方便以后忘记什么东西好去做寻找。其实编程一样的,我个人觉得如果你是个人的项目,随便吧,看你自己。但是若团队项目你的代码是否清晰就关系你的假期呀。

<img src="https://pic3.zhimg.com/50/v2-80a6178bf54907379349a907079f9ee2_hd.jpg" data-rawwidth="396" data-rawheight="223" class="content_image" width="396">

比如说你代码写的好,别人能看得懂修改,OK,你请假出去玩了,公司出了事情你就可以叫一下同事帮你修改,只用说“帮我看一下XXX模块的XXX函数,这是做XXX功能用的,这里帮我判断一下XXX”,不然你就得想方设法远程连接电脑,甚至赶回公司解决问题了。

还有就是代码清晰可以提高查错的效率,你代码越清晰查错的时候就越不会被其他代码所混淆,个人觉得还是有所必要。


行,我个人来说干巴巴的,还是举例几个吧。

1.模块化代码

以下是我从blog.csdn.net/u01134488 的调试和查错方法里面节选的,能很好的说明模块化对寻找问题分离概念的好处。

<img src="https://pic2.zhimg.com/50/v2-5a43bff3ae3a02460b0f78a179af7811_hd.gif" data-rawwidth="500" data-rawheight="282" data-thumbnail="https://pic2.zhimg.com/50/v2-5a43bff3ae3a02460b0f78a179af7811_hd.jpg" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/v2-5a43bff3ae3a02460b0f78a179af7811_r.gif">

缺少架构的代码是难以修复bug的主要源头。只要代码易于理解,而且理论上行得通,那么对于程序员来讲,找到并快速修复bug并不是什么棘手的事情。另一方面,越是重要的代码出现错误的几率就越大,找到这个错误相对也就比较困难。

设计软件的组件经常需要考虑一点就是所谓的代码模块化,代码模块化可以帮助程序员更好的用两种方法来理解软件系统。第一,模块化能够创造出一定层次的抽象感,在没有完全理解所有细节的情况下也能想象出系统的模型。比如,程序员正在构建一个商业系统,可能会考虑到信用卡处理模块,然后观察这个模块和其余代码有什么联系,根本不用考虑信用卡处理模块的所有详细内容。第二,模块的详细说明,这个详细说明是不会和别的模块内容混淆的,就像每个卡只有一个卡号是一样的。


2.做一些单例来统一实现重复的代码

我们经常写代码的时候会发现这个代码在某个模块写过,这个时候就可以想想可以不可以把代码封装到一个单例中做调用。这样的好处在下次再遇到重复的问题不用再写一遍,同时如果代码出了错,也可以只修改一个函数就搞定,而不是每个模块去改一遍。

然后你代码会健步如飞

<img src="https://pic4.zhimg.com/50/v2-67129239d5f13e3ce9e0391f4c1c70eb_hd.gif" data-rawwidth="364" data-rawheight="282" data-thumbnail="https://pic4.zhimg.com/50/v2-67129239d5f13e3ce9e0391f4c1c70eb_hd.jpg" class="content_image" width="364">

3.配置化资源

这个和美术资源、游戏的表现相关了。游戏中经常会用代码去处理美术的表现,新手写代码的时候喜欢直接在代码里面写具体的数据,比如做一个攻击表现,播放具体动画到具体3秒结束,然后一个具体名字特效在1秒后到达什么地方,然后2秒后删除,就直接写代码中了。其实可以做一个简单的攻击配置,代码不去关心具体的值,只关心具体的流程。比如还是一个攻击表现就改成,我们有一个攻击的配置,将配置传入攻击函数中。播放XX动画到X秒,播放XX特效再XX秒后删除,如果有其他的攻击表现,就只用修改攻击配置就好了,不用去修改具体的逻辑代码。

这也就是数据和逻辑分离。



代码逻辑结构清晰的好处也在于二次利用,比如你做完一个项目,下个项目要开发相似的新游戏,就可以修改修改这个项目的玩法模块就搞定了~。

当然也可能经常变成这样:

<img src="https://pic4.zhimg.com/50/v2-6f17ee706fd5cee7b232cb6b70f98c67_hd.gif" data-rawwidth="400" data-rawheight="240" data-thumbnail="https://pic4.zhimg.com/50/v2-6f17ee706fd5cee7b232cb6b70f98c67_hd.jpg" class="content_image" width="400">
原创粉丝点击