一次代码重构的复盘

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

背景介绍

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

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

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

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

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

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

重构过程

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

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

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

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

总结

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

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

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

目录
相关文章
|
3月前
|
SQL 缓存 安全
一文浅谈CodeReview中的一些思考
CodeReview在日常的开发过程中越来越被重视,它在提高代码质量同时促进团队成员之间的知识共享和技能提升方面发挥了诸多作用,本文将主要围绕CodeReview展开,简单聊聊在CodeReview过程中的心得和思考。
89072 4
|
3月前
|
缓存 前端开发 JavaScript
前端项目重构的一些思考和复盘
前端项目重构的一些思考和复盘
110 1
|
3月前
|
算法 测试技术 持续交付
代码重构:提升软件质量的艺术与实践
代码重构:提升软件质量的艺术与实践
130 0
|
9月前
|
SQL 安全 算法
codeReview
codeReview
104 0
|
安全 Java 测试技术
关于代码评审(CodeReview)那些不得不说的事儿
关于代码评审(CodeReview)那些不得不说的事儿
219 1
关于代码评审(CodeReview)那些不得不说的事儿
|
关系型数据库 MySQL 中间件
|
程序员
程序员如何做好代码重构?
代码重构重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构不是重写,它们的区别你可以理解为,重构是修复代码,大框架不变。重写是扔掉原来的,重新设计框架。
186 0
程序员如何做好代码重构?
|
设计模式 Serverless 领域建模
实战经验 | 怎样才能提升代码质量?
提升代码质量的三个有效方法:领域建模、设计原则、设计模式。
实战经验 | 怎样才能提升代码质量?
|
设计模式 安全 Java
没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚有其表
  与过去 70 年间大多数程序员的做法相比,本章描述的实践有着根本的区别。它们强 制进行大量的分钟级甚至秒级、深刻的、充满仪式感的行为,以至于大多数程序员初次接 触时都会觉得荒唐。于是许多程序员做敏捷时尝试去掉这些实践。然而他们失败了,因为 这些实践才是敏捷的核心。没有测试驱动开发、重构、简单设计及结对编程的敏捷只是虚 有其表,起不到作用。   测试驱动开发是一个足够复杂的话题,需要一整本书才能讲完。本章仅仅是一个概览, 主要讨论使用该实践的理由和动机,而不会在技术方面进行深入的讨论。特别说一下,本 章不会出现任何代码。   程序员是一个独特的职业。我们制造了大量文档,其中包含深奥的技术
147 0
|
Oracle 关系型数据库 数据库
项目小结及难点复盘
项目小结及难点复盘 1、程序总体框架结构 计算程序属于客户端,与服务端建立socket连接并实时获取需要计算的数据。 计算程序结果写入oracle数据库对应的表中,供前台界面读取并显示结果。
182 0