一次代码重构的复盘

简介: h5 游戏前端开发工程师的一次代码重构复盘~

背景介绍

我是做 h5 游戏开发的,目前用到的技术栈是 egret 和 typescript。

之前参与了一个玩法的开发,该玩法主要包括关卡选择,关卡地图中,战斗前的布阵,战斗这四个部分。

其中战斗是走的通用的逻辑,关卡地图主要是地图中的一些事件相关的页面的开发。

原来是我带着一个新同学开发,因为有其他任务,所以我就只参与了关卡选择的一部分和战斗前的布阵这两部分的开发。

我看文档的时候没留意到伙伴数据在整个玩法中都会用到,所以就只处理了我用到的部分,新同学那边的数据处理和我这边割裂开来了,这就导致后面 QA 同学进行测试的时候发现了较多的问题。

加上离某个里程碑的日子比较近,所以就只在原来的代码上进行修改,导致代码的可读性和维护性都比较差,所以就等里程碑之后让策划同学给我提了个重构的单子,对代码进行重构。

重构过程

在玩法的 utils 中对玩法用到的数据进行统一处理,玩法中需要获取和更改伙伴数据的,都统一走 utils 的接口。

utils 中的伙伴数据除了所有伙伴的数据外,还有战斗相关的伙伴的数据和玩法相关的特殊伙伴数据,为了方便数据的管理,所有的伙伴的数据建立了 object 和 array 两种格式的数据,这样想获取某个伙伴的数据的话就可以直接从 object 中拿,array 主要是方便 list 的使用。

将玩法中用到的一些常量抽离到 utils 中,根据其含义和用途放到一个个 object 中,这样后续才不用每个地方都修改。

将之前新同学没定义私有还是公有的函数进行定义,将一些不必要的代码进行抽离或者删减,增强代码的可读性。

总结

在开发前还是得多看一下策划文档和交互文稿,要对整个玩法都有较深的了解,尽量做到在开发前想清楚开发的所有细节,并和其他一起开发的同学讨论下开发的整体思路和哪些需要注意的细节,这样才能减少后续开发过程中重复开发相同功能之类的情况。

code review 和代码规范很重要,这段时间因为比较忙,所以对我带的新同学的代码没有怎么进行 CR,而且项目相对也较新,所以代码规范也比较少,这方面后续需要加强一下。

这篇文章主要还是对这一次代码重构做一个简单的复盘,记录一下自己踩过的坑。end~

目录
相关文章
|
26天前
|
弹性计算 搜索推荐 应用服务中间件
最新版:阿里云服务器收费价格表一年、1个月和1小时费用标准清单
2025年阿里云服务器最新优惠价格表出炉!轻量应用服务器低至38元/年起,ECS云服务器2核2G仅99元/年,4核16G 89元/月,8核32G 160元/月,香港轻量服务器25元/月起,带宽高达200M,不限流量,新老用户同享,续费同价,限时秒杀,性价比极高。
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
9月前
Multisim14.0中文下载安装步骤教程
Multisim14.0是由美国NI公司开发的EDA工具,适用于电路设计与仿真。本文提供详细中文安装步骤:下载安装包后解压,运行安装程序并设置路径,填写用户信息,选择安装位置,接受协议完成安装。随后安装NILicense激活器及中文语言包,最终实现软件汉化与正常运行。附带网盘下载链接,方便国内用户获取资源。
5272 15
|
缓存 Java Maven
关于IDEA创建Maven一直爆红无法下载的问题
关于IDEA创建Maven一直爆红无法下载的问题
582 0
 关于IDEA创建Maven一直爆红无法下载的问题
|
存储 缓存 Linux
在 CentOS 7 上释放磁盘空间的简单方法
【10月更文挑战第28天】
1561 2
在 CentOS 7 上释放磁盘空间的简单方法
|
存储 机器学习/深度学习 传感器
langchain 入门指南 - 实现一个多模态 chatbot
langchain 入门指南 - 实现一个多模态 chatbot
539 0
|
存储 运维 监控
一场67万行代码的应用重构
本文分享了作者对一个架构模糊,拥有67万行代码、46个module的超级应用重构过程中面临的一些问题,还探讨了重构的价值以及技术方案,最后对综合效果进行了分析。
|
Linux 网络安全 Apache
【无需公网IP】在树莓派上搭建Web站点
这非常适合设置您的第一个网站,不仅可以学习管理 wordpress 站点,还可以学习 Linux。您将需要一个树莓派(Raspberry Pi)、几个小时和一台计算机来下载映像。 树莓派(RPI) 是学习这些东西的完美设备。
298 0
|
机器学习/深度学习 人工智能 算法
手把手教你快速实现SIFT特征匹配(含源码)
手把手教你快速实现SIFT特征匹配(含源码)
853 0
|
设计模式 算法 架构师
如何优化你的if-else?来试试“责任树模式”
写业务逻辑时,if-else 可能是最容易想到的逻辑方式了。然而大量堆砌的 if-else 毫无疑问将给代码维护带来巨大的困难。如何优化这些 if-else 呢?本文分享一种设计模式——责任树模式,通过将责任链与策略模式融合,成为一种广义的责任链模式,不仅可以完成任务的逐级委托,也可以在任一级选择不同的下游策略进行处理,并将责任树模式抽象出一个通用的框架。
如何优化你的if-else?来试试“责任树模式”