怎样去阅读一份php源代码


Posted in PHP onAugust 21, 2009

一份好的源代码例如 dz的论坛,wind论坛,帝国cms,dedecms等,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判。一句话就是“以学习和批评的辩证思想去看待”。
好吧!我们就开始吧!
那具体的我们怎样去阅读一份php的源代码呢?
一。先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式。
二。浏览源代码的目录结构,了解各个目录的功能。
三。经过以上两步后相信你对这个开源的产品有了一个初步的了解了,那现在就开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。
四。熟悉源代码的代码写作风格,例如缩进方式,排版格式等。
五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。
六。经过以上几步相信大家已经对这份源代码有了更深刻的了解,不过这种了解还只是表面的,下来我们从6个方面具体的去分析它吧:
1.入口构造以及页面调用方式的具体实现,如果阅读时看到工具类和工具函数,尽量去熟悉一下。这一步的分析可以学习到源代码的系统架构方式。
2.分析源代码用到的工具类和工具函数,这样可以学到很多程序编写技巧。可以提升自己编程功力。
3.结合一些安全规则,研究这个源代码是怎样实现安全方面的设计的。这样可以提高自己在安全方面的意识和功力。
4.如果有模板引擎的话,研究一下源代码的模板引擎。大致从实现方式,效率,易用性等几个方面去考虑。
5.研究系统的各个功能模块,这样既能学习编程技巧还能打开自己的编程思路,下次遇到类似的东东就心里有谱了。
6.研究系统所用到设计模式,一样的功能实现,用到的设计模式可能相差很多,对比我们之前所作的东东分析设计模式,是提升我们驾驭代码的不二法门。
7.研究源代码对访问压力,执行效率,系统效率,数据库查询的优化。
方法只是途径和工具,具体实践还需要大家的努力。自己的感想是不要着急,认真分析,把分析心得用到自己的具体项目上,呵呵!

PHP 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
php 404错误页面实现代码
Jun 22 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
10个实用的PHP代码片段
Sep 02 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
PHP基本语法实例总结
Sep 09 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
PHP实现对数字分隔加千分号的方法
Mar 18 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
使用PHP开发留言板功能
Nov 19 PHP
php win下Socket方式发邮件类
Aug 21 #PHP
Discuz 模板语句分析及知识技巧
Aug 21 #PHP
php 分页原理详解
Aug 21 #PHP
PHP nl2br函数 将换行字符转成 <br>
Aug 21 #PHP
PHP 各种排序算法实现代码
Aug 20 #PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 #PHP
数据库查询记录php 多行多列显示
Aug 15 #PHP
You might like
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
深入理解Python中的super()方法
2017/11/20 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
python 调整图片亮度的示例
2020/12/03 Python
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
最新销售员个人自荐信
2013/09/21 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
《石榴》教学反思
2014/03/02 职场文书
市场营销方案范文
2014/03/11 职场文书
举起手来观后感
2015/06/09 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
nginx之queue的具体使用
2022/06/28 Servers