如何看懂源代码--(分析源代码方法)

合集下载

java源码阅读技巧

java源码阅读技巧

java源码阅读技巧
阅读Java源码是每个Java程序员都应该具备的重要技能,以
下是一些阅读Java源码的技巧:
1. 理清目的,在阅读Java源码之前,首先要明确自己的阅读
目的是什么,是为了理解某个特定功能的实现,还是为了学习优秀
的编程实践和设计模式。

2. 选择合适的版本,Java的版本更新很快,不同版本的源码
可能会有一些差异,因此要根据自己的需要选择合适的版本进行阅读。

3. 从入口开始,通常情况下,阅读Java源码应该从入口开始,比如某个类或者某个方法,然后根据需要逐步深入。

4. 注重关键类和方法,Java源码非常庞大,不可能一下子全
部理解,因此要有选择地关注一些关键的类和方法,比如常用的集
合类、IO类等。

5. 结合文档,阅读Java源码时,要结合官方文档,了解每个
类和方法的作用和用法,这样能更好地理解源码的含义。

6. 调试和实践,阅读Java源码不仅仅是 passively reading,更重要的是要结合自己的实际项目进行调试和实践,这样能更深入
地理解源码的运行逻辑和细节。

7. 查阅其他资料,有时候Java源码本身并不能完全解答你的
疑惑,这时候可以查阅一些权威的书籍或者网络资料,加深自己的
理解。

总的来说,阅读Java源码需要耐心和细心,要有一颗渴望探索
的心态,同时要善于总结和归纳,不断地积累经验和知识。

希望以
上技巧对你有所帮助。

如何看懂源代码

如何看懂源代码

如何看懂源代码我们在写程式时,有不少时间都是在看别人的代码。

例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。

六个章节:( 1 )读懂程式码,使心法皆为我所用。

( 2 )摸清架构,便可轻松掌握全貌。

( 3 )优质工具在手,读懂程式非难事。

( 4 )望文生义,进而推敲组件的作用。

( 5 )找到程式入口,再由上而下抽丝剥茧。

( 6 )阅读的乐趣,透过程式码认识作者。

阅读他人的程式码(1 )---读懂程式码,使心法皆为我所用程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。

许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。

但是,与其抗拒接收别人的程式码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。

对大多数的程式人来说,撰写程式码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程式码为畏途。

许多人宁可自己重新写过一遍程式码,也不愿意接收别人的程式码,进而修正错误,维护它们,甚至加强功能。

这其中的关键究竟在何处呢?若是一语道破,其实也很简单,程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。

许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。

这是来自于人类内心深处对于陌生事物的原始恐惧。

读懂别人写的程式码,让你收获满满不过,基于许多现实的原因,程式人时常受迫要去接收别人的程式码。

例如,同事离职了,必须接手他遗留下来的工作,也有可能你是刚进部门的菜鸟,而同事经验值够了,升级了,风水轮流转,一代菜鸟换菜鸟。

甚至,你的公司所承接的专案,必须接手或是整合客户前一个厂商所遗留下来的系统,你们手上只有那套系统的原始码(运气好时,还有数量不等的文件)。

诸如此类的故事,其实时常在程式人身边或身上持续上演着。

许多程式人都将接手他人的程式码,当做一件悲惨的事情。

读懂IL代码就这么简单(一)

读懂IL代码就这么简单(一)

读懂IL代码就这么简单(⼀)⼀前⾔ 感谢 @冰麟轻武指出⽂章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初⼀看完全不知所云,只听⾼⼿们说,了解IL代码你能更加清楚的知道你的代码是如何运⾏相互调⽤的,此⾔⼀出不明觉厉。

然后开始接触IL,了解了⼀段时后才发现原来读懂IL代码并不难。

进⼊正题1.1 什么是IL IL是.NET框架中中间语⾔(Intermediate Language)的缩写。

