找回密码
 立即注册
查看: 158|回复: 0

Unity框架设计:做好代码设计的2个原则

[复制链接]
发表于 2022-12-29 10:40 | 显示全部楼层 |阅读模式
前言

很多新手小伙伴在做开发设计的时候,喜欢思考如何设计,能让自己的代码看上去更优雅,而很多老鸟程序员写完代码以后,自然就成为了一个相对比较稳定的设计与成熟的解决方案。这两者对比你会发现,前者明显感觉有点底气不足,后者则是自然而然的产物,作为新手开发者,如何培养自己的问题分析能力和系统设计思维,今天来分享几个实践提升的技巧和方式,帮助大家做好代码设计。
对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!
不要着急动手写代码,先调研用户需求
很多新手领导一个任务以后,第一时间就开始写代码,就开始思考这个代码如何设计?这个是开发者的第一大忌。当我们领到一个任务,或者要设计实现某个系统或模块的时候我们首先要想什么呢?
(1)我们设计的系统与模块是处理什么样问题的?比如我们设计一个2D/3D地图编辑器,我们就的要思考这个地图编辑器我们要解决处理哪些问题?给策划美术做地图编辑,地图数据导出,基于地图数据结构的高效寻路与导航等, 我们要出多少块地图, 出一块地图的效率如何?等,这些就是我们在做设计之前要考虑与调研清楚的。这个过程我们要自己站在用户的角度去分析与思考,像我们的用户调研去收集他们的需求。
(2)我们设计出来的系统与模块给谁用的?是最终用户,还是其它的程序员,还是给其它岗位提供的工具等。我们设计出来的系统与模块要降低用户的使用成本,学习成本,提升效率。设计出来的东西要符合用户的思维需求,而不是符合程序员的思维需求。比如我们设计出来的一个美术工具,美术妹子的思维就是用起来傻瓜,不用太高的学习成本,用的过程中不容易出错。
(3)我们要交付一个什么样的东西给用户,同时像用户做调研, 让用户感受一下我们的设计结果,是不是他想要的,还有哪些改进的点。是不是符合用户的日常工作使用习惯等。比如我们要做一个SDK的支付库,这个支付库里面包含了所有可能的支付,比如支付宝,微信等。那么我们要以何种方式提供给我们的用户,能让他们用起来非常的方便的能把支付功能快速的对接到游戏中。支付SDK的用户可能不是前端的游戏程序员,还有可能是后台的财务结算,还有可能与渠道运营部门进行对接,这些都是要考虑清楚的。
确定好设计一个什么样的系统或模块给用户,确认好用户使用系统模块时的使用方式与流程,做好用户调研,看这样的使用方式和流程是否是他希望的。
功能函数与逻辑流程严格分离
需求端确定了,代码设计自然就会浮出水面了,接口来自于用户的需求调研, 内部功能取决于具体的实现, 把具体的实现分成几个流程来进行处理,形成处理流水线。最后自然就形成了代码设计。
代码实现与设计过程中基于问题真实性提炼代码,而不是过多的抽象。你问开发者一个问题,什么样的代码设计是最好维护的?可能很多开发者都有自己的回答,但随着时间的推移,你越会发现,当你的代码设计与真实的问题处理想近的时候,最容易维护。真实的问题处理能在大家的脑袋里面产生一个共识,基于这个共识组织的代码更容易让大家搞明白,每个代码每个函数是做什么功能的。所以我们写代码,写函数的时候,要把代码与函数分成两大类: 功能处理类与流程组合类。什么叫做做功能处理类,就是这类代码与函数完成某一些具体功能,比如解码图片,比如加密算法等。流程组合类就是描述处理事情具体流程的, 流程去调用功能,比如上传一个图片,step1: 读取图片文件, step2: http post 上传图片文件数据, step3: 结束处理与提示; 流程组合的代码与函数中永远只包含流程的东西,不包含功能的具体实现,功能处理类与函数中只包含功能处理,不包含复杂的流程。
这样维护代码的时候,抓代码流程,能很快的把整个系统设计运行的流程搞清楚,抓具体的功能代码,能定位好代码的性能与优化。
功能代码函数只实现具体的功能,而不做复杂流程,流程组合函数只做流程先后逻辑的组合,不实现具体功能,抓住这条原则你的代码将会优雅很多。
今天的分享就到这里,关注我们可以获得更多游戏开发与设计相关的知识。
更多教学视频
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 00:46 , Processed in 0.089107 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表