前言
有经验的开发者都知道,我们大多数人都是基于别人的框架和系统开发代码,比如基于OS开发应用,基于游戏引擎开发游戏。进入公司后,开发一个业务逻辑也是基于公司的框架代码。正因如此,阅读别人的代码就变得非常重要。
正确的!这里有个游戏开发交流群,聚集了一群热爱学习unity的零基础初学者,也有一些从事unity开发的技术达人。欢迎大家交流学习。
学习阅读代码有什么好处?
1:用好别人的代码可以节省成本,读好代码是用好它的关键。
2:阅读别人的代码游戏开发博客,可以学到很多设计技巧和模式。
我们很多人都喜欢看名人故事像素游戏素材,喜欢听名人访谈游戏开发博客,想通过名人的一些故事来了解一些东西。对于程序员来说,学习大师的开发技巧,不是看大师的博客,也不是看大师的故事,而是看大师写的代码。例如,Linus 是如何设计内核来管理成千上万的设备驱动程序的?我们都可以学习这些想法。在阅读高手写的代码的同时游戏策划,我们可以领悟到很多代码智慧和设计理念。
3:阅读别人的代码,让我们更容易掌握相关知识。
4:阅读别人的代码可以让我们积累很多代码工具模块。
在阅读不同的代码时,我们可以从代码框架中获取编写好的代码模块,并在我们的项目中使用,比如红黑树。我通常使用linux内核红黑树和链表这些经典而高效的数据结构 All from some classic codebase。每当发现好的代码,我都会记录下来,以后在自己的项目框架体系中使用。
如何阅读代码
阅读庞大的代码或者代码库,了解里面的内在逻辑,掌握它们在项目中的使用,不是一件简单的事情,那么如何理解一个代码库呢?
1:代码相关的编程语言一定要过关,代码能清晰的在head中执行。
2:阅读代码时要善于处理整体与部分的关系,首先要建立全局观。
我们在阅读代码的时候,首先是根据函数、模块等,先理清整个逻辑。先梳理好逻辑流程后,再看具体的实现细节,逻辑流程最好通过函数名、模块名等来判断,先了解整体流程。深入代码的细节,不要一开始就深究细节,这样你就没有一个全局的概念。看代码的时候一定要学会用思维导图记录整个过程,边看边理清逻辑。反复理清逻辑后,你会对哪些环节、哪些入口有更清晰的认识,然后再结合数据和打印来验证整个过程。
3:阅读代码首先要找到入口,找出阅读的线索。
4:阅读代码,要学会搜索,从搜索结果中寻找逻辑。
例如,当我们看到一个函数或类时,我们想看看整个东西是如何使用的。通过这个函数,我们可以了解到整个过程。然后我们要遍历它是在哪里定义的,又是在哪里被调用的。这时候,你可以使用搜索的方式来搜索项目中的所有代码。得到搜索结果后,你就会知道它们是在哪里调用的,然后一一分析,一一查看,从中找出其中的逻辑和蛛丝马迹。有时我们的变量被分配给其他人。这个时候我们就需要搜索其他人,那么一个好的代码搜索阅读工具就非常有必要了。我更经常使用 sublime 和 source insight。通常,我将它用于大型项目。两者都使用 source Insight。
5:在开始阅读代码之前一定要具备相关的基础知识。
总之,读好别人的代码,靠的是你的基础、知识体系和耐心。这不是一下子可以改善的。需要在代码阅读中不断总结,多看代码,多积累行业知识。希望大家坚持下去,能不能到系统分析师和架构师的层次去读代码,是一个很重要的分水岭。