如果你是一个拥有多年经验的程序员,一定会碰到几十万代码行的项目。如何去理解和读懂这些代码,其实有其技巧。学会这些,你距离项目经理的路会更近一些。
导读
换
过几次工作的程序员一般都比较头疼,新到一个公司,会给你一个项目,别人以前写的,40-50万行代码,并且代码没按照一定的规范去写,因为这个
代码来自N个人,一看代码我就头大,我曾经就做过这样的事情,开始的时候也很抓狂,但是慢慢的我认为我找到里面的窍门了,一下算是我给大家提供的一个思路
吧。(我之前跟的那个项目是 B/S的,所以是针对B/S写的)
1.看操作说明书
目的:这个项目是干什么的?
任
何一个项目都有他要实现的功能,而操作说明书就是告诉你怎么去用它,怎么去操作这些代码,这些代码提供了一个怎样的服务。如果你进到一个比较正规
的公司的话,会有测试的,有些操作你操作不了,可以求助测试人员,以为他们是公司里面最熟悉这些操作的。尽可能熟练的去操作这些功能。
小结:我在做开发的时候,功能比较多,所以只看了一部分功能,原因是我没时间,所以自己在看这部分的时候,如果时间不够,大体上把握即可。
2.看框架
目的:这个项目是什么架构?
任
何一个项目都有自己的架构,自己的模式,自己尽量去看代码结构,有可能你感觉很难,因为代码太多了,所以不要气馁,要给自己心里暗示“自己是可以
的”。小结:如果看不懂也没关系,可以先做下面的,
我之前所看的代码,我根本看不懂,后来很长一段时间,同事告诉我“软件框架”,任何模式都可以很好的进行开发。看的时候肯定会遇到自己没见过的代码,不用
去管它。
3.跟代码【核心】
目的:每个方法是干什么的?先执行那个?在执行那个?
找
一个小的模块,这把片代码彻底看懂。这个时候你需要的就是跟代码了,打断点;如果是B/S的,你可以再加脚本调试debugger。告诉你一个小
窍门:当跟代码的时候,旁边放一张纸,遇到主要的方法,要记下来,从头到尾记下来,等跟完了自己可以拿这张纸进行复述。这样这个功能大概怎么跑的你就记下
了。跟的时候遇到的方法一定要记下来,但是跟的时候一定不要去查,等跟完了在去查。如果是由于自己知识点的原因,应马上彻底补上来。
小结:这个是核心,一般人只是跟不记,等一下自己就不知道自己会那些,不会那些,大概怎么跑的都不知道了。所以一定要记。比如我之前开发全部是用户控件,很抓狂,你根本不知道那个方法先加载,那个页面需要参数,但是你把它画出来了,一点点看下来了,感觉很有意思。
4.画图
目的:如果一个页面有2个用户控件你是需要画图的,这样做可以让你一眼看到页面的布局,防止你下次看代码的时候,找不到那是那。那个页面调用哪个方法最好也写上。当我在拿到这张图的时候我可以复述多少?当你在修BUG的时候可以用这张图。
当你跟完代码之后,你肯定知道哪里是哪里了,这时候你就用纸把这个页面的图片画下来,最好是不看代码画,等画完了,在看代码,看自己是否真的了解逻辑来。
小结:这一步跟第三步可以同时进行。 如果你跟感觉很吃力,可以多跟几次,重复3,4步,一般跟3遍就大概掌握这片代码的逻辑。
我现在面对的问题是:大的代码结构我都能看懂,但是我不知道业务,那就的好好听了,用眼睛用心去听就可以了,没有别的办法了。
以上是本人在看代码的时候一些总结出来的思路,大家谁有好的方案可以那出来一起分享。
原文链接:
http://www.cnblogs.com/muer/archive/2011/05/02/2034448.html
分享到:
相关推荐
在本压缩包中,我们拥有的是一个基于Spark的大数据项目,该项目专注于广告的精准投放。开发者使用了Scala作为编程语言,这得益于Scala与Java的兼容性以及它在处理大规模数据时的强大性能。以下是对这个项目及其组成...
通过这些平台,用户不仅可以获取到丰富的开源项目源码,还能参与到项目开发中去,提升自己的技能水平。 #### CSDN (China Software Developer Network) - **简介**:CSDN 是中国最大的开发者技术社区之一,提供了...
数据挖掘与分析是信息技术领域的重要组成部分,特别是在大数据时代,它为理解和发现隐藏在大量数据中的模式...通过研究这些源代码,你可以更好地理解数据挖掘与分析的工作流程,以及Python在处理这些问题时的强大能力。
大模型通常指的是拥有海量参数的深度学习模型,如谷歌的Transformer、Facebook的MegaBERT或阿里云的Qwen等。这些模型在大规模数据集上训练,具有强大的泛化能力和处理复杂任务的能力。它们在自然语言处理(NLP)、...
9. **性能优化**:大型RPG游戏可能包含海量数据,因此优化代码性能、降低内存占用和提高运行速度是开发中不容忽视的部分。 在实际开发中,开发者可能会选择不同的编程语言(如C++、Unity的C#、Unreal Engine的蓝图...
GitHub上的star数量通常代表了一个项目或代码库的质量和影响力,因此,通过这个列表,用户可以快速找到具有高质量代码实现的论文,节省了他们在海量资源中搜索的时间。 标签 "Python开发-机器学习" 明确指出这个...
Go Walker 是一个用于在线生成并浏览 Go 项目 API 文档及黑客视图的 Web 服务器,目前已支持包括 Bitbucket、GitHub、Google Code、Launchpad 和 Git @ OSC 在内的五大代码托管平台。 主要特性 ...
这些大模型通常拥有海量参数,能处理复杂的任务,如自然语言处理、图像识别、语音识别等。此压缩包可能包含了一系列重要的研究论文,以及对这些理论成果的实践代码,对于研究者和开发者来说是宝贵的资源。 【描述】...
SourceInsight就是这样一款专为程序员设计的代码查看和编辑利器,它以其强大的功能和友好的用户界面,帮助开发者在海量的代码库中快速定位和理解代码逻辑。 SourceInsight的核心特点: 1. **实时语法高亮**:...
该仓库包含了模型的详细文档、示例代码和API说明,方便开发者快速上手并集成到自己的项目中。 总结来说,aiXcoder 7B代码大型语言模型以其强大的代码理解和生成能力,为编程工作带来了革命性的变化,将AI技术与编程...
7. **免费代码与开源**:开源搜索引擎项目如Elasticsearch、Solr和XunSearch提供了强大的搜索功能,并且允许用户自由使用和修改源代码。它们通常拥有活跃的社区支持,便于开发者解决问题和改进功能。 8. **自然语言...
在本压缩包中,我们拥有一系列丰富的C语言源代码实例,涵盖了多个关键领域,旨在帮助程序员深化对C语言的理解并提升编程技能。这些实例按照不同的主题进行了划分,包括基础篇、数据结构篇、数值计算与趣味数学篇、...
Java开源代码是软件开发领域中的一个重要组成部分,它体现了开放源代码的精神,允许开发者查看、使用、修改和分发代码,促进了技术的共享和创新。在Java这个强大的编程语言背景下,开源代码库为开发者提供了丰富的...
【BK2Site书签转换程序源代码】是一个用于管理和转换浏览器书签的开源软件项目。这个程序的核心功能是帮助用户统计、整理和管理他们的在线书签,提供了丰富的自定义选项和安全特性。它允许用户根据自己的需求对书签...
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...
- GitHub是最流行的开源代码托管平台,其内置的Code Search功能允许用户在海量的开源项目中搜索代码。开发者可以通过关键词、文件类型甚至代码片段内容进行精确查找,是获取最新、最流行代码的首选之地。 2. **...
1. **Python爬虫代码**:Python是数据爬取的常用语言,它拥有丰富的库如BeautifulSoup和Scrapy等,可以方便地处理HTML和XML文档,提取所需数据。在这个项目中,开发者可能使用了这些库来解析链家网站的HTML结构,...
万年历源代码(使用JavaScript脚本编写),拥有公历,农历,国内,国外,节假日,纪念日等海量信息......
在压缩包中,"README"文件通常包含了项目的介绍、使用指南和开发者信息,是了解项目的第一步。"glib"可能是一个图形库,它提供了一系列用于创建、操作和分析图形数据结构的函数,这对于处理社会网络非常有用。...