84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
喜欢 PHP 的原因之一是她有无数的开源程序 http://phpxref.com/home/code-library , 很多优秀的代码供你拿在手上细细品读!
分析源代码讲究方法, 就像来到一个新的地方需要地图一样!
如题: 如何分析一份 PHP 开源程序? 怎样才能在代码里面获取到更多的知识?
人生最曼妙的风景,竟是内心的淡定与从容!
同楼上,我也会先运行程序,然后找到自己感兴趣的功能,从实现功能的页面开始边看边尝试进一步的修改文件,达到自己想要的效果。通过多次修改(其实这个过程就是对代码的读取与分析),就能大概了解各中内涵了。
我自己总结的一些方法, 抛砖引玉 ;-)
大致分析:
1. 软件使用上功能分析 - 大的方向了解程序的业务逻辑; 2. 目录结构 - 大体分析每个文件夹和文件存在的意义; 3. 数据库结构 - 程序的目标就是为了 数据 , 分析数据库逻辑设计, 具体到每一个字段设计, 能对程序有一个好的理解! 4. 设计模式 - 研究下设计模式, 有这样的一句话 把所有的PHP 到同一个文件里面,程序照样工作 5. 代码分析 - 从页面的最初请求开始, 模拟PHP解析器看代码, 主要从业务逻辑上进行代码的初步分;
程序设计分析:
1. 模板系统分析, 如果有的话 2. 缓存机制分析, 如果有的话 3. 插件机制, 如果有的话 4. 扩展性分析 5. 安全机制分析 6. 研究源代码对访问压力,执行效率,系统效率,数据库查询的优化..
我习惯 先找到入口 然后大概的流程理通了,以后再看细节
我通常先把程序运行起来,然后去修改里面的代码看会发生什么样的变化
俺不会编程,不过要是我去阅读一份源代码的话。首先是看官方文档,清楚文件布局、语法规范,熟悉程序的构造,和数据库结构等;然后再分层次的去仔细阅读每个功能实现的过程。
我会从页面入口开始看,先大致了解一个页面展示内容的构成,然后依次根据函数不断回退到对应的文件进行阅读。读完一个页面的内容后,一方面了解了代码包一部分较常规函数的使用,一方面也大致了解了代码包的文件结构。在此文件结构的基础上,分析其内部对象结构,并按继承关系从下向上阅读对象类库。
同楼上,我也会先运行程序,然后找到自己感兴趣的功能,从实现功能的页面开始边看边尝试进一步的修改文件,达到自己想要的效果。通过多次修改(其实这个过程就是对代码的读取与分析),就能大概了解各中内涵了。
我自己总结的一些方法, 抛砖引玉 ;-)
大致分析:
1. 软件使用上功能分析 - 大的方向了解程序的业务逻辑;
2. 目录结构 - 大体分析每个文件夹和文件存在的意义;
3. 数据库结构 - 程序的目标就是为了 数据 , 分析数据库逻辑设计, 具体到每一个字段设计, 能对程序有一个好的理解!
4. 设计模式 - 研究下设计模式, 有这样的一句话 把所有的PHP 到同一个文件里面,程序照样工作
5. 代码分析 - 从页面的最初请求开始, 模拟PHP解析器看代码, 主要从业务逻辑上进行代码的初步分;
程序设计分析:
1. 模板系统分析, 如果有的话
2. 缓存机制分析, 如果有的话
3. 插件机制, 如果有的话
4. 扩展性分析
5. 安全机制分析
6. 研究源代码对访问压力,执行效率,系统效率,数据库查询的优化..
我习惯 先找到入口 然后大概的流程理通了,以后再看细节
我通常先把程序运行起来,然后去修改里面的代码看会发生什么样的变化
俺不会编程,不过要是我去阅读一份源代码的话。首先是看官方文档,清楚文件布局、语法规范,熟悉程序的构造,和数据库结构等;然后再分层次的去仔细阅读每个功能实现的过程。
我会从页面入口开始看,先大致了解一个页面展示内容的构成,然后依次根据函数不断回退到对应的文件进行阅读。读完一个页面的内容后,一方面了解了代码包一部分较常规函数的使用,一方面也大致了解了代码包的文件结构。在此文件结构的基础上,分析其内部对象结构,并按继承关系从下向上阅读对象类库。