查看原文
其他

3分钟,教你快速熟悉新项目!

程序喵大人 程序喵大人 2022-08-22

如何快速熟悉一个对你来说完全陌生的项目?这可能是很多人都会遇到的难题。但如果掌握了方法论,它也可以是一道加分题。


最近有位粉丝朋友也遇到了同样的问题,寻求我的意见,其实我和大家一样,走了不少弯路。痛定思痛,程序喵总结了下自己之前熟悉新项目的心路历程,尝试着“在巨人的肩膀上”总结出一套方法论,希望对大家有帮助!


01


业 务 理 解


不 要 一 上 来 就 看 代 码!


CSDN上,关于“程序员 业务理解 重要”的搜索结果有20页,洋洋洒洒,有老程序员的踌躇,也有新程序员的困惑。


了解一个项目,首先要了解其业务,很多技术人(尤其是小年轻)都专注于编程技术的学习与沉淀,却忽略了对业务的理解。


事实上,技术无论多么高超终究还是为业务服务的,很多公司(不乏阿里这种大公司)在面试候选人时,也会重点考察面试者对业务的理解。不同的行业,不同的公司,业务逻辑也不一样,高级工程师不仅技术NB,也更懂得怎么用技术驱动业务。


那么你要问了,啥是业务理解?


我建议大家可以从寻找下面这些问题的答案入手,如果你搞懂了80%,你也就明白了业务的意义。



  1. 这个项目是做什么的?谁是我们的用户?和同类项目比,我们有哪些差异或优势?
  2. 项目的负责人是谁?项目的参与者都有谁?项目的上下游都有哪些?是公司的其它部门还是外部用户?尝试找到熟悉项目的人,等自己遇到问题的时候就可以抓到人去请教。
  3. 尝试着了解项目的主要功能都有什么?
  4. 项目的遗留问题,目前面临的问题,以及将来的规划。只有了解了项目的相关业务,了解的项目的整体流程,对整体有所把握,之后看代码时才会有方向。

Tips:

可以先向熟悉项目的人请教业务流程,熟悉项目相关的所有资料:产品功能架构图,业务流程图,功能图,用例图,需求文档,设计文档,运营手册等。




02


技 术 学 习


了解完项目的整体流程,就可以开始看代码啦!




  1. 了解项目的编译环境和运行环境。
  2. 找到项目的架构图,了解项目的子系统和子模块,以及它们之间的关系。
  3. 根据运行效果和项目的架构图,在代码中找到每个效果、每个子系统在代码中的对应位置。
  4. 弄清楚项目的关键输入和输出都有什么?
  5. 项目有哪些配置文件,都是什么格式?
  6. 项目有没有接入第三方SDK,接入的第三方SDK提供了什么能力。
  7. 项目使用了什么框架,什么中间件,什么工具包。





03


实践强化


当我们熟悉了项目相关的业务,项目的主要流程,并了解了项目相关功能的代码后,可以尝试着去实践强化。以一个小需求做为切入点,这个需求可以是产品提出的需求,也可以是自己提的需求,如有没有小bug可以修,或是代码中有没有可以优化的代码,重构一些有缺陷的代码,把这些作为切入点,自己动手编码,调试,测试和发布,让自己对项目更加熟悉,实践出真知,个人认为只看代码不如多动手实践。

04


多思考


熟悉了代码后,我们不妨多做一些思考,

项目架构为什么这么设计?

为什么要接入这个SDK?

为什么要用这个中间件?

项目目前有哪些坑?

项目有没有些可以优化的地方?

这些思考不仅可以帮助我们加深对项目和业务的理解,同时也有助于提高架构能力。

总结

业务理解+技术学习+时间强化+多思考


参考资料

https://zhuanlan.zhihu.com/p/135411056
https://blog.csdn.net/CLG_CSDN/article/details/99713903
https://www.reddit.com/r/learnprogramming/comments/2x4nq8/how_to_get_familiar_with_an_existing_project_from/



往期推荐

01

他来了,他来了,C++17新特性精华都在这了


02

一文让你搞懂设计模式


03

C++11新特性,所有知识点都在这了!


04

Linux如何调试内存泄露



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存