刚入职应该如何快速阅读公司项目代码呢?

前言

我想作为任何一名程序员都会遇到这个问题,是的,比如我!今年刚跳槽从北京回到了深圳。入职的时候我以为看两三天就会开始给我分配任务。结果第一个星期过去,第二个星期过去,都没没有给我安排任务,每天都是让我自己看项目代码,然后看的不明白的地方去问。

实话说,开始挺慌的,因为其实我更习惯去在做的过程中去理解,光看能看的个啥,实践出真知!哈哈哈哈。但是其实这是错的!磨刀不误砍柴工呀!!,其实前期花时间去理解是很有必要的! 因为在后面我开发的时候,很多东西自己做完之后,带我的导师给我检查,然后发现其实很多东西是项目框架中已经有相应的接口了的。然后试用期的第一个月的评价是符合预期,其中最大的问题就是细节处理不够好,小错误有些,然后项目框架还不够熟希。害其实做好这些我觉得能拿个超出预期的,哈哈哈。但是当时看代码的时候基本是把每一个大的点看明如何用,就没去了解细节了。

那么如何看项目代码呢?


步骤一:项目框架和文档

拉取到项目之后,先整体看看项目的目录结构,如图中可以发现有script的文件夹,remote 的文件夹,这些还是挺重要的,我们的文件肯定不是随意安放的。在我们游戏中,一般我们平常开发的功能分为常驻的和活动开启的。比如大厅,设置界面这些,是会一直存在的,但是一些游戏限时活动,往往是我们开启这一个活动才需要加载这一个 bundle。所以一般会有一个文件夹放常用的,而一些限时开启的放到远程来加载,在这里也就是 gameassets 和 remote 文件夹。

好的项目目录结构,我们能够很快速的定位到每一个模块实现的功能,所以仔细过一遍项目目录,我们能够最快速的建立对项目的一个大致认识。

那么再过来的就是项目的文档的,天呀!能有文档的公司真的非常nice的!那就是项目的说明书的!有说明书,那还不好办~

步骤二:那么肯定是得让项目跑起来啦

真的,每一家公司项目都有自己的方案!有些时候跑起项目都不容易!首先看看是否缺依赖,还是不行的话,大胆的去问同事 吧!

那么接下来就是,从入口开始真的事半功倍呀!我们往往在游戏或者项目打开的时候做很多初始化的处理和启动,那么从这里开始可以了解整个项目的执行流程!

步骤三:核心功能

从上面起,我们就会开始到了解每一个模块的功能和使用,这里我建议自己在记事本中简单记录一下,我们这时候分版块去阅读理解,在游戏中,很多时候我们用到某一个板块,往往只是使用它的一两个接口。那么作为常用的接口我们记录下来它的使用,后面我们用到相应的功能,我们可以直接在我们的笔记中找到相应的内容,同时也是一个标识,方便我们快速的再次定位到我们想要的功能的位置。比如下图是我当时做的一些记录,同时在后面也能继续补充一些容易疏漏的地方。

总的来说,这里就是做拆分模块的处理,把整个项目分解每一个模块,然后逐步的理解每个部分的功能实现,避免手足无措,不知道从何下手,也便于更深入的理解每个功能模块。

步骤四:断点调试

断点调试那也是非常便利的方式去理解,不仅能够在我们想要的地方暂停,能够去看变量以及调用的堆栈等信息。同时,我们也能在我们想要开始的地方断点,然后单步调试,一步步的跟着执行走下去,来看代码的执行。

步骤五:问同事

很多时候一个很简单的问题会困扰我们很久,这时候不要觉得不好意思,首先作为新入职不知道是很正常的,这时候同事也会很乐于回答你的。如果怕老是打扰到别人的话,你可以把你的问题都记录下来,然后找一个看起来别人比较空闲的时候去问。不要害怕问,多去问和交流,因为往往讨论的时候,不仅仅是会解决一个问题,还会带来一些别的扩展,打开思维。

工作中如果不敢说,不敢去找别人帮助,没能解决问题,快速上手,不仅是给你自己带来问题,同时等到那个时候可能还得别人来帮你收拾锅,那才更加麻烦别人。其实在职场,真的需要厚脸皮一点会比较好!

其他个人经验

阅读的过程中,我觉得还得特别注意抽象方法,一般我们基类实现好的,会定义好一些抽象方法,子类需要实现,那么我们就要了解好它的一些调用和实现了。开发中使用这些实现好的,而不是自己经常因为没有留意到这部分而去重新实现了类似的方法。

尝试跟踪数据的变化流动也是不错的方式,查看数据的调用关系,流动方式,也能便于理解功能模块间的关系。

还有的话,我觉得是枚举,在游戏开发中,往往很多通用事件会定义枚举,然后通过发布订阅者模式来通知。比如我们奖励的数据变化,那么我们就需要通知到每一个用到这个数据的视图的地方更新。那么就会有这个通知的枚举。

同时,我不同公司在技术上会有很多不同的,有优点和缺点。我喜欢经常会把公司做的好的地方,留意下来,平时会研究,拆分出来,作为自己的技术框架添砖加瓦,特别在游戏中,一个完善的游戏开发框架非常来之不易的,特别是在实际市场中验证过的,作为技术开发,我想每个人都应该有自己的技术储备,以及一些问题的解决方案。因为业务会变,但是解决问题的方案是能适应市场的。

相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅6 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊6 小时前
jwt介绍
前端
爱敲代码的小鱼6 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax