一次代码重构的复盘

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

背景介绍

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

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

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

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

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

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

重构过程

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

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

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

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

总结

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

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

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

目录
相关文章
|
人工智能 自然语言处理 安全
如何提升代码质量,重构并非“万能药”
随着编程技术的不断进步,编程语言变得越来越高级,功能封装也越来越完善。各种技术都在帮助程序员提高编写代码的效率。通过层层封装,程序员似乎不需要了解技术细节,只需逐行翻译需求内容即可。 许多程序员不了解如何组织代码、提升运行效率以及底层基于的原理是什么,但是他们编写的代码通过了编译、测试,并且在上线运行了一个月而没有出现问题,似乎并没有对他们的实际工作产生明显的负面影响。
|
5月前
|
测试技术
codereview开发问题之CodeReview关注代码的测试覆盖率问题如何解决
codereview开发问题之CodeReview关注代码的测试覆盖率问题如何解决
|
7月前
|
SQL 缓存 安全
一文浅谈CodeReview中的一些思考
CodeReview在日常的开发过程中越来越被重视,它在提高代码质量同时促进团队成员之间的知识共享和技能提升方面发挥了诸多作用,本文将主要围绕CodeReview展开,简单聊聊在CodeReview过程中的心得和思考。
89089 4
|
7月前
|
缓存 前端开发 JavaScript
前端项目重构的一些思考和复盘
前端项目重构的一些思考和复盘
157 1
|
7月前
|
算法 测试技术 持续交付
代码重构:提升软件质量的艺术与实践
代码重构:提升软件质量的艺术与实践
213 0
|
SQL 安全 算法
codeReview
codeReview
129 0
|
关系型数据库 MySQL 中间件
|
程序员
程序员如何做好代码重构?
代码重构重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构不是重写,它们的区别你可以理解为,重构是修复代码,大框架不变。重写是扔掉原来的,重新设计框架。
218 0
程序员如何做好代码重构?
|
测试技术
软件测试面试题:复杂的软件缺陷生命周期?
软件测试面试题:复杂的软件缺陷生命周期?
83 0
|
设计模式 Serverless 领域建模
实战经验 | 怎样才能提升代码质量?
提升代码质量的三个有效方法:领域建模、设计原则、设计模式。
实战经验 | 怎样才能提升代码质量?