使⽤.NET框架提供的可以直接将源程序编译为.exe或.dll⽂件,但此时编译出来的程序代码并不是CPU能直接执⾏的机器代码,⽽是⼀种中间语⾔IL(Intermediate Language)的代码(来源百度)1.2 为什么要了解IL 在很多时候不明⽩代码是如何操作时就可以通过IL指令来解释,⽐如,装箱,拆箱是否只是听别⼈说或者书上讲是怎么怎么实现的,⾃⼰是否证实过呢?了解IL指令你可清楚看到是每⼀步是如何处理的1.3 怎么学IL 世上有个定律叫“⼆⼋定律” ,80%的功能,只要⽤20%的技术就可以完成,但要完成另外20%可能就需要80%技术了,对于IL代码也是如此,有200多个指令,我们只需要⽤到其20%的指令就可以解决我们80%的问题了,所以我不会写太多,只是让⼤家能看懂普通的程序代码编译成IL代码后就⾏了,还有就是要多看,IL代码的每⼀条指令都是特定的意思,看得多了⾃然就懂了,当对⾃⼰代码有疑问时尝试看看它对应的IL代码,也许你会了解得更多。

IL指令⼤全IL代码编译器 ILDasm⼆如何查看IL代码 2.1 步骤 1 编写代码并编译通过 2 找到源⽂件的obj⽂件下的 .exe⽂件3 导⼊到ILDasm中反编译成IL代码上图1 -2步 3 导⼊到ILDasm中 ILDasm中图标含义三如何读IL(⼤致了解) 以上步骤完成后我们就可以看到代码被编译后的IL代码,以下部份将会对每⼀条IL指令做详细的解释C#代码1static void Main(string[] args)2 {3int i = 1;4int j = 2;5int k = 3;6 Console.WriteLine(i+j+k);7 }IL代码// Call Stack是⼀个栈,⽽Call Stack中的Record Frame则是⼀个局部变量列表,⽤于存储 .locals init (int32 V_0,int32 V_1,int32 V_2)初始化后的参数 V_0,V_1,V_2因图中没有把Record Frame 标记出来,所以⾃⼰画了⼀张图// Evaluation Stack 是⼀个栈 ldc.i4.2 这种指令都会先把值压⼊栈中等待操作在第四段时⼤家可以理解得更清楚⼀点另外@ 指出IL指令中第 9 11 13⾏容易让⼈误解值是从Record Frame中加载的现强调IL指令中第 9 11 13⾏的ldc.i4.1,ldc.i4.2,ldc.i4.3 执⾏这⼏条指令时值是还没有加载到Record Frame中的,但是MSDN也没有指出从哪⾥加载所以只能根据个⼈的想法解释,程序在编译后值类型数据会存在线程栈中,所以我认为此时的9 11 13⾏的值是从线程栈中取的1 .method private hidebysig static void Main(string[] args) cil managed2 {3 .entrypoint //程序⼊⼝4// Code size 19 (0x13)5 .maxstack 3//定义函数代码所⽤堆栈的最⼤深度,也指Evaluation Stackk中最多能同时存在3个值6//以下我们把它看做是完成代码中的初始化7 .locals init (int32 V_0,int32 V_1,int32 V_2) //定义 int 类型参数 V_0,V_1,V_2 (此时已经把V_0,V_1,V_2存⼊了Call Stack中的Record Frame中)8 IL_0000: nop //即No Operation 没有任何操作,我们也不⽤管它9 IL_0001: ldc.i4.1//加载第⼀个变量"i"的值 (压⼊Evaluation Stack中)10 IL_0002: stloc.0//从栈中把"i"的值弹出并赋值给Record Frame中第0个位置(V_0) 11 IL_0003: ldc.i4.2//加载第⼆个变量"j"的值 (压⼊Evaluation Stack中) 12 IL_0004: stloc.1//从栈中把"j"的值弹出并赋值给Record Frame中第1个位置(V_1)13 IL_0005: ldc.i4.3//加载第三个变量"k"的值 (压⼊Evaluation Stack中)14 IL_0006: stloc.2//从栈中把 "k"的值弹出并赋值给Record Frame中第2个位置(V_2)1516//上⾯代码初始化完成后要开始输出了,所以要把数据从Record Frame中取出1718 IL_0007: ldloc.0//取Record Frame中位置为0的元素(V_0)的值("i"的值)并压⼊栈中 (相当于Copy⼀份值Call Stack中V_0的值。

.net源码解析

.net源码解析

.net源码解析在.NET中,源代码解析是一种重要的技术,用于理解、分析和修改程序的内部逻辑。

下面是一些解析.NET源代码的基本步骤:1.安装开发环境: 安装适用于.NET开发的集成开发环境(IDE),例如Visual Studio或Visual Studio Code。

这些工具可以提供代码编辑、编译、调试等功能。

2.获取源代码: 可以从GitHub、NuGet、开源项目网站等渠道获取.NET源代码。

