浅谈如何看懂公司项目代码

     在给粉丝朋友一对一咨询时,经常有粉丝朋友问入职后怎么快速看懂项目代码,感觉项目好复杂,代码量很大,不知道从哪里入手。因此本期分享一下博主的个人见解,仅供参考。

1、获取必要的资料并建立初步印象
    在开始阅读代码前,不是直接打开代码编辑器。而是先向导师或者同事请教,获取一份关于项目的简要介绍,了解该项目有哪些需求、实现了哪些功能、主要是做什么以及分为几个核心模块,把握项目的整体架构;其次,获取一份编译与运行指南,了解如何配置环境,怎么烧录代码运行。但有的时候,公司可能没有全面的项目文档,甚至是以口述的形式告诉你,那这个时候就需要自己去总结出一份详细的配置文档了。

2、找到代码运行起点,理解代码架构
     对于这一步,如果情况允许的话,可以请导师或者同事给你讲解一下项目代码架构,了解清楚代码的整个运行流程。如果没有人可以问的话,就只能自己理了。一般而言,还是先找到main函数入口点,然后理清楚main函数理都做了什么,如弄清楚代码的模块划分和初始化顺序(一般来讲,公司项目代码的main函数注释都会写的比较清楚,因此可以结合注释以及日志打印进行快速理解)。
     在这个过程中,你的主要工作是画一张图,记录下主要的模块和它们大致的依赖关系(比如A模块调用了B模块),并留意那些在初始化过程中出现的、看起来非常重要的全局变量或数据结构。这个阶段不要深入任何一个函数内部去研究细节,你的目标是搞清楚代码的框架。
    多说一点的是如果在多核系统中,可能不止一个main函数。因此要理清楚哪个是主核,哪个是从核,主核如何唤醒从核的,即整个系统的启动流程,至少要了解个大概的系统架构。

3、跟踪一个具体功能,理解代码是如何工作的
     在了解整个代码结构后,需要开始深入一个具体的功能模块进行深层次理解了。毕竟项目代码量很大,由公司多人协同开发,如果想完全搞清楚整个项目的所有细节,任重而道远。因此,前期先专注于自己的一亩三分地就够了。在该阶段,你需要关注自己负责的功能模块由哪些函数所串接起来,深入了解其中细节。

4、实践是检验真理的唯一标准
    阅读代码的最终目的是为了能够修改和贡献。因此,在你对某个部分有了一定了解后,主动向导师申请一个非常明确、且影响范围很小的任务。例如:“修改某个调试信息的文字内容”、“调整某个定时器的超时时间”、“修复一个日志打印不全的小问题”。为了完成这个任务,你必须去精确地找到相关的代码位置,理解它周围的逻辑,明白你的修改会影响到哪些地方。这个过程会迫使你带着明确的目标去阅读和理解代码,效率会非常高。成功完成这个修改并通过测试,会极大地增强你的信心,并证明你对这部分代码的理解是正确的。

遵循以上四个阶段,从外到内,从静态到动态,从观察到实践,你就能系统地、一步步地掌握一个庞大项目代码的核心逻辑。记住,不要试图一次性理解所有代码,每天聚焦弄懂一个小的部分,从不难到一点点难,慢慢过度,让自己始终处于学习的拉伸区!

最后,如果有需要rtos项目(解决个人项目缺乏问题)、嵌入式软件八股文合集(覆盖嵌入式面试百分之90问题),请私信笔者获取。如果有同学对具体的学习路线还是很迷茫,也可以咨询笔者。#嵌入式# #嵌入式软件工程师# #嵌入式软件开发#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务