初学者怎样看懂代码如何成为代码高手,“初学者怎样看懂代码”

聚客2022-05-28  65

新手如何快速学代码(初学者怎样看懂代码)

今天刚入职一家公司实习,需要熟悉现有的项目代码。因为是第一次接触网上的工程代码,而且代码量超级大,让我应接不暇。想问一下如何快速熟悉代码?

这个问题太真实了,瞬间让我想起了我进第一家公司实习时的“恐惧”。

面对前辈们积累的代码和繁杂的业务流程图,我当时脑子里只有一个念头:我要回家!

然而,随着我阅读和编写的代码越来越多,我感觉我开始新项目的速度越来越快。以下是我的经验:我会如何看待一个新项目?

我认为可以遵循以下步骤:

进入新公司后,如果遇到不负责任的同事,可能会直接把项目地址给你,然后让你自己做研究。就像产品经理直接扔给你一个上线的需求。我不在乎它是如何实现的。

在这种情况下,我们应该做的第一件事是尽可能多地获得有关项目的信息,以帮助我们了解项目。比如项目介绍文档、项目功能描述文档、业务流程图、项目历史迭代、项目架构文档、技术选择背景等等。

如果我是你,我会问我的同事:这个项目的背景是什么?这个项目有文档吗?差不多吧。

但是,有些公司或项目可能过于敏捷。通常他们只做需求,不写文档。逻辑全靠口碑!

没关系,让同事给你介绍项目的业务和技术信息就行了。

刚进公司的时候,一定不要憋着什么问题。你应该多问问题,这样你就可以尽可能多地了解项目代码之外的东西。

技术服务于业务。甚至不知道你的项目是做什么的,有什么功能,为什么要做这个功能。只看代码,想着快速完成需求。最好不要把自己当成临时工,而是项目负责人。

如果我这么说,我一般会先看文件或者让同事给我介绍一下项目的背景,也就是为什么要做这个事情;然后在产品本身(可能是网页或者APP)面前体验项目的功能;最后,关注你要做的业务,你负责的功能模块,了解它的历史和业务逻辑。

整个思路是从整体到局部,从大到小。

为什么我在这里反复强调要了解项目背景?聪明的朋友当然能想到。因为你刚进入一家新公司或者一个新项目,如果你什么都不懂,按别人说的去做,很可能这个项目/职能本身根本没有意义,你只是帮忙收拾一个烂摊子。。。

阅读公司的项目流程其实和阅读开源项目是一样的。基本上一个项目的代码仓库都会有一个README.md文件。

这个文档经常会介绍背景、功能、技术栈、如何启动项目、如何贡献代码等等。

我会先整体扫描文档目录,然后优先考虑项目的技术栈,以及如何启动。

一般GitHub等项目平台会帮你生成文档目录,可以快速跳转。也可以在本地下载文档,用Typora之类的Markdown编辑器打开,这样可以清楚地看到文档的内容。

项目文档目录

因为如果你知道项目中使用的技术,而你又恰好知道如何使用这种技术,你心里就会更有信心,项目的架构也就能大致了解了。您可以稍后轻松地批量处理代码。

比如我在技术栈看到蚂蚁设计Pro,我就用了!我知道这个项目大概率使用了React、Ant Design、Webpack、Dva、海等技术。它的代码结构、配置文件、页面文件以及如何启动几乎都能得到。

蚂蚁设计专业版

比如我平时在GitHub上找开源项目的时候,除了功能,就关注技术栈。如果我可以使用项目文档中提到的所有技术,那么我有信心可以学习和理解这个项目。

所以这就是为什么我们要多学习,多积累一些技术。

顺便问一下,如果作者在文档中没有指定技术栈怎么办?这里有个小技巧,看看项目的依赖管理文件,比如前端的package.json,Java的pom.xml或者build.gradle等。

这个没什么好说的。首先拉下代码,安装依赖项,按照文档运行项目,以便更好的理解和调试项目。

麻烦点可能是环境的设置,比如本地安装MySQL和Nginx代理。然而,现在许多公司将采用开发机器或远程开发环境的模式。直接连接远程库就行了,可以省很多事。也可以问问同事,如何更方便的搭建环境。

终于要看代码了。我建议你遵循两个原则:

从整体到部分:先了解整个项目的目录结构。每个目录是做什么的,比如在哪里写页面?从哪里改变配置?哪里改界面?如何切换环境等。还要知道项目的模块划分,比如哪些代码是用户模块,哪些代码是订单模块。可以通过JetBrains等开发工具自动生成UML类图,以获得更清晰的理解。业务:尽量不要裸读或顺序读代码,要配合系统定位代码。比如读取用户登录函数的后端代码,可以在前端登录一次,然后在浏览器的F12网络请求中找到登录对应的后端请求,然后在代码中全局搜索请求。用户在阅读下单代码时,可以先在前端模拟一次下单操作,了解整个流程,从而更好地理解请求之间的顺序和依赖关系。

最后,最重要的一点是,看的时候不能只看代码。你必须用你的双手来编写、执行和调试它。

必要的时候可以新建一个分支,在这个分支中无论你怎么做都是随心所欲,不会影响正常的在线代码。你可以自己复制代码再次执行,在代码流中添加一些日志帮助你理解数据流过程,或者进行调试。

事实上,当你刚加入一家新公司时,通常不会给你太复杂的工作。基本上就是添加,删除,检查,或者给你一个小页面和功能,帮助你熟悉代码。有时候,即使你不理解整个项目的架构,你也可以通过复制同事已经写好的代码来完成工作。但我建议,为了长远发展,你不要只局限于自己负责的小功能,要多了解系统的上下游和整体架构,提高自己的全局观。

以上是本期的分享。这只是我在这次直播中回答的问题之一。我还总结了其他一些问题,比如:

暑假去Java/前端实习需要了解哪些知识?有必要学习jsp和jQuery吗?如何把CRUD项目更好的写进简历?有什么好的算法或者一些指导视频吗?春招来了,我该怎么准备?开发项目时如何选择前端组件库?

转载请注明原文地址:https://juke.outofmemory.cn/read/175182.html

最新回复(0)