也可以直接从自己的项目中获取源代码。

3.了解代码结构: 阅读并理解代码的组织结构。

通常,源代码会被组织成不同的文件,例如包含类型定义的.cs文件、包含资源或字符串的.resx文件等。

4.解析类和对象: .NET是面向对象的编程语言,因此需要理解如何解析类和对象。

每个类都有属性、方法、事件等成员,可以通过这些成员理解类的行为和功能。

5.分析方法和逻辑: 分析方法如何被调用、方法的参数是什么、方法的返回值是什么,以及方法的内部逻辑。

这可以帮助理解整个程序是如何运行的。

6.使用调试器: 使用IDE的调试器可以帮助理解代码的执行流程。

设置断点、单步执行、查看变量值等操作可以帮助理解代码的执行过程。

7.阅读文档和注释: 源代码中的注释和文档可以帮助理解代码的意图和功能。

此外,还可以查阅.NET的官方文档以获取更深入的理解。

8.使用静态分析工具: 有一些工具可以帮助自动分析代码,例如Roslyn分析器、SonarQube等。

这些工具可以提供关于代码质量、潜在错误等方面的反馈。

9.修改和重构: 在理解源代码的基础上,可以进行修改或重构以提高代码质量、修复错误或增加新功能。

10.测试: 对修改后的代码进行测试,确保没有引入新的问题或破坏原有的功能。

解析.NET源码是一个不断学习和探索的过程,需要耐心和深入的理解。

通过不断地实践,可以提高自己的编程技能和理解能力。

检查代码的方法

检查代码的方法

检查代码的方法全文共四篇示例,供读者参考第一篇示例:在软件开发过程中,代码检查是非常重要的环节。

它可以帮助开发人员发现潜在的bug和错误,并且提升代码质量。

本文将介绍一些常用的检查代码的方法,帮助开发人员更好地进行代码检查。

一、代码审查代码审查是最常用的一种检查代码的方法。

一般情况下,代码审查包括两种形式:静态代码审查和动态代码审查。

静态代码审查是通过检查源代码或编译后的代码进行审查。

它可以发现一些潜在的bug和编码风格问题。

常用的静态代码审查工具包括Lint、PMD、Checkstyle等。

动态代码审查是通过运行程序来检查代码的质量。

可以使用断点调试工具来检查代码的执行过程,查看变量的值是否正确、程序的执行路径是否正确等。

二、单元测试单元测试是一种非常有效的代码检查方法。

通过编写单元测试用例,可以测试代码的各个功能模块是否正常工作。

如果单元测试用例都通过了,那么说明代码的质量较高。

在编写单元测试用例时,需要考虑尽可能多的测试场景,包括正常情况和异常情况下的处理逻辑。

可以使用Mock框架来模拟一些外部依赖,从而使测试更加容易。

代码走查是一种通过团队协作来检查代码的方法。

一般在代码走查会有一个专门的评审小组,由团队成员轮流担任Leader,负责主持代码走查的过程。

在代码走查中,团队成员可以提出自己的看法和建议,帮助发现代码中的问题。

这种方法可以增强团队之间的沟通和合作,提升整个团队的代码质量。

四、代码规范检查代码规范检查是一种通过检查代码是否符合编码规范来评估代码质量的方法。

编码规范是一种统一的编码风格,可以帮助开发人员编写易读、易维护的代码。

在进行代码规范检查时,可以使用代码检查工具来自动检查代码中的规范问题,如缩进、命名规范、文档注释等。

这种方法可以节省开发人员的时间,同时提高代码的一致性和可读性。

五、自动化测试自动化测试是一种自动化进行测试的方法。

通过编写自动化测试脚本,可以帮助开发人员快速地测试代码的各个功能,提高测试效率和代码质量。

python 源码详解

python 源码详解

python 源码详解Python是一种高级编程语言,具有简洁易读的语法和强大的功能,适用于各种领域的开发。

本文将详细解析Python源码,包括其结构、特点以及一些常见的模块和函数。

一、Python源码结构Python的源码由C语言编写而成,它采用了面向对象的设计思想,整体结构清晰。

源码主要包括以下几个模块:1. Parser模块:负责解析Python源码,将其转换为抽象语法树(AST)。

2. Compiler模块:将AST编译为字节码文件,即.pyc文件。

3. Interpreter模块:解释执行字节码文件,将其转换为机器码并执行。

