怎样去阅读一份php源代码


Posted in PHP onAugust 21, 2009

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

PHP 相关文章推荐
PHP中动态HTML的输出技术
Oct 09 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
解析PHP工厂模式的好处
Jun 18 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
php生成gif动画的方法
Nov 05 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 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
咖啡与水的关系
2021/03/03 冲泡冲煮
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
详解python中@的用法
2019/03/27 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python threading的使用方法解析
2019/08/28 Python
python 实现兔子生兔子示例
2019/11/21 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
食品营养与检测应届生求职信
2013/11/08 职场文书
信息技术教学反思
2014/02/12 职场文书
推荐信格式要求
2014/05/09 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书