二、Python源码特点Python源码有以下几个特点:1. 简洁易读:Python源码采用了简洁的语法,可读性强,使得开发人员能够更加快速地理解和修改代码。

2. 动态类型:Python是一种动态类型语言,源码中的变量可以根据上下文自动推断类型,提高了开发效率。

3. 内置模块丰富:Python源码中包含了大量的内置模块,提供了各种功能的实现,例如字符串处理、文件操作等,减少了开发人员的工作量。

4. 强大的库支持:Python拥有庞大的第三方库,覆盖了各种领域,如科学计算、机器学习、Web开发等,使得开发人员能够快速构建复杂的应用。

三、常见的Python模块和函数1. os模块:提供了与操作系统交互的功能,如文件操作、进程管理等。

其中的os.path模块封装了与路径相关的操作,如路径拼接、文件名提取等。

2. sys模块:提供了对Python解释器的访问和控制,可以获取命令行参数、修改模块搜索路径等。

3. re模块:用于进行正则表达式匹配和替换,可以方便地对字符串进行复杂的模式匹配操作。

4. datetime模块:处理日期和时间相关的操作,如获取当前时间、日期格式化等。

5. math模块:提供了数学运算相关的函数,如平方根、对数、三角函数等。

6. random模块:生成随机数的函数,如生成随机整数、随机选择列表中的元素等。

如何进行代码质量分析和管理

如何进行代码质量分析和管理

如何进行代码质量分析和管理代码质量分析和管理是确保软件项目成功的关键步骤之一。

良好的代码质量能够降低软件维护成本,提高系统的可靠性和稳定性,增加开发效率,提高开发团队的工作满意度,能够帮助团队在竞争激烈的市场中立于不败之地。

在本文中,我将介绍如何进行代码质量分析和管理,以及为什么代码质量分析和管理对软件开发团队如此重要。

一、代码质量分析方法1.静态代码分析静态代码分析是一种无需在运行时执行代码的分析方法,通过检查代码本身来寻找潜在的错误和问题。

通常,静态代码分析可以通过使用一些自动化的工具来实现,这些工具能够检测代码中可能存在的错误、不良的编程习惯、潜在的安全漏洞和性能问题等。

常用的静态代码分析工具有SonarQube、Checkstyle、PMD等。

2.动态代码分析动态代码分析是一种在代码运行时监视其行为和性能的方法。

通过动态代码分析,开发团队可以找出代码中的性能瓶颈和内存泄漏等问题。

动态代码分析通常需要在开发、测试和生产环境中运行代码,并监测其行为、收集数据,然后进行分析。

常用的动态代码分析工具有JProfiler、YourKit等。

3.代码审查代码审查是一种通过人工检查和评审代码的方法,以发现和修复潜在的问题。

代码审查可以发现静态代码分析和动态代码分析工具无法检测到的问题,如代码逻辑错误、设计问题、与需求不符等。

代码审查可以通过一对一的代码审查、小组审查、工具辅助的代码审查等形式进行。

4.单元测试单元测试是一种通过编写测试用例对代码进行测试的方法,以确保代码能够按照预期的方式工作。

单元测试可以检查代码的功能正确性,避免由于后续修改而引入的错误。

良好的单元测试覆盖率可以帮助团队更好地理解代码的行为,并保证代码在修改后仍能够正常工作。

常用的单元测试框架有JUnit、TestNG等。

二、代码质量管理1.设定代码质量标准和指标在进行代码质量管理之前,团队需要制定适当的代码质量标准和指标。

标准和指标可以包括代码格式、注释规范、安全漏洞检测、性能指标等。

源代码是什么意思

源代码是什么意思

源代码是什么意思
源代码是指原始代码,可以是任何语言代码。

源码就是指编写的最原始程序的代码。

运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。

1.计算机里面运行的所有东西都是用程序编出来的(包括操作系统,如Windows,还有Word等,网络游戏也一样),而编写程序要用到计算机语言,用计算机语言直接编出来的程序就叫源码,比如VisualBasic编写的源码文件一般为.bas文件,而用C++编写的一般为.cpp文件,源代码不能直接运行,必须编译后才能运行。

源码经过编译处理后就可以直接在操作系统下运行了。

2.很多的站长都喜欢使用建网站的程序源码,因为可以很方便的修改,对于任何一个seo人员来说,都是非常好的一个切入点。

3.从字面意义上来讲,源文件是指一个文件,指源代码的集合.源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码)。

4.“源代码”在大多数时候等于“源文件”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何看懂源代码--(分析源代码方法)
4


由于今日计划着要看Struts 开源框架的源代码
昨天看了一个小时稍微有点头绪,可是这个速度本人表示非常不满意,先去找了下资
料, 觉得不错...
摘自(繁体中文
Traditional Chinese):http://203.208.39.132/translate_c?hl=zh-CN&sl=en&tl=zh-CN&u=http://ww /itadm/article.php%3Fc%3D47717&prev=hp&rurl=&usg=AL kJrhh4NPO-l6S3OZZlc5hOcEQGQ0nwKA 下文为经过Google翻译过的简体中文版:
我们在写程式时,有不少时间都是在看别人的代码。

例如看小组的代码,看小组整合的守则,若一开始没规划怎么看,就会“噜看噜苦(台语)”不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。

网路上有一篇关于分析看代码的方法,做为程式设计师的您,不妨参考看看,换个角度来分析。

也能更有效率的解读你想要的程式码片段。

六个章节:
( 1 )读懂程式码,使心法皆为我所用。

( 2 )摸清架构,便可轻松掌握全貌。

( 3 )优质工具在手,读懂程式非难事。

( 4 )望文生义,进而推敲组件的作用。

( 5 )找到程式入口,再由上而下抽丝剥茧。

( 6 )阅读的乐趣,透过程式码认识作者。

程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。

许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。

但是,与其抗拒接收别人的程式码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。

对大多数的程式人来说,撰写程式码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程式码为畏途。

许多人宁可自己重新写过一遍程式码,也不愿意接收别人的程式码,进而修正错误,维护它们,甚至加强功能。

这其中的关键究竟在何处呢?若是一语道破,其实也很简单,程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。

许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。

这是来自于人类内心深处对于陌生事物的原始恐惧。

读懂别人写的程式码,让你收获满满
不过,基于许多现实的原因,程式人时常受迫要去接收别人的程式码。

例如,同事离职了,必须接手他遗留下来的工作,也有可能你是刚进部门的菜鸟,而同事经验值够了,升级了,风水轮流转,一代菜鸟换菜鸟。

甚至,你的公司所承接的专案,必须接手或是整合客户前一个厂商所遗留下来的系统,你们手上只有那套系统的原始码(运气好时,还有数量不等的文件)。

诸如此类的故事,其实时常在程式人身边或身上持续上演着。

许多程式人都将接手他人的程式码,当做一件悲惨的事情。

每个人都不想接手别人所撰写的程式码,因为不想花时间去探索,宁可将生产力花在产生新的程式码,而不是耗费在了解这些程式码上。

很遗憾的是,上述的情况对程式人来说很难避免。

我们总是必须碰触到其他人所写成的程式码,甚至必须了解它,加以修改。

对于这项需求,在现今开放原始码的风气如此盛行的今日,正如之前的“程式设计2.0 ”文中所提到的,你可以透过开放原始码学习到新的技术,学习到高手的架构设计,大幅提高学习的效率及效果。

你甚至可以直接自开放原始码专案中抽取,提炼出自己所需的程式码,站在巨人的肩膀上,直接由彼端获得所需的生产力。

从这个观点来看,读懂别人所写的程式码,就不再只是从负面观点的“被迫接收”,而是极具正面价值的“汲取养份。


先了解系统架构与行为模式,再细读
倘若撰写程式码是程式人的重要技艺之一,那么读懂别人的程式码,接着加以修改,也势必是另一个重要的技艺。

如果你不能熟悉这项工作,不仅在遭逢你所不愿面对的局面时,无法解决眼前接手他人程式码的难题,更重要的是,当你看着眼前现成的程式码,却不知如何从中撷取自己所需,导致最后只能入宝山空手回,望之兴叹。

接触他人的程式码,大致上可以分为三种程度:一,了解,二,修改,扩充,三,抽取,提炼。

了解别人的程式码是最基础的工作,倘若不能了解自己要处理的程式码,就甭论修改或扩充,更不可能去芜存菁,从中萃取出自己所需,回收再利用别人所撰写的程式码。

虽说是“阅读”,但程式码并不像文章或小说一样,透过这种做法,便能够获得一定程度的了解。

阅读文章或小说时,几乎都是循序地阅读,你只消翻开第一页,一行行阅读下去即可。

但是,有许多程式人在试着阅读其他人的程式码时,却往往有不知如何读起的困难。

或许找到系统的第一页(也就是程式码执行的启始点)并不难,但是复杂度高的系统,有时十分庞大,有时千头万绪。

从程式码的启始点开始读起,一来要循序读完所有的程式码旷日费时,二来透过这种方式来了解系统,很难在脑中构建出系统的面貌,进而了解到系统真正的行为。

所以,阅读程式码的重点,不在于读完每一行程式码,而是在于有效率地透过探索及阅读,从而了解系统的架构及行为模式。

以便在你需要了解任何片段的细节实作时,能够很快在脑上对映到具体的
程式码位置,直到那一刻,才是细读的时机。

熟悉沟通语言与惯例用语
不论如何,有些基本的准备,是阅读他人程式码时必须要有的。

首先,你最好得了解程式码写成的程式语言。

想要读懂法文写成的小说,总不能连法文都不懂吧。

有些情况则很特殊。

我们虽然不懂该程式码撰写所用的语言,但是因为现代语言的高阶化,而且流行的程式语言多半都是血统相近,所以即使不那么熟悉,有时也可勉力为之。

除了认识所用语言之外,再来就是要先确认程式码所用的命名惯例(命名惯例)。

了解命名惯例很重要,不同的程式人或开发团队,差异可能很大。

这命名惯例涵盖的范围通常包括了变数的名称,函式的名称,类别(如果是物件导向的话)的名称,原始码档案,甚至是专案建构目录的名称。

倘若使用了像设计模式之类的方法,这些名称更有一些具体的表述方式。

命名惯例有点像是程式人在程式语言之上,另行建构的一组沟通行话。

程式人会透过共通约束,遵守的命名惯例,来表达一些较高阶的概念。

例如,有名的匈牙利式命名法,便将变数名称以属性,型别,说明合并在一起描述。

对程式人来说,这种方式能够提供更丰富的资讯,以了解该变数的作用及性质。

对程式码阅读来说,熟悉这个做法之所以重要,是因为当你了解整个系统所采用的惯例时,
你便能试着以他们所共同操用的语汇来进行理解。

倘若,不能了解其所用的惯例,那么这些额外提供的资讯,就无法为你所用。

像以设计模式写成的程式码,同样处处充满着模式的名称,诸如:工厂,门面,代理等等。

以这些名称指涉的类别,也直接透过名称,表达了它们自身的作用。

对于懂得这命名惯例的读者来说,不需要深入探索,也能很快捕捉到这些类别的意义。

当你拿到一套必须阅读的程式码时,最好先取得命名惯例的说明文件。

然而,并不是每套程式码都附有此类的说明文件。

另一个方式,就是自己到程式码中,大略浏览一遍,有经验的程式人可以轻易发掘出该系统所用的命名惯例。

常见的命名方式不脱那几类,这时候经验就很重要,倘若你知道的惯例越多,就越能轻易识别他人所用的惯例。

如果运气很糟,程式码所用的惯例是前所未见的,那么你也得花点时间归纳,凭自己的力量找出这程式码命名上的规则。

掌握程式码撰写者的心态与习惯
大多数的程式码,基本上都依循一致的命名惯例。

不过运气更差的时候,一套系统中可能会充斥着多套命名惯例。

这有可能是因为开发团队由多组人马所构成,每组人马都有不同的文化,而在专案开发管理又没有管控得宜所造成。

最糟的情况,程式码完全没有明显的惯例可言,这时候阅读的难度就更高了。

想要阅读程式码,得先试着体会程式码作者的“心”。

想要这么做,就得多了解对方所使用的语言,以及惯常运用的语汇。

在下一回中,我们将继续探讨阅读程式码的相关议题。

阅读他人的程式码( 2 ) -摸清架构,便可轻松掌握全貌
在本文中,我们的重点放在:要了解一个系统,最好是采取由上至下的方式。

先试着捕捉系统架构性的观念,不要过早钻进细节,因为那通常对于你了解全貌,没有多大的帮助。

阅读程式码不需要从第一行读起,我们的目的并不是在于读遍每一段程式码。

基于许多原因,程式人需要阅读其他人所写成的程式码。

而对程式设计2.0时代的程式人来说,最正面的价值在于,能读懂别人程式的人,才有能力从中萃取自己所需的程式,借以提高生产力。

相关文档
最